Advertisement
ImDerekD

TestAppend_Feb5_Working_Complete

Feb 5th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.93 KB | None | 0 0
  1. #!/usr/bin/bash python
  2.  
  3. import csv
  4. import datetime
  5. from datetime import datetime
  6. from colorama import Back, Fore, Style
  7. import sys
  8. from termcolor import colored, cprint
  9. from colorama import init
  10. import numbers
  11. import time
  12. import itertools
  13. from itertools import zip_longest
  14. from time import sleep
  15. import pathlib
  16. import os
  17. import os.path
  18. from pathlib import Path
  19. import glob
  20. from progress.bar import FillingSquaresBar
  21. from progress.bar import Bar
  22. import pyprind
  23. from tqdm import tqdm
  24. import hashlib
  25.  
  26. filename_input = input('Filename: ')
  27. dir = '/Users/King/iFiles/'
  28. dir2 = '/Users/King/iFiles/Current/'
  29. dir3 = '/Users/King/iFiles/iRanges/'
  30.  
  31. CandleDur = filename_input[-1:]+'Min'
  32. oldFile = dir+filename_input+'.csv'
  33. currentFile = dir2+filename_input+'.csv'
  34.  
  35. confirmFile = Path(dir+filename_input+'.csv')
  36. confirmRangeFile = Path(dir3+filename_input+'_RangeTarget.csv')
  37. FileExists = Path.is_file(confirmFile)
  38. RangeFileExists = Path.is_file(confirmRangeFile)
  39.  
  40. #######################
  41. CurrentFileInfo = []
  42. hashList = []
  43. #######################
  44.  
  45. OldFileInfo = []
  46. hashList2 = []
  47.  
  48. Master = []
  49.  
  50. #refNums
  51. ref_Num = int()
  52. ref_Num2 = int()
  53. ref_Num_3 = int()
  54.  
  55.  
  56.  
  57. #######################
  58. tHigh = bool
  59. tLow = bool
  60. Filled = bool
  61.  
  62. lows_Found = int()
  63. lows_Filled = int()
  64.  
  65. highs_Found = int()
  66. highs_Filled = int()
  67.  
  68. Found = int()
  69.  
  70. #TimeTakenForRangesToGetFilled
  71. timeTaken = []
  72. count = int()
  73. x = int(0)
  74. n = int(0)
  75. MIVList = []
  76.  
  77. #ListForNewFoundRanges
  78. newFoundRanges = []
  79.  
  80. Liquidity = float()
  81. prevVol = float(1)
  82. prevPrice = float(1)
  83. prevFlow = float(1)
  84.  
  85. Master_ref_Num = int()
  86.  
  87. c_Count = int()
  88.  
  89. if FileExists:
  90. with open(dir+filename_input+'.csv', 'r') as csv_file1:
  91. reader1 = csv.reader(csv_file1)
  92. header1 = next(reader1)
  93. for row in reader1:
  94. ref_Num += 1
  95. Master_ref_Num += 1
  96. o_Date = row[0]
  97. o_Open = float(row[1])
  98. o_Close = float(row[2])
  99. o_High = float(row[3])
  100. o_Low = float(row[4])
  101. o_Vol = row[5]
  102. o_Flow = float(row[6])
  103.  
  104. DataList2 = [o_Date, o_Open, o_Close, o_High, o_Low, o_Vol, o_Flow]
  105. OldFileInfo.append(DataList2)
  106. Master.append(DataList2)
  107.  
  108. print(Fore.WHITE+'Please Wait\n'+Fore.CYAN)
  109. time.sleep(2)
  110.  
  111. for i in tqdm(range(0, ref_Num), desc=Fore.BLUE+'Data Skimming Old File', ncols=100, unit=' data minutes recorded'):
  112. time.sleep(.0001)
  113. time.sleep(1)
  114.  
  115.  
  116. bar = FillingSquaresBar(Fore.YELLOW+'Loading Current File', max=25)
  117. for i in range(25):
  118. time.sleep(.1)
  119. # Do some work
  120. bar.next()
  121.  
  122. bar.finish()
  123.  
  124. with open(dir2+filename_input+'.csv', 'r') as csv_file2:
  125. reader2 = csv.reader(csv_file2)
  126. header2 = next(csv_file2)
  127. for row in reader2:
  128. ref_Num2 += 1
  129. Master_ref_Num += 1
  130. c_Date = row[0]
  131. c_Open = float(row[1])
  132. c_Close = float(row[2])
  133. c_High = float(row[3])
  134. c_Low = float(row[4])
  135. c_Vol = row[5]
  136. c_Flow = float(row[6])
  137.  
  138. DataList = [c_Date, c_Open, c_Close, c_High, c_Low, c_Vol, c_Flow]
  139. CurrentFileInfo.append(DataList)
  140.  
  141.  
  142. for i in tqdm(CurrentFileInfo, desc=Fore.CYAN+'Organizing Master List', ncols=150, unit=' data minutes recorded'):
  143. if i in Master:
  144. pass
  145. else:
  146. Master.append(i)
  147.  
  148.  
  149.  
  150.  
  151. print('\n'+Style.RESET_ALL)
  152.  
  153.  
  154.  
  155.  
  156.  
  157. '''bar = FillingSquaresBar('Processing File', max=30)
  158. for i in range(30):
  159. # Do some work
  160. bar.next()
  161. time.sleep(.15)
  162. bar.finish()'''
  163.  
  164.  
  165.  
  166. os.remove(dir+filename_input+'.csv')
  167.  
  168.  
  169. #''' for i in Master:
  170. # print(*i, sep=',')'''
  171.  
  172. n = int()
  173. totalMinutes = ref_Num2+ref_Num
  174. ticker = filename_input[:-1]
  175.  
  176. with open(dir+filename_input+'.csv', 'w+') as newFile1:
  177. writer1 = csv.writer(newFile1)
  178. for i in Master:
  179. n += 1
  180. writer1.writerows([i])
  181.  
  182. for i in tqdm(range(0, totalMinutes), desc='Updating Ticker: $'+ticker, smoothing=.5, unit=' ref_Num '):
  183. time.sleep(.0001)
  184. print('Done!')
  185.  
  186.  
  187. ########################################################################################################################
  188.  
  189.  
  190. with open(dir+filename_input+'.csv', 'r') as updatedFile:
  191. reader3 = csv.reader(updatedFile)
  192. for row in reader3:
  193. ref_Num_3 += 1
  194. dTime = row[0]
  195. Time = dTime[-13:]
  196. Open_Price = float(row[1])
  197. Close_Price = float(row[2])
  198. High_Price = float(row[3])
  199. Low_Price = float(row[4])
  200. Money_Flow = float(row[6])
  201. last = Close_Price
  202. Vol = row[5]
  203. f_Vol = float(Vol[:-1])
  204. m_Vol = str(Vol[-1:])
  205. if m_Vol == "K":
  206. f_Vol = f_Vol * 1000
  207. if m_Vol == "M":
  208. f_Vol = f_Vol * 1000000
  209. if m_Vol != "K" and m_Vol != "M":
  210. f_Vol = float(row[5])
  211. if f_Vol < 1:
  212. M_Price = HLCC
  213. else:
  214. M_Price = round(float(Money_Flow) / f_Vol, 2)
  215. HLCC = float(High_Price + Low_Price + Close_Price + Close_Price)/4
  216. Diff = round(HLCC - M_Price, 2)
  217. MMM = float(f_Vol * HLCC)
  218. Liq_change = float(Money_Flow - MMM)
  219. Liquidity += Liq_change
  220. Date = str(Time[:7])
  221. military_time = str(Time[-7:])
  222. criteria = abs(.0035*HLCC)
  223.  
  224. if abs(Liq_change) > 0:
  225. LiqFlowPrice = round(Money_Flow / abs(Liq_change), 2)
  226. VolLiqPrice = round(f_Vol / abs(Liq_change), 2)
  227. LiqFlowPriceClone = round(1000*(abs(Liq_change) / Money_Flow), 4)*.01
  228.  
  229.  
  230. if Money_Flow > 0:
  231. MIV_Index = round(100 * (f_Vol / prevVol) - 100 * ((Money_Flow * HLCC) / (prevFlow * prevPrice)), 2)
  232. prevPrice = Close_Price
  233. prevFlow = Money_Flow
  234. prevVol = f_Vol
  235.  
  236. if abs(MIV_Index) > 3:
  237. Volume = '{:20,.2f}'.format(f_Vol)
  238. AbsLiqChange = '{:20,.2f}'.format(Liq_change)
  239. LFP = '{:20,.2f}'.format(LiqFlowPrice)
  240. VolumeLiqPrice = '{:20,.2f}'.format(VolLiqPrice)
  241. ExtremeMIVList = [Date,military_time,MIV_Index,AbsLiqChange,Volume,LFP,VolumeLiqPrice,LiqFlowPriceClone]
  242. MIVList.append(ExtremeMIVList)
  243.  
  244.  
  245. if abs(M_Price - HLCC) >= criteria:
  246. diff = M_Price - HLCC
  247. Range_Clause = True
  248. Found += 1
  249. found_Price = Close_Price
  250. Low_Range = round(HLCC - abs(float(M_Price - HLCC)), 2)
  251. High_Range = round(HLCC + abs(float(M_Price - HLCC)), 2)
  252. Low_Target = round(Low_Range - abs(float(M_Price - HLCC)), 2)
  253. High_Target = round(High_Range + abs(float(M_Price - HLCC)), 2)
  254.  
  255. r_Price = M_Price
  256. t_Price = M_Price + diff
  257. opp_Range = float(HLCC + (diff*-1))
  258. opp_Target = opp_Range + (diff*-1)
  259. if r_Price == Low_Range:
  260. range_ref_String = "LOW TARGET"
  261. tLow = True
  262. tHigh = False
  263. Filled = False
  264. lows_Found += 1
  265. RangeString = str(r_Price)
  266. FoundPriceString = str(found_Price)
  267. TargetString = str(t_Price)
  268. # print(Fore.RED+"LOW TARGET",RangeString, TargetString, Style.RESET_ALL)
  269. # time.sleep(1.5)
  270. if r_Price == High_Range and MIV_Index < 0: ### Could add 'and MIV_Index < 0:' to find A+ ranges but not yet
  271. range_ref_String = 'HIGH TARGET'
  272. tLow = False
  273. tHigh = True
  274. Filled = False
  275. highs_Found += 1
  276. RangeString = str(r_Price)
  277. TargetString = str(t_Price)
  278. # print(Fore.CYAN+"HIGH TARGET",RangeString, TargetString, Style.RESET_ALL)
  279. # time.sleep(1.5)
  280. if tHigh == True or tLow == True:
  281. # file_PriceList = [Date, military_time, found_Price, range_ref_String, M_Price, HRT, MIV_Index, Liq_change, f_Vol, Money_Flow, LRS, LRT, LiqFlowPrice, VolLiqPrice, LiqFlowPriceClone, CandleDuration, ref_Num, Liquidity]
  282. rangeList = [Date, military_time, found_Price, range_ref_String, r_Price, t_Price, MIV_Index, Liq_change, f_Vol, Money_Flow, opp_Range, opp_Target, LiqFlowPrice, VolLiqPrice, LiqFlowPriceClone, CandleDur, ref_Num_3, Liquidity]
  283. newFoundRanges.append(rangeList)
  284.  
  285. for i in tqdm(range(0, Found), desc=Fore.CYAN+'Collecting Ranges', ncols=50, unit=' Found'):
  286. time.sleep(.005)
  287.  
  288.  
  289. r = int()
  290.  
  291. if RangeFileExists:
  292. os.remove(dir3+filename_input+'_RangeTargets.csv')
  293. os.remove(dir2+filename_input+'.csv')
  294.  
  295.  
  296. with open(dir3+filename_input+'_RangeTargets.csv', 'w+') as newFile2:
  297. writer2 = csv.writer(newFile2)
  298. Title = ['Date', 'Time', 'FoundPrice', 'RangeReference', 'RangePrice', 'TargetPrice', 'MIV', 'LiqChange', 'Volume', 'MoneyFlow', 'OppRange', 'OppTarget', 'LiqFlowPrice', 'VolLiqPrice', 'LFPClone', 'CandleDuration']
  299. writer2.writerows([Title])
  300. for i in newFoundRanges:
  301. r += 1
  302. writer2.writerows([i])
  303.  
  304. for i in tqdm(range(0, r), desc=Fore.GREEN+'Creating New Range File', ncols=50, unit=' Created'):
  305. time.sleep(.005)
  306.  
  307. '''with open('/Users/King/Desktop/'+filename_input+'_RangeTargets.csv', 'r') as rangeFile:
  308. reader4 = csv.reader(rangeFile)
  309. next(reader4)
  310. for row in reader4:
  311. Date = row[0]
  312. military_time = row[1]
  313. found_Price = float(row[2])
  314. range_ref_String = str(row[3])
  315. r_Price = float(row[4])
  316. t_Price = float(row[5])
  317. MIV = float(row[6])
  318. Liq_Change = float(row[7])
  319. Volume = float(row[8])
  320. Money_Flow = float(row[9])
  321. opp_Range = float(row[10])
  322. opp_Target = float(row[11])
  323. LiqFlowPrice = float(row[12])
  324. VolLiqPrice = float(row[13])
  325. LFP_Clone = float(row[14])
  326. print(row)'''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement