Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/bash python
- import csv
- import datetime
- from datetime import datetime
- from colorama import Back, Fore, Style
- import sys
- from termcolor import colored, cprint
- from colorama import init
- import numbers
- import time
- import itertools
- from itertools import zip_longest
- from time import sleep
- import pathlib
- import os
- import os.path
- from pathlib import Path
- import glob
- from progress.bar import FillingSquaresBar
- from progress.bar import Bar
- import pyprind
- from tqdm import tqdm
- import hashlib
- filename_input = input('Filename: ')
- dir = '/Users/King/iFiles/'
- dir2 = '/Users/King/iFiles/Current/'
- dir3 = '/Users/King/iFiles/iRanges/'
- CandleDur = filename_input[-1:]+'Min'
- oldFile = dir+filename_input+'.csv'
- currentFile = dir2+filename_input+'.csv'
- confirmFile = Path(dir+filename_input+'.csv')
- confirmRangeFile = Path(dir3+filename_input+'_RangeTarget.csv')
- FileExists = Path.is_file(confirmFile)
- RangeFileExists = Path.is_file(confirmRangeFile)
- #######################
- CurrentFileInfo = []
- hashList = []
- #######################
- OldFileInfo = []
- hashList2 = []
- Master = []
- #refNums
- ref_Num = int()
- ref_Num2 = int()
- ref_Num_3 = int()
- #######################
- tHigh = bool
- tLow = bool
- Filled = bool
- lows_Found = int()
- lows_Filled = int()
- highs_Found = int()
- highs_Filled = int()
- Found = int()
- #TimeTakenForRangesToGetFilled
- timeTaken = []
- count = int()
- x = int(0)
- n = int(0)
- MIVList = []
- #ListForNewFoundRanges
- newFoundRanges = []
- Liquidity = float()
- prevVol = float(1)
- prevPrice = float(1)
- prevFlow = float(1)
- Master_ref_Num = int()
- c_Count = int()
- if FileExists:
- with open(dir+filename_input+'.csv', 'r') as csv_file1:
- reader1 = csv.reader(csv_file1)
- header1 = next(reader1)
- for row in reader1:
- ref_Num += 1
- Master_ref_Num += 1
- o_Date = row[0]
- o_Open = float(row[1])
- o_Close = float(row[2])
- o_High = float(row[3])
- o_Low = float(row[4])
- o_Vol = row[5]
- o_Flow = float(row[6])
- DataList2 = [o_Date, o_Open, o_Close, o_High, o_Low, o_Vol, o_Flow]
- OldFileInfo.append(DataList2)
- Master.append(DataList2)
- print(Fore.WHITE+'Please Wait\n'+Fore.CYAN)
- time.sleep(2)
- for i in tqdm(range(0, ref_Num), desc=Fore.BLUE+'Data Skimming Old File', ncols=100, unit=' data minutes recorded'):
- time.sleep(.0001)
- time.sleep(1)
- bar = FillingSquaresBar(Fore.YELLOW+'Loading Current File', max=25)
- for i in range(25):
- time.sleep(.1)
- # Do some work
- bar.next()
- bar.finish()
- with open(dir2+filename_input+'.csv', 'r') as csv_file2:
- reader2 = csv.reader(csv_file2)
- header2 = next(csv_file2)
- for row in reader2:
- ref_Num2 += 1
- Master_ref_Num += 1
- c_Date = row[0]
- c_Open = float(row[1])
- c_Close = float(row[2])
- c_High = float(row[3])
- c_Low = float(row[4])
- c_Vol = row[5]
- c_Flow = float(row[6])
- DataList = [c_Date, c_Open, c_Close, c_High, c_Low, c_Vol, c_Flow]
- CurrentFileInfo.append(DataList)
- for i in tqdm(CurrentFileInfo, desc=Fore.CYAN+'Organizing Master List', ncols=150, unit=' data minutes recorded'):
- if i in Master:
- pass
- else:
- Master.append(i)
- print('\n'+Style.RESET_ALL)
- '''bar = FillingSquaresBar('Processing File', max=30)
- for i in range(30):
- # Do some work
- bar.next()
- time.sleep(.15)
- bar.finish()'''
- os.remove(dir+filename_input+'.csv')
- #''' for i in Master:
- # print(*i, sep=',')'''
- n = int()
- totalMinutes = ref_Num2+ref_Num
- ticker = filename_input[:-1]
- with open(dir+filename_input+'.csv', 'w+') as newFile1:
- writer1 = csv.writer(newFile1)
- for i in Master:
- n += 1
- writer1.writerows([i])
- for i in tqdm(range(0, totalMinutes), desc='Updating Ticker: $'+ticker, smoothing=.5, unit=' ref_Num '):
- time.sleep(.0001)
- print('Done!')
- ########################################################################################################################
- with open(dir+filename_input+'.csv', 'r') as updatedFile:
- reader3 = csv.reader(updatedFile)
- for row in reader3:
- ref_Num_3 += 1
- dTime = row[0]
- Time = dTime[-13:]
- Open_Price = float(row[1])
- Close_Price = float(row[2])
- High_Price = float(row[3])
- Low_Price = float(row[4])
- Money_Flow = float(row[6])
- last = Close_Price
- Vol = row[5]
- f_Vol = float(Vol[:-1])
- m_Vol = str(Vol[-1:])
- if m_Vol == "K":
- f_Vol = f_Vol * 1000
- if m_Vol == "M":
- f_Vol = f_Vol * 1000000
- if m_Vol != "K" and m_Vol != "M":
- f_Vol = float(row[5])
- if f_Vol < 1:
- M_Price = HLCC
- else:
- M_Price = round(float(Money_Flow) / f_Vol, 2)
- HLCC = float(High_Price + Low_Price + Close_Price + Close_Price)/4
- Diff = round(HLCC - M_Price, 2)
- MMM = float(f_Vol * HLCC)
- Liq_change = float(Money_Flow - MMM)
- Liquidity += Liq_change
- Date = str(Time[:7])
- military_time = str(Time[-7:])
- criteria = abs(.0035*HLCC)
- if abs(Liq_change) > 0:
- LiqFlowPrice = round(Money_Flow / abs(Liq_change), 2)
- VolLiqPrice = round(f_Vol / abs(Liq_change), 2)
- LiqFlowPriceClone = round(1000*(abs(Liq_change) / Money_Flow), 4)*.01
- if Money_Flow > 0:
- MIV_Index = round(100 * (f_Vol / prevVol) - 100 * ((Money_Flow * HLCC) / (prevFlow * prevPrice)), 2)
- prevPrice = Close_Price
- prevFlow = Money_Flow
- prevVol = f_Vol
- if abs(MIV_Index) > 3:
- Volume = '{:20,.2f}'.format(f_Vol)
- AbsLiqChange = '{:20,.2f}'.format(Liq_change)
- LFP = '{:20,.2f}'.format(LiqFlowPrice)
- VolumeLiqPrice = '{:20,.2f}'.format(VolLiqPrice)
- ExtremeMIVList = [Date,military_time,MIV_Index,AbsLiqChange,Volume,LFP,VolumeLiqPrice,LiqFlowPriceClone]
- MIVList.append(ExtremeMIVList)
- if abs(M_Price - HLCC) >= criteria:
- diff = M_Price - HLCC
- Range_Clause = True
- Found += 1
- found_Price = Close_Price
- Low_Range = round(HLCC - abs(float(M_Price - HLCC)), 2)
- High_Range = round(HLCC + abs(float(M_Price - HLCC)), 2)
- Low_Target = round(Low_Range - abs(float(M_Price - HLCC)), 2)
- High_Target = round(High_Range + abs(float(M_Price - HLCC)), 2)
- r_Price = M_Price
- t_Price = M_Price + diff
- opp_Range = float(HLCC + (diff*-1))
- opp_Target = opp_Range + (diff*-1)
- if r_Price == Low_Range:
- range_ref_String = "LOW TARGET"
- tLow = True
- tHigh = False
- Filled = False
- lows_Found += 1
- RangeString = str(r_Price)
- FoundPriceString = str(found_Price)
- TargetString = str(t_Price)
- # print(Fore.RED+"LOW TARGET",RangeString, TargetString, Style.RESET_ALL)
- # time.sleep(1.5)
- if r_Price == High_Range and MIV_Index < 0: ### Could add 'and MIV_Index < 0:' to find A+ ranges but not yet
- range_ref_String = 'HIGH TARGET'
- tLow = False
- tHigh = True
- Filled = False
- highs_Found += 1
- RangeString = str(r_Price)
- TargetString = str(t_Price)
- # print(Fore.CYAN+"HIGH TARGET",RangeString, TargetString, Style.RESET_ALL)
- # time.sleep(1.5)
- if tHigh == True or tLow == True:
- # 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]
- 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]
- newFoundRanges.append(rangeList)
- for i in tqdm(range(0, Found), desc=Fore.CYAN+'Collecting Ranges', ncols=50, unit=' Found'):
- time.sleep(.005)
- r = int()
- if RangeFileExists:
- os.remove(dir3+filename_input+'_RangeTargets.csv')
- os.remove(dir2+filename_input+'.csv')
- with open(dir3+filename_input+'_RangeTargets.csv', 'w+') as newFile2:
- writer2 = csv.writer(newFile2)
- Title = ['Date', 'Time', 'FoundPrice', 'RangeReference', 'RangePrice', 'TargetPrice', 'MIV', 'LiqChange', 'Volume', 'MoneyFlow', 'OppRange', 'OppTarget', 'LiqFlowPrice', 'VolLiqPrice', 'LFPClone', 'CandleDuration']
- writer2.writerows([Title])
- for i in newFoundRanges:
- r += 1
- writer2.writerows([i])
- for i in tqdm(range(0, r), desc=Fore.GREEN+'Creating New Range File', ncols=50, unit=' Created'):
- time.sleep(.005)
- '''with open('/Users/King/Desktop/'+filename_input+'_RangeTargets.csv', 'r') as rangeFile:
- reader4 = csv.reader(rangeFile)
- next(reader4)
- for row in reader4:
- Date = row[0]
- military_time = row[1]
- found_Price = float(row[2])
- range_ref_String = str(row[3])
- r_Price = float(row[4])
- t_Price = float(row[5])
- MIV = float(row[6])
- Liq_Change = float(row[7])
- Volume = float(row[8])
- Money_Flow = float(row[9])
- opp_Range = float(row[10])
- opp_Target = float(row[11])
- LiqFlowPrice = float(row[12])
- VolLiqPrice = float(row[13])
- LFP_Clone = float(row[14])
- print(row)'''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement