change something

This commit is contained in:
jackyu66git
2025-04-27 18:37:50 +08:00
parent 88701608bd
commit fceb57d2b8
10 changed files with 285 additions and 162 deletions
+9 -44
View File
@@ -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