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
+39 -13
View File
@@ -6,30 +6,56 @@ class ChanMACDHistSet():
self.end_time = None
self.klu_list = []
self.klu_list.append(start_klu)
self.ref_klu = None
self.histset_dir = dir
self.next = None
self.pre = pre_histset
self.high_klu = start_klu
self.low_klu = start_klu
self.peak_klu = None
self.div_klu = None
self.area = start_klu.macdhist
self.unittf_div = False
def set_next(self, next_histset):
self.next = next_histset
def set_unittf_div(self, unittf_div):
self.unittf_div = unittf_div
def add_klu(self, klu):
self.klu_list.append(klu)
klu.set_histset(self)
if self.histset_dir == Chan_MACDHISTSET_DIR.ABOVE:
if klu.macdhist > self.high_klu.macdhist:
self.high_klu = klu
if self.peak_klu:
if klu.macdhist > self.peak_klu.macdhist:
self.peak_klu = klu
if klu.macdhist > self.klu_list[-1].macdhist and klu.macdhist < self.peak_klu.macdhist:
self.div_klu = klu
else:
if klu.macdhist < self.low_klu.macdhist:
self.low_klu = klu
if len(self.klu_list) > 0:
pre_klu = self.klu_list[-1]
if pre_klu.macdhist < klu.macdhist:
self.peak_klu = klu
else:
if klu.macdhist < self.high_klu.macdhist:
self.high_klu = klu
if self.peak_klu:
if klu.macdhist < self.peak_klu.macdhist:
self.peak_klu = klu
if klu.macdhist < self.klu_list[-1].macdhist and klu.macdhist > self.peak_klu.macdhist:
self.div_klu = klu
else:
if klu.macdhist > self.low_klu.macdhist:
self.low_klu = klu
if len(self.klu_list) > 0:
pre_klu = self.klu_list[-1]
if pre_klu.macdhist > klu.macdhist:
self.peak_klu = klu
self.klu_list.append(klu)
self.area += klu.macdhist
def set_end_klu(self, end_klu):
self.add_klu(end_klu)
self.end_klu = end_klu
self.end_time = end_klu.time
self.end_time = end_klu.time
def find_peak_from(self, from_klu):
peak_klu = None
if from_klu in self.klu_list:
for i in range(from_klu.index + 1, len(self.klu_list)):
klu = self.klu_list[i]
if peak_klu:
if abs(peak_klu.macdhist) < abs(klu.macdhist):
peak_klu = klu
else:
if abs(self.klu_list[i-1].macdhist) < abs(klu.macdhist):
peak_klu = klu
return peak_klu