forked from conor19w/Binance-Futures-Trading-Bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathData_flow.py
56 lines (52 loc) · 1.9 KB
/
Data_flow.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import pandas as pd
import numpy as np
########### Simulate flow of live data for testing indicators ############
def dataflow(dataStream,data,currentPriceIndex,largestSMAsize,SmallestSMAsize):
##window of data is largestSMA+smallestSMA+10
slidingwindow=[]
## sliding window of data for more efficient code
if len(dataStream)>=largestSMAsize+SmallestSMAsize: ## ensure data doesnt grow too large
for i in range(currentPriceIndex-largestSMAsize-SmallestSMAsize,currentPriceIndex+1):
slidingwindow.append(data[i])
return slidingwindow
##Add in next data point
else:
dataStream.append(data[len(dataStream)])
##return appended data
return dataStream
def flowLive(data,length):
slidingwindow = []
for i in range(len(data) - length-1, len(data)-1):
slidingwindow.append(data[i])
return slidingwindow
def dataStream(data,newdata,type,length):
if type==0:
if len(data)<300:
data.append(newdata)
return data
else:
slidingwindow = []
for i in range(len(data)-299,len(data)):
slidingwindow.append(data[i])
slidingwindow.append(newdata)
return slidingwindow
elif type==1:
if len(data)<length:
data.append(newdata)
return data
else:
slidingwindow = []
for i in range(len(data)-length+1,len(data)):
slidingwindow.append(data[i])
slidingwindow.append(newdata)
return slidingwindow
else:
if len(data)<length:
data.append(newdata)
return data
else:
slidingwindow = []
for i in range(len(data)-length+1,len(data)):
slidingwindow.append(data[i])
slidingwindow.append(newdata)
return slidingwindow