74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
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):
|
|
added = False
|
|
if len(self.klc_list) > 0:
|
|
for index in range(0, len(self.klc_list)):
|
|
if self.klc_list[index].index == klc.index:
|
|
added = True
|
|
break
|
|
if not added:
|
|
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") |