提交 6b1b1b6b 编写于 作者: Z zengbin93

0.5.1: 初版开发完成

上级 d01e88f9
......@@ -126,7 +126,7 @@ class BI:
fx_inside = [x for x in self.elements if x.dt >= self.dt]
bars_inside = [y for x in fx_inside for y in x.elements]
num_k = len(set([x['dt'] for x in bars_inside])) - len(mid_fx.elements) + 3
if num_k >= 7:
if num_k >= 6:
self.is_end = True
def __repr__(self):
......@@ -253,8 +253,43 @@ class XD:
class ZS:
"""中枢"""
def __init__(self):
# 组成中枢的元件:笔标记、线段标记、走势标记
self.elements = []
self.ZD = 0
self.ZG = 0
self.D = None
self.G = None
self.DD = None
self.GG = None
self.third_buy = None
self.third_sell = None
self.is_end = False
def __repr__(self):
pass
return f"<ZS({self.ZD}~{self.ZG})>"
def update(self, mark):
self.elements.append(mark)
if len(self.elements) < 4:
return
if not self.ZD and not self.ZG:
zd = max([x.price for x in self.elements[-4:] if x.mark == "d"])
zg = min([x.price for x in self.elements[-4:] if x.mark == "g"])
if zg > zd:
self.ZD = zd
self.ZG = zg
else:
return
else:
if mark.mark == 'g' and mark.price < self.ZD:
self.third_sell = mark
self.is_end = True
if mark.mark == 'd' and mark.price > self.ZG:
self.third_buy = mark
self.is_end = True
class PZ:
......@@ -335,6 +370,8 @@ class KlineAnalyze(object):
def update(self, bar, save=True):
"""每次输入一根K线进行分析"""
if save:
if bar['dt'] == self.kline[-1]['dt']:
self.kline.pop(-1)
self.kline.append(bar)
if not self.fxs:
......
# coding: utf-8
import sys
import warnings
from cobra.data.kline import get_kline
sys.path.insert(0, '.')
sys.path.insert(0, '..')
import czsc
from czsc.analyze_v2 import KlineAnalyze
warnings.warn(f"czsc version is {czsc.__version__}")
df = get_kline(ts_code="000001.SH", end_dt="2020-04-28 15:00:00", freq='D', asset='I')
ka = KlineAnalyze(df, name="日线")
print(ka)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册