import ChanKLC from ChanEnum import Chan_BI_DIR class ChanBI(): def __init__(self, klc: ChanKLC, index, ddir=Chan_BI_DIR.UP): self.start_klc = klc self.end_klc = None self.next = None self.pre = None self.dir = ddir self.index = index self.is_sure = False self.high = klc.high self.low = klc.low self.sure_time = None self.klc_list = [] self.klc_list.append(klc) self.end_time = None self.start_time = klc.start_time self.macd_hist = 0 self.macd_div = 0 def set_macd_hist(self, macd_hist): self.macd_hist = macd_hist def set_macd_div(self, macd_div): self.macd_div = macd_div def check_overlap(self): if self.next and self.next.next: if self.dir == Chan_BI_DIR.UP: return self.high > self.next.low and self.high < self.next.next.high else: return self.high > self.next.high and self.low > self.next.next.low else: return False def set_end_klc(self, klc, sure_klc): if self.dir == Chan_BI_DIR.UP and klc.high > self.high: self.high = klc.high if self.dir == Chan_BI_DIR.DOWN and klc.low < self.low: self.low = klc.low self.end_klc = klc self.set_is_sure(True, sure_klc.end_time) self.end_time = klc.end_time def set_is_sure(self, is_sure, time): self.is_sure = is_sure self.sure_time = time def set_start_klc(self, klc, ddir): self.start_klc = klc self.klc_list = [] self.klc_list.append(klc) self.high = klc.high self.low = klc.low self.dir = ddir def set_pre(self, bi): self.pre = bi def set_next(self, bi): self.next = bi def add_klc(self, klc): self.klc_list.append(klc) def append_klc_list(self, klc_list): self.klc_list.append(klc_list) def update_bi(self, klc): self.end_klc = None if self.dir == Chan_BI_DIR.UP and klc.high > self.high: self.high = klc.high if self.dir == Chan_BI_DIR.DOWN and klc.low < self.low: self.low = klc.low self.is_sure = False self.sure_time = None #print(self.start_klc.start_time, klc.start_time, klc.fx, "This bi is extended")