from chanlun.core.ChanEnum import Chan_MACDSEG_DIR class ChanMACDSeg(): def __init__(self, index, start_time, start_klu, pre_seg, seg_dir, start_unittf): self.index = index 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.unittf_list = [] self.seg_dir = seg_dir self.pre = pre_seg self.next = None self.high_klu = start_klu self.low_klu = start_klu self.ref_klu = None self.unittf_list.append(start_unittf) def set_next(self, next_seg): self.next = next_seg def set_pre(self, pre_seg): self.pre = pre_seg def add_klu(self, klu): if klu: self.klu_list.append(klu) klu.set_seg(self) if self.seg_dir == Chan_MACDSEG_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 self.high_klu.index != self.start_klu.index: self.ref_klu = self.high_klu def add_unittf(self, unittf): self.unittf_list.append(unittf) unittf.set_next(self) def set_end_klu(self, end_klu): self.add_klu(end_klu) self.end_klu = end_klu self.end_time = end_klu.time