change something
This commit is contained in:
+9
-44
@@ -25,35 +25,14 @@ class ChanKLC():
|
||||
self.open = klu.open
|
||||
self.close = klu.close
|
||||
self.volume = klu.volume
|
||||
self.macdhist = 0
|
||||
self.bi_macdhist = 0
|
||||
self.bi_macd_div = 0.0
|
||||
self.bi = None
|
||||
self.distance = 0
|
||||
self.klc_fx_type = Chan_KLC_FX.UNKNOWN
|
||||
self.rsi = klu.rsi
|
||||
self.volume_ratio = klu.volume_ratio
|
||||
def set_klc_fx_type(self, klc_fx_type):
|
||||
#print(self.start_time, klc_fx_type, self.get_feature_data()['klu_macd'], self.get_feature_data()['klu_macdhist'], self.get_feature_data()['klu_rsi'])
|
||||
if self.check_klc_fx_type(klc_fx_type):
|
||||
self.klc_fx_type = klc_fx_type
|
||||
self.klc_fx_type = klc_fx_type
|
||||
def check_klc_fx_type(self, klc_fx_type):
|
||||
if klc_fx_type == Chan_KLC_FX.BOTTOM1:
|
||||
features = self.cal_klu_features()
|
||||
if features['klu_macd'] > 0:
|
||||
#print(self.start_time, klc_fx_type, features['klu_macd'])
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
elif klc_fx_type == Chan_KLC_FX.TOP1:
|
||||
features = self.get_feature_data()
|
||||
if features['klu_macd'] < 0:
|
||||
#print(self.start_time, klc_fx_type, features['klu_macd'])
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
return True
|
||||
|
||||
def add_klu(self, klu):
|
||||
self.klus.append(klu)
|
||||
def set_end_klu(self, klu):
|
||||
@@ -62,6 +41,10 @@ class ChanKLC():
|
||||
self.close = klu.close
|
||||
for index in range(1, len(self.klus)):
|
||||
self.volume += self.klus[index].volume
|
||||
self.rsi += self.klus[index].rsi
|
||||
self.volume_ratio += self.klus[index].volume_ratio
|
||||
self.rsi = self.rsi / len(self.klus)
|
||||
self.volume_ratio = self.volume_ratio / len(self.klus)
|
||||
def set_next(self, klc):
|
||||
self.next = klc
|
||||
def set_pre(self, klc):
|
||||
@@ -138,27 +121,7 @@ class ChanKLC():
|
||||
return Chan_FX_TYPE.UNKNOWN
|
||||
def set_bi(self, bi):
|
||||
self.bi = bi
|
||||
self.get_macdhist()
|
||||
for index in range(0, len(self.bi.klc_list)):
|
||||
klc = self.bi.klc_list[index]
|
||||
if klc.index == self.index:
|
||||
break
|
||||
else:
|
||||
if bi.dir == Chan_BI_DIR.UP and klc.get_macdhist() > 0:
|
||||
self.bi_macdhist += klc.get_macdhist()
|
||||
elif bi.dir == Chan_BI_DIR.DOWN and klc.get_macdhist() < 0:
|
||||
self.bi_macdhist -= klc.get_macdhist()
|
||||
self.distance = self.index - bi.start_klc.index
|
||||
if False:
|
||||
if bi.is_sure:
|
||||
print(self.start_time, self.distance, bi.index, bi.start_time, bi.dir, bi.end_time)
|
||||
else:
|
||||
print(self.start_time, self.distance, bi.index, bi.start_time, bi.dir)
|
||||
def get_macdhist(self):
|
||||
self.macdhist = 0
|
||||
for klu in self.klus:
|
||||
self.macdhist += klu.macdhist
|
||||
return self.macdhist
|
||||
def cal_klu_features(self):
|
||||
features = dict()
|
||||
feature_sums = dict()
|
||||
@@ -196,6 +159,8 @@ class ChanKLC():
|
||||
features['klc_pre_pre_fx'] = (0 if self.pre.pre.fx == Chan_FX_TYPE.UNKNOWN else 1 if self.pre.pre.fx == Chan_FX_TYPE.TOP else 2) if self.pre and self.pre.pre else 0 #11
|
||||
features['klc_pre_pre_pre_fx'] = (0 if self.pre.pre.pre.fx == Chan_FX_TYPE.UNKNOWN else 1 if self.pre.pre.pre.fx == Chan_FX_TYPE.TOP else 2) if self.pre and self.pre.pre and self.pre.pre.pre else 0 #12
|
||||
features['klc_distance'] = self.distance #13
|
||||
features['klc_volume_ratio'] = self.volume_ratio #14
|
||||
features['klc_rsi'] = self.rsi #15
|
||||
# New Add 20250422
|
||||
#features['klc_macdhist'] = self.get_macdhist() #11
|
||||
#features['klc_bi_macdhist'] = self.bi_macdhist #12
|
||||
@@ -492,6 +457,6 @@ class ChanKLC():
|
||||
features['klc_is_inner_inclusive'] = 0
|
||||
|
||||
# 从KLU获取其他特征
|
||||
features.update(self.cal_klu_features())
|
||||
#features.update(self.cal_klu_features())
|
||||
|
||||
return features
|
||||
Reference in New Issue
Block a user