Change some klc and bi recognition

This commit is contained in:
jackyu66git
2025-06-21 03:07:11 +08:00
parent 6e1c335d28
commit 08ca03fc3d
7 changed files with 132 additions and 35 deletions
+23 -1
View File
@@ -1,4 +1,4 @@
from ChanEnum import Chan_FX_TYPE, Chan_KLU_TYPE
from ChanEnum import Chan_FX_TYPE, Chan_KLU_TYPE, Chan_K_DIR
class ChanKLU:
def __init__(self, time, open, high, low, close, volume):
# _time, _close, _open, _high, _low, _extra_info={}
@@ -34,6 +34,28 @@ class ChanKLU:
self.fx_confirmed = False # 分型是否确认
self.klu_type = None
self.cal_klu_min_max()
self.body = abs(self.close - self.open)
self.upper_shadow = self.high - max(self.close, self.open)
self.lower_shadow = min(self.close, self.open) - self.low
self.body_ratio = self.body / self.open
self.upper_shadow_ratio = self.upper_shadow / self.open
self.lower_shadow_ratio = self.lower_shadow / self.open
self.candle_dir = Chan_K_DIR.CROSS if self.close == self.open else Chan_K_DIR.BULL if self.close > self.open else Chan_K_DIR.BEAR
self.range = self.high - self.low
self.strength = 0 if self.candle_dir == Chan_K_DIR.CROSS else self.cal_klu_strength()
#print(self.open, self.close, self.high, self.low, self.candle_dir, self.strength)
def cal_klu_strength(self):
strength = 0
if range != 0:
if self.candle_dir == Chan_K_DIR.BULL and (self.upper_shadow + self.lower_shadow) != 0:
strength += self.body / self.range
strength += self.body / (self.upper_shadow + self.lower_shadow)
elif self.candle_dir == Chan_K_DIR.BEAR and (self.upper_shadow + self.lower_shadow) != 0:
strength -=self.body / self.range
strength -= self.body / (self.upper_shadow + self.lower_shadow)
#print(self.time, self.body, self.range, self.upper_shadow, self.lower_shadow, self.candle_dir, strength)
return strength
return strength
def cal_klu_min_max(self):
"""
计算K线类型:大阳线、大阴线、小阳线、小阴线