45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from ChanEnum import Chan_MACD_STATE, Chan_MACDUNITTF_DIR, Chan_MACDHISTSET_DIR
|
|
|
|
|
|
class ChanMACDUnitTF():
|
|
def __init__(self, start_time, start_klu, pre_unittf, dir, start_type):
|
|
self.start_time = start_time
|
|
self.end_time = None
|
|
self.start_klu = start_klu
|
|
self.end_klu = None
|
|
self.klu_list = []
|
|
self.klu_list.append(start_klu)
|
|
self.histset_list = []
|
|
self.next = None
|
|
self.pre = pre_unittf
|
|
self.unittf_dir = dir
|
|
self.start_type = start_type
|
|
self.end_type = None
|
|
self.near0_count = 1
|
|
self.peak_klu = None
|
|
def set_next(self, next_unittf):
|
|
self.next = next_unittf
|
|
def add_histset(self, histset):
|
|
self.histset_list.append(histset)
|
|
def add_klu(self, klu):
|
|
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
|
|
self.end_klu = end_klu
|
|
self.end_time = end_klu.time
|
|
if self.peak_klu:
|
|
print(self.start_klu.time, self.peak_klu.time)
|
|
else:
|
|
print("None", len(self.histset_list)) |