coding macd

This commit is contained in:
jackyu66git
2025-08-30 01:07:03 +08:00
parent bb903a11cf
commit bfbf1781ec
8 changed files with 185 additions and 93 deletions
+14 -22
View File
@@ -1,4 +1,4 @@
from ChanEnum import Chan_MACD_STATE, Chan_MACDUNITTF_DIR
from ChanEnum import Chan_MACD_STATE, Chan_MACDUNITTF_DIR, Chan_MACDHISTSET_DIR
class ChanMACDUnitTF():
@@ -16,32 +16,24 @@ class ChanMACDUnitTF():
self.start_type = start_type
self.end_type = None
self.near0_count = 1
self.high_klu = start_klu
self.low_klu = start_klu
self.peak_klu = None
def set_next(self, next_unittf):
self.next = next_unittf
def add_histset(self, histset):
self.histset_list.append(histset)
histset.set_next(self)
def add_klu(self, klu):
if klu:
self.klu_list.append(klu)
klu.set_unittf(self)
if self.unittf_dir == Chan_MACDUNITTF_DIR.ABOVE:
if klu.macdhist > self.high_klu.macdhist:
self.high_klu = klu
else:
if klu.macdhist < self.low_klu.macdhist:
self.low_klu = klu
else:
if klu.macdhist < self.high_klu.macdhist:
self.high_klu = klu
else:
if klu.macdhist > self.low_klu.macdhist:
self.low_klu = klu
if klu.macd_state == Chan_MACD_STATE.NEAR0 and len(self.histset_list) > 1:
#print(self.start_time, klu.time, self.near0_count)
self.near0_count += 1
self.klu_list.append(klu)
self.cal_peak_div()
def cal_peak_div(self):
if len(self.histset_list) == 1:
self.peak_klu = self.histset_list[0].find_peak_from(self.start_klu)
else:
for histset in self.histset_list:
if histset.peak_klu and self.peak_klu:
if abs(histset.peak_klu.macdhist) > abs(self.peak_klu.macdhist):
self.peak_klu = histset.peak_klu
else:
histset.set_unittf_div(True)
def set_end_klu(self, end_klu, end_type):
self.add_klu(end_klu)
self.end_type = end_type