Add some classifier code

This commit is contained in:
jackyu66git
2025-04-23 10:39:04 +08:00
parent 70e14c2ea3
commit 48d5647ebf
14 changed files with 139 additions and 47 deletions
+15 -6
View File
@@ -26,6 +26,9 @@ class ChanKLC():
self.close = klu.close
self.volume = klu.volume
self.macdhist = 0
self.bi_macdhist = 0
self.bi_macd_div = 0.0
self.bi = None
def add_klu(self, klu):
self.klus.append(klu)
def set_end_klu(self, klu):
@@ -116,10 +119,10 @@ class ChanKLC():
if klc.index == self.index:
break
else:
if bi.dir == Chan_BI_DIR.UP:
self.macdhist += klc.get_macdhist()
else:
self.macdhist -= klc.get_macdhist()
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()
def get_macdhist(self):
self.macdhist = 0
for klu in self.klus:
@@ -158,8 +161,14 @@ class ChanKLC():
features['klc_fx'] = 0 if self.fx == Chan_FX_TYPE.UNKNOWN else 1 if self.fx == Chan_FX_TYPE.TOP else 2 #7
features['klc_klus'] = len(self.klus) #8
features['klc_volume'] = self.volume #9
features['klc_pre_fx'] = (0 if self.pre.fx == Chan_FX_TYPE.UNKNOWN else 1 if self.pre.fx == Chan_FX_TYPE.TOP else 2) if self.pre else 0
features['klc_pre_fx'] = (0 if self.pre.fx == Chan_FX_TYPE.UNKNOWN else 1 if self.pre.fx == Chan_FX_TYPE.TOP else 2) if self.pre else 0 #10
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
# New Add 20250422
#features['klc_macdhist'] = self.get_macdhist() #11
#features['klc_bi_macdhist'] = self.bi_macdhist #12
#features['klc_bi_macd_div'] = self.bi_macd_div #13
#features['klc_bi_dir'] = 1 if self.bi.dir == Chan_BI_DIR.UP else -1 #14
# ===== 2.1 K线形态因子 =====
# K线实体大小