添加新的检测
This commit is contained in:
+74
-26
@@ -20,19 +20,17 @@ import numpy as np
|
||||
from ChanMACD import ChanMACD
|
||||
|
||||
class ChanLun():
|
||||
timeframes = ["5m", "15m", "30m", "60m", "4h"]
|
||||
times = {
|
||||
"5m": 5,
|
||||
"15m": 15,
|
||||
"30m": 30,
|
||||
"60m": 60,
|
||||
"4h": 240
|
||||
}
|
||||
time3 = 3
|
||||
time5 = 5
|
||||
time15 = 15
|
||||
time30 = 30
|
||||
time60 = 60
|
||||
time2h = 120
|
||||
time4h = 240
|
||||
time6h = 360
|
||||
time8h = 480
|
||||
time12h = 720
|
||||
time1d = 1440
|
||||
def create_all_data(self, dataframe, ticker_indicator):
|
||||
all_data = dict()
|
||||
all_data['1m'] = dataframe
|
||||
@@ -82,25 +80,75 @@ class ChanLun():
|
||||
klc_list = self.get_klc_list(dataframe)
|
||||
bi_list= self.cal_bi_list(klc_list)
|
||||
def get_klu_state_list(self, dataframe):
|
||||
klu_list = self.get_klu_list(dataframe)
|
||||
chanmacd = ChanMACD(klu_list)
|
||||
state_list = []
|
||||
for klu in klu_list:
|
||||
if klu.macd > 0:
|
||||
if klu.separate_div:
|
||||
state_list.append("30")
|
||||
elif klu.continue_div:
|
||||
state_list.append("20")
|
||||
else:
|
||||
state_list.append("00")
|
||||
else:
|
||||
if klu.separate_div:
|
||||
state_list.append("-30")
|
||||
elif klu.continue_div:
|
||||
state_list.append("-20")
|
||||
else:
|
||||
state_list.append("00")
|
||||
dataframe3 = resample_to_interval(dataframe, self.time3)
|
||||
dataframe5 = resample_to_interval(dataframe, self.time5)
|
||||
dataframe15 = resample_to_interval(dataframe, self.time15)
|
||||
dataframe30 = resample_to_interval(dataframe, self.time30)
|
||||
dataframe60 = resample_to_interval(dataframe, self.time60)
|
||||
dataframe2h = resample_to_interval(dataframe, self.time2h)
|
||||
dataframe6h = resample_to_interval(dataframe, self.time6h)
|
||||
dataframe8h = resample_to_interval(dataframe, self.time8h)
|
||||
dataframe12h = resample_to_interval(dataframe, self.time12h)
|
||||
dataframe4h = resample_to_interval(dataframe, self.time4h)
|
||||
dataframe1d = resample_to_interval(dataframe, self.time1d)
|
||||
dataframe = self.add_indicators(dataframe)
|
||||
dataframe3 = self.add_indicators(dataframe3)
|
||||
dataframe5 = self.add_indicators(dataframe5)
|
||||
dataframe15 = self.add_indicators(dataframe15)
|
||||
dataframe30 = self.add_indicators(dataframe30)
|
||||
dataframe60 = self.add_indicators(dataframe60)
|
||||
dataframe2h = self.add_indicators(dataframe2h)
|
||||
dataframe6h = self.add_indicators(dataframe6h)
|
||||
dataframe8h = self.add_indicators(dataframe8h)
|
||||
dataframe12h = self.add_indicators(dataframe12h)
|
||||
dataframe4h = self.add_indicators(dataframe4h)
|
||||
dataframe1d = self.add_indicators(dataframe1d)
|
||||
|
||||
return state_list
|
||||
def add_indicators(self, df):
|
||||
fast = 12
|
||||
slow = 26
|
||||
period = 9
|
||||
macd = ta.MACD(df, fastperiod=fast, slowperiod=slow, signalperiod=period)
|
||||
bb365 = ta.BBANDS(df, timeperiod=365, nbdevup=3.0, nbdevdn=3.0, matype=0)
|
||||
bb120 = ta.BBANDS(df, timeperiod=120, nbdevup=3.0, nbdevdn=3.0, matype=0)
|
||||
bb30 = ta.BBANDS(df, timeperiod=41, nbdevup=2.3, nbdevdn=2.3, matype=0)
|
||||
bb302 = ta.BBANDS(df, timeperiod=41, nbdevup=2.0, nbdevdn=2.0, matype=0)
|
||||
bb30 = ta.BBANDS(df, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0)
|
||||
bb302 = ta.BBANDS(df, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0)
|
||||
# 计算布林带中轨(移动平均线)
|
||||
bb30_middle = ta.SMA(df, timeperiod=90)
|
||||
|
||||
# 手动计算布林带 %B 指标 (BBP)
|
||||
# %B = (Price - Lower Band) / (Upper Band - Lower Band)
|
||||
bbp365 = (df['close'] - bb365['lowerband']) / (bb365['upperband'] - bb365['lowerband'])
|
||||
bbp120 = (df['close'] - bb120['lowerband']) / (bb120['upperband'] - bb120['lowerband'])
|
||||
bbp30 = (df['close'] - bb30['lowerband']) / (bb30['upperband'] - bb30['lowerband'])
|
||||
bbp302 = (df['close'] - bb302['lowerband']) / (bb302['upperband'] - bb302['lowerband'])
|
||||
df['atr'] = ta.ATR(df, timeperiod=14)
|
||||
df['bbup365'] = bb365['upperband']
|
||||
df['bblow365'] = bb365['lowerband']
|
||||
df['bbp365'] = bbp365
|
||||
df['bbup120'] = bb120['upperband']
|
||||
df['bblow120'] = bb120['lowerband']
|
||||
df['bbp120'] = bbp120
|
||||
df['bbup30'] = bb30['upperband']
|
||||
df['bblow30'] = bb30['lowerband']
|
||||
df['bbmiddle30'] = bb30_middle # 添加bb30中轨
|
||||
df['bbp30'] = bbp30
|
||||
df['bbup302'] = bb302['upperband']
|
||||
df['bblow302'] = bb302['lowerband']
|
||||
df['bbp302'] = bbp302
|
||||
df['macd'] = macd['macd']
|
||||
df['macdsignal'] = macd['macdsignal']
|
||||
df['macdhist'] = macd['macdhist']
|
||||
df['ema5'] = ta.EMA(df, timeperiod=5)
|
||||
df['ema10'] = ta.EMA(df, timeperiod=10)
|
||||
df['ema26'] = ta.EMA(df, timeperiod=26)
|
||||
df['ema52'] = ta.EMA(df, timeperiod=52)
|
||||
df['rsi'] = ta.RSI(df, timeperiod=14)
|
||||
df['volume_ratio'] = self.cal_volume_ratio(df)
|
||||
return df
|
||||
def get_klc_state_list(self, dataframe):
|
||||
klc_list = self.get_klc_list(dataframe)
|
||||
bi_list= self.cal_bi_list(klc_list)
|
||||
|
||||
Reference in New Issue
Block a user