From 7ac07b163b534d99304a8be3e4c646da06894c98 Mon Sep 17 00:00:00 2001 From: zengbin93 Date: Thu, 27 Feb 2020 19:27:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=80=E3=80=81?= =?UTF-8?q?=E4=BA=8C=E4=B9=B0=E5=8D=96=E7=82=B9=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: e29a34389a314dca1ff6192f8d4089d6aa9ab2a1 --- README.md | 22 ++++++++++++---------- chan/analyze.py | 20 ++++++++++++++------ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8587213..09a097c 100644 --- a/README.md +++ b/README.md @@ -12,17 +12,19 @@ pip install git+git://github.com/zengbin93/chan.git -U ## K线数据样例 +`dt` 的格式统一为 `%Y-%m-%d %H:%M:%S`,如 `2020-02-27 00:00:00` + ```markdown - symbol dt open close high low vol -0 002739.SZ 20181105 31.10 31.10 31.10 31.10 17495.00 -1 002739.SZ 20181106 27.99 27.99 27.99 27.99 8557.00 -2 002739.SZ 20181107 25.19 25.19 25.19 25.19 13163.00 -3 002739.SZ 20181108 22.67 22.67 22.67 22.67 109787.00 -4 002739.SZ 20181109 20.66 22.17 23.73 20.65 896466.32 -5 002739.SZ 20181112 21.19 22.42 22.57 21.01 495463.08 -6 002739.SZ 20181113 22.06 23.71 24.50 21.86 497543.55 -7 002739.SZ 20181114 23.61 23.35 24.25 23.15 297538.47 -8 002739.SZ 20181115 23.50 23.70 23.96 23.30 197008.28 + symbol dt open close high low vol +0 300803.SZ 2020-01-17 09:31:00 44.08 44.19 44.30 44.01 170160 +1 300803.SZ 2020-01-17 09:32:00 44.06 44.24 44.24 43.93 91100 +2 300803.SZ 2020-01-17 09:33:00 44.10 43.91 44.17 43.91 90251 +3 300803.SZ 2020-01-17 09:34:00 43.90 43.86 43.90 43.81 61100 +4 300803.SZ 2020-01-17 09:35:00 43.86 43.66 43.86 43.61 75900 +5 300803.SZ 2020-01-17 09:36:00 43.66 43.80 43.86 43.66 56600 +6 300803.SZ 2020-01-17 09:37:00 43.81 43.67 43.82 43.67 68600 +7 300803.SZ 2020-01-17 09:38:00 43.67 43.60 43.67 43.53 97554 +8 300803.SZ 2020-01-17 09:39:00 43.60 43.62 43.70 43.57 118861 ``` * dt 表示 该周期的交易结束时间 diff --git a/chan/analyze.py b/chan/analyze.py index 325b14e..ceb0ab3 100644 --- a/chan/analyze.py +++ b/chan/analyze.py @@ -552,7 +552,9 @@ class SolidAnalyze: } if isinstance(ka1, KlineAnalyze) and ka1.xd[-1]['fx_mark'] == 'g': # 以上一级别线段终点为走势分解的起点 - xds = [x for x in ka.xd if x['dt'] >= ka1.xd[-1]['dt']] + xds_l = [x for x in ka.xd if x['dt'] <= ka1.xd[-1]['dt']] + xds_r = [x for x in ka.xd if x['dt'] > ka1.xd[-1]['dt']] + xds = [xds_l[-1]] + xds_r # 盘整至少有三段次级别走势,趋势至少有5段;底背驰一定要创新低 if xds[-1]['fx_mark'] == 'd' and len(xds) >= 4 and xds[-1]['xd'] < xds[-3]['xd']: zs1 = [xds[-2]['dt'], xds[-1]['dt']] @@ -587,7 +589,9 @@ class SolidAnalyze: } if isinstance(ka1, KlineAnalyze) and ka1.xd[-1]['fx_mark'] == 'd': # 以上一级别线段终点为走势分解的起点 - xds = [x for x in ka.xd if x['dt'] >= ka1.xd[-1]['dt']] + xds_l = [x for x in ka.xd if x['dt'] <= ka1.xd[-1]['dt']] + xds_r = [x for x in ka.xd if x['dt'] > ka1.xd[-1]['dt']] + xds = [xds_l[-1]] + xds_r # 盘整至少有三段次级别走势,趋势至少有5段;顶背驰一定要创新高 if xds[-1]['fx_mark'] == 'g' and len(xds) >= 4 and xds[-1]['xd'] > xds[-3]['xd']: zs1 = [xds[-2]['dt'], xds[-1]['dt']] @@ -622,10 +626,12 @@ class SolidAnalyze: } if isinstance(ka1, KlineAnalyze) and ka1.xd[-1]['fx_mark'] == 'd': # 以上一级别线段终点为走势分解的起点 - xds = [x for x in ka.xd if x['dt'] >= ka1.xd[-1]['dt']] + xds_l = [x for x in ka.xd if x['dt'] <= ka1.xd[-1]['dt']] + xds_r = [x for x in ka.xd if x['dt'] > ka1.xd[-1]['dt']] + xds = [xds_l[-1]] + xds_r # 次级别向下走势不创新低,就认为是类二买,其中第一个是真正的二买; # 如果一个向上走势内部已经有5段次级别走势,则认为该走势随后不再有二买机会 - if xds[-1]['fx_mark'] == 'd' and len(xds) <= 5 and xds[-1]['xd'] > xds[-3]['xd']: + if xds[-1]['fx_mark'] == 'd' and 3 <= len(xds) <= 5 and xds[-1]['xd'] > xds[-3]['xd']: b = True detail["出现时间"] = xds[-1]['dt'] detail["确认时间"] = xds[-1]['dt'] @@ -655,10 +661,12 @@ class SolidAnalyze: } if isinstance(ka1, KlineAnalyze) and ka1.xd[-1]['fx_mark'] == 'g': # 以上一级别线段终点为走势分解的起点 - xds = [x for x in ka.xd if x['dt'] >= ka1.xd[-1]['dt']] + xds_l = [x for x in ka.xd if x['dt'] <= ka1.xd[-1]['dt']] + xds_r = [x for x in ka.xd if x['dt'] > ka1.xd[-1]['dt']] + xds = [xds_l[-1]] + xds_r # 次级别向上走势不创新高,就认为是类二卖,其中第一个是真正的二卖; # 如果一个向下走势内部已经有5段次级别走势,则认为该走势随后不再有二卖机会 - if xds[-1]['fx_mark'] == 'g' and len(xds) <= 5 and xds[-1]['xd'] < xds[-3]['xd']: + if xds[-1]['fx_mark'] == 'g' and 3 <= len(xds) <= 5 and xds[-1]['xd'] < xds[-3]['xd']: b = True detail["出现时间"] = xds[-1]['dt'] detail["确认时间"] = xds[-1]['dt'] -- GitLab