mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 18:04:20 +08:00
- cli.md 命令总览(补 chanlun/zhuoyao/bias-signal 漏项)+ 按域导航 - cli-market / cli-finance / cli-indicators / cli-screen / cli-backtest 按域拆分 - cli-backtest 吸收 backtest_usage CLI 章的 backtest/optimize 参数表与 --indicators 说明 - chanlun.md(CLI+Python)、data-local.md(warehouse+offline)按主题合一 - 策略 demo 图复制至 docs/images/demo/,图片与内联链接路径改写为 docs 内相对路径 Co-Authored-By: Claude <noreply@anthropic.com>
149 lines
5.9 KiB
Markdown
149 lines
5.9 KiB
Markdown
# 缠论分析
|
|
|
|
## CLI 用法
|
|
|
|
基于缠论理论的技术分析,计算管道:`K 线合并 → 分型识别 → 笔 → 中枢 → 线段 → 买卖点 → 背驰`。默认输出 JSON,加 `--table` 输出可读表格。:`K 线合并 → 分型识别 → 笔 → 中枢 → 线段 → 买卖点 → 背驰`。默认输出 JSON,加 `--table` 输出可读表格。
|
|
|
|
```bash
|
|
easy-tdx chanlun SZ 000001 --table
|
|
easy-tdx chanlun SH 600519 --adjust QFQ --table
|
|
easy-tdx chanlun SZ 000001 --period 30MIN
|
|
|
|
# 多级别联立:分析日线最后一笔在 30 分钟级别中的走势结构
|
|
easy-tdx chanlun SZ 000001 --multi-level 30MIN --table
|
|
easy-tdx chanlun SH 600519 --multi-level 5MIN
|
|
```
|
|
|
|
### 输出示例
|
|
|
|
以 `easy-tdx chanlun SH 601088 --table` 为例,输出分五个部分:
|
|
|
|
**概要统计**
|
|
|
|
```
|
|
标的: 601088 周期: DAILY
|
|
原始K线: 800 缠论K线: 589
|
|
分型: 275 笔: 131 中枢: 21 线段: 40
|
|
买卖点: 125 背驰: 73
|
|
```
|
|
|
|
| 字段 | 含义 |
|
|
|------|------|
|
|
| 原始 K 线 | 从服务端获取的原始 K 线条数 |
|
|
| 缠论 K 线 | 经过包含处理(合并)后的 K 线条数,数量一定 ≤ 原始 K 线 |
|
|
| 分型 | 识别出的顶分型 + 底分型总数 |
|
|
| 笔 | 相邻两个异向分型之间的连线(涨跌方向交替) |
|
|
| 中枢 | 至少 3 笔重叠区域形成的密集成交区间 |
|
|
| 线段 | 由笔构成的更大级别走势单位 |
|
|
| 买卖点 | 一二三类买卖点信号总数 |
|
|
| 背驰 | 力度衰减信号总数(笔背驰 / 盘整背驰 / 趋势背驰) |
|
|
|
|
**笔**
|
|
|
|
```
|
|
[0] ↑ 2023-02-17 → 2023-02-23 h=28.46 l=26.76 ✓
|
|
[1] ↓ 2023-02-23 → 2023-02-28 h=28.46 l=27.8 ✓
|
|
[2] ↑ 2023-02-28 → 2023-03-09 h=29.77 l=27.8 ✓
|
|
```
|
|
|
|
笔是缠论的基本走势单位。每条笔连接一个顶分型和一个底分型,方向严格交替(↑↓↑↓…)。`✓` 表示已确认(后续出现了反向笔),`…` 表示仍在进行中。
|
|
|
|
- `↑`:向上笔,起点是底分型(低点),终点是顶分型(高点)
|
|
- `↓`:向下笔,起点是顶分型(高点),终点是底分型(低点)
|
|
- `h`/`l`:该笔范围内的最高价 / 最低价
|
|
|
|
**中枢**
|
|
|
|
```
|
|
[0] zg=28.46 zd=28.11 gg=32.56 dd=26.76 lines=11 ✓
|
|
[1] zg=31.2 zd=30.45 gg=32.56 dd=27.9 lines=3 ✓
|
|
```
|
|
|
|
中枢是至少 3 笔重叠形成的密集成交区间,代表多空博弈的平衡区域。`✓` 表示已脱离,`…` 表示价格仍在中枢区间内震荡。
|
|
|
|
| 字段 | 含义 |
|
|
|------|------|
|
|
| `zg` | 中枢上沿(区间内最高的低点)— 支撑/压力的关键分界 |
|
|
| `zd` | 中枢下沿(区间内最低的高点) |
|
|
| `gg` | 中枢区间内的最高价 |
|
|
| `dd` | 中枢区间内的最低价 |
|
|
| `lines` | 构成该中枢的笔数,笔数越多代表震荡越充分 |
|
|
|
|
中枢的意义:价格在中枢内震荡 → 突破中枢上沿看涨,跌破下沿看跌。`zg`/`zd` 是实战中最常用的参考价位。
|
|
|
|
**线段**
|
|
|
|
```
|
|
[0] ↑ 2023-02-17 → 2023-03-09 h=29.77 l=26.76
|
|
[1] ↓ 2023-02-28 → 2023-03-29 h=29.77 l=27.18
|
|
```
|
|
|
|
线段是比笔更大的走势单位,由多笔重叠组合而成。线段的方向不严格交替,可能出现连续同向(如连续多段向上),代表更高一级的趋势方向。实战中通常在线段级别判断大方向,在笔级别找买卖点。
|
|
|
|
**买卖点**
|
|
|
|
```
|
|
1buy: 中枢下方力度衰减,一类买点 (l=27.30 < zd=46.72)
|
|
2buy: 回调不创新低,二类买点 (l=27.33)
|
|
3buy: 回调不破中枢上沿,三类买点 (l=27.80 > zg=27.58)
|
|
1sell: 中枢上方力度衰减,一类卖点 (h=50.38 > zg=46.97)
|
|
2sell: 反弹不创新高,二类卖点 (h=29.32)
|
|
3sell: 反弹不破中枢下沿,三类卖点 (h=28.46 < zd=46.72)
|
|
```
|
|
|
|
缠论定义三类买点和三类卖点:
|
|
|
|
| 类型 | 买点含义 | 卖点含义 |
|
|
|------|----------|----------|
|
|
| 一类 | 下跌趋势末端,力度衰减后的第一个低点(抄底) | 上涨趋势末端,力度衰减后的第一个高点(逃顶) |
|
|
| 二类 | 一类买点后的回调不创新低(确认反转) | 一类卖点后的反弹不创新高(确认反转) |
|
|
| 三类 | 回调不进入中枢上沿(趋势确认,中枢上方买) | 反弹不进入中枢下沿(趋势确认,中枢下方卖) |
|
|
|
|
括号内的条件是该信号的触发依据,如 `l=27.80 > zg=27.58` 表示回调低点 27.80 高于中枢上沿 27.58,所以是三类买点。
|
|
|
|
**背驰**
|
|
|
|
```
|
|
[✓] bi: 笔背驰: 笔[4] 力度=1.32 < 笔[2] 力度=1.97
|
|
[✓] pz: 盘整背驰: 中枢[11] 内末笔力度=2.49 < 首笔力度=6.64
|
|
[✓] qs: 趋势背驰(上): 中枢[1] 离开力度=3.32 < 中枢[0] 离开力度=4.45
|
|
```
|
|
|
|
背驰是力度衰减信号,表明当前走势动力正在减弱,可能即将反转。力度通过 MACD 面积计算,数值越小力度越弱。
|
|
|
|
| 类型 | 含义 |
|
|
|------|------|
|
|
| `bi`(笔背驰) | 同向相邻两笔比较,后一笔力度 < 前一笔 → 该方向动力减弱 |
|
|
| `pz`(盘整背驰) | 同一中枢内,末笔力度 < 首笔 → 中枢内动力衰减,即将突破 |
|
|
| `qs`(趋势背驰) | 两个同向中枢之间比较,后一中枢离开力度 < 前一中枢 → 趋势可能终结 |
|
|
|
|
`[✓]` 表示确认背驰。趋势背驰(上)代表上涨趋势可能结束,趋势背驰(下)代表下跌趋势可能结束。
|
|
|
|
|
|
## Python 用法
|
|
|
|
基于缠论理论的技术分析模块,接收 easy_tdx 的 K 线 DataFrame,输出笔、中枢、线段、买卖点、背驰等分析结果:
|
|
|
|
```python
|
|
from easy_tdx.chanlun import ChanlunAnalyser, ChanlunConfig
|
|
|
|
# 使用 easy_tdx 获取 K 线数据
|
|
with TdxClient() as client:
|
|
df = client.get_security_bars(Market.SH, "600519", KlineCategory.DAY, 0, 800)
|
|
|
|
# 缠论分析
|
|
analyser = ChanlunAnalyser("SH600519", "DAILY")
|
|
result = analyser.process_klines(df)
|
|
|
|
# 获取结果
|
|
print(f"笔数: {len(result.bis)}")
|
|
print(f"中枢数: {len(result.zss)}")
|
|
print(f"线段数: {len(result.xds)}")
|
|
print(f"买卖点: {[m.msg for m in result.mmds]}")
|
|
print(f"背驰: {[b.msg for b in result.bcs]}")
|
|
|
|
# JSON 兼容字典输出
|
|
print(result.to_dict())
|
|
```
|
|
|