mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 14:34:15 +08:00
feat: add BIAS_SIGNAL indicator (30-day bias with signal lines)
Add BIAS_SIGNAL indicator derived from TongDaXin's 30-day bias formula. Outputs BS_X (raw bias), BS_SMA (short signal line), BS_LMA (long signal line) for trend direction and reversal detection via asymmetric bull/bear logic. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
7572b16614
commit
4c5817f7b0
@@ -98,6 +98,7 @@ easy-tdx indicator ATR -m SH -c 600519 --table # ATR 真实波幅
|
||||
easy-tdx indicator WR -m SH -c 600519 --table # WR 威廉指标
|
||||
easy-tdx indicator CCI -m SH -c 600519 --table # CCI 顺势指标
|
||||
easy-tdx indicator BIAS -m SZ -c 000001 --table # BIAS 乖离率
|
||||
easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --table # 30日乖离率信号
|
||||
easy-tdx indicator OBV -m SZ -c 000001 --table # OBV 能量潮
|
||||
|
||||
# 多指标同时计算
|
||||
@@ -138,6 +139,46 @@ easy-tdx indicator ZHUOYAO,MACD,KDJ -m SH -c 600519 --count 20 --table
|
||||
|
||||
**核心信号:** 四线全部 > 0 且短线 > 中线 > 长线 = 短中长趋势完全一致向上,是强势股特征。详见 [捉妖大师指标详解](docs/indicator-zhuoyao.md)。
|
||||
|
||||
### 30日乖离率信号(重点)
|
||||
|
||||
30日乖离率信号指标,在标准乖离率(BIAS)基础上叠加短/长信号线,通过三者位置关系判断趋势方向和转折点。源自通达信经典指标。
|
||||
|
||||
```bash
|
||||
easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --count 60 --table
|
||||
|
||||
# 自定义周期参数
|
||||
easy-tdx indicator BIAS_SIGNAL -m SZ -c 000001 --params P=5,M=20
|
||||
|
||||
# 结合其他指标一起看
|
||||
easy-tdx indicator BIAS_SIGNAL,MACD,KDJ -m SH -c 600519 --count 30 --table
|
||||
```
|
||||
|
||||
输出列说明:
|
||||
|
||||
| 列名 | 含义 |
|
||||
|------|------|
|
||||
| `BS_X` | M日乖离率 — 当前价格偏离30日均线的百分比 |
|
||||
| `BS_SMA` | 短周期信号线 — 乖离率的 P 日均线,过滤短期噪音 |
|
||||
| `BS_LMA` | 长周期信号线 — 乖离率的 M 日均线,捕捉中期趋势方向 |
|
||||
|
||||
**核心信号:** X > S_SMA 且 X_LMA 上升 = 多头确认(通达信红色);S_SMA > X 或 X_LMA 下降 = 空头预警(通达信绿色)。多空判断非对称设计——多头需两个条件同时满足,空头只需其一,偏向保守预警。详见 [30日乖离率信号指标详解](docs/indicator-bias-signal.md)。
|
||||
|
||||
```python
|
||||
# Python API 用法
|
||||
from easy_tdx import MacClient, Market
|
||||
|
||||
with MacClient.from_best_host() as c:
|
||||
df = c.get_stock_kline_with_indicators(
|
||||
Market.SH, "600519",
|
||||
indicators=["BIAS_SIGNAL"],
|
||||
count=60,
|
||||
)
|
||||
# df 包含: datetime, open, close, high, low, vol, amount
|
||||
# + BS_X, BS_SMA, BS_LMA
|
||||
```
|
||||
|
||||
支持 32 个指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, BIAS_SIGNAL, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ, ZHUOYAO。
|
||||
|
||||
```python
|
||||
# Python API 用法
|
||||
from easy_tdx import MacClient, Market
|
||||
@@ -152,7 +193,7 @@ with MacClient.from_best_host() as c:
|
||||
# + ZY_LONG, ZY_MID, ZY_SHORT, ZY_TREND
|
||||
```
|
||||
|
||||
支持 30 个指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ, ZHUOYAO。
|
||||
支持 32 个指标:MACD, KDJ, RSI, BOLL, DMI, ATR, WR, CCI, BIAS, BIAS_SIGNAL, OBV, VR, EMV, MFI, BRAR, ASI, TRIX, DPO, MTM, ROC, EXPMA, BBI, PSY, DFMA, CR, KTN, XSII, MASS, TAQ, ZHUOYAO。
|
||||
|
||||
### 财务
|
||||
|
||||
@@ -194,7 +235,7 @@ easy-tdx ex tick HK_MAIN_BOARD 00700 --table # 港股分时
|
||||
| `market-stat` | 全市场涨跌统计 |
|
||||
| `server-info` | 服务器交易时段 |
|
||||
| `symbol-info` | 个股特征快照 |
|
||||
| `indicator` | 技术指标计算(31 个:MACD/KDJ/RSI/BOLL/DMI/ATR...) |
|
||||
| `indicator` | 技术指标计算(32 个:MACD/KDJ/RSI/BOLL/DMI/ATR...) |
|
||||
| `indicator-list` | 列出可用技术指标 |
|
||||
| `f10` | F10 公司信息 |
|
||||
| `fund-flow` | 历史资金流向 |
|
||||
@@ -327,6 +368,7 @@ with MacClient.from_best_host() as c:
|
||||
| MASS | high, low | MASS, MASS_MA |
|
||||
| TAQ | high, low | TAQ_UP, TAQ_MID, TAQ_DOWN |
|
||||
| ZHUOYAO | close | ZY_LONG, ZY_MID, ZY_SHORT, ZY_TREND |
|
||||
| BIAS_SIGNAL | close | BS_X, BS_SMA, BS_LMA |
|
||||
|
||||
#### 分时
|
||||
|
||||
@@ -630,7 +672,7 @@ src/easy_tdx/
|
||||
├── client.py # TdxClient / AsyncTdxClient(标准协议)
|
||||
├── unified.py # UnifiedTdxClient(统一入口)
|
||||
├── config.py # 服务器地址、端口、超时配置
|
||||
├── indicator.py # 技术指标计算(31 个,基于 MyTT)
|
||||
├── indicator.py # 技术指标计算(32 个,基于 MyTT)
|
||||
├── MyTT.py # 麦语言技术指标算法库
|
||||
├── mac/
|
||||
│ ├── client.py # MacClient / AsyncMacClient(MAC 协议)
|
||||
@@ -674,6 +716,19 @@ ruff format --check src/ tests/ # format check
|
||||
|
||||
## Changelog
|
||||
|
||||
### 1.4.3 (2026-05-28)
|
||||
|
||||
**30日乖离率信号指标** — 新增 BIAS_SIGNAL 指标,在标准乖离率基础上叠加短/长信号线,通过三者位置关系判断趋势方向和转折点。源自通达信经典指标。
|
||||
|
||||
- 新增 `BIAS_SIGNAL` 指标:输出 BS_X/BS_SMA/BS_LMA 三条线
|
||||
- CLI: `easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --table`
|
||||
- Python API: `indicators=["BIAS_SIGNAL"]`
|
||||
- 详见 [30日乖离率信号指标详解](docs/indicator-bias-signal.md)
|
||||
|
||||
### 1.4.2 (2026-05-28)
|
||||
|
||||
修复 1.4.1 发布遗漏:MyTT.py 中 ZHUOYAO 函数定义未包含在 1.4.1 的 PyPI 包中。
|
||||
|
||||
### 1.4.1 (2026-05-28)
|
||||
|
||||
**捉妖大师指标** — 新增 ZHUOYAO 多周期涨幅共振指标,通过 20/60/120 日涨幅及指数平滑判断短中长线趋势是否同向,用于筛选趋势刚启动的强势股。
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
# 30日乖离率信号 (BIAS_SIGNAL) 技术指标
|
||||
|
||||
## 指标定义
|
||||
|
||||
在标准乖离率(BIAS)的基础上,叠加短期信号线和长期信号线,通过三者之间的位置关系判断趋势方向和转折点。
|
||||
|
||||
### 通达信原公式
|
||||
|
||||
```
|
||||
P:=10;
|
||||
M:=30;
|
||||
X:(CLOSE-MA(CLOSE,M))/MA(CLOSE,M)*100;
|
||||
S_SMA:MA(X,P);
|
||||
X_LMA:MA(X,M);
|
||||
|
||||
IF(X>S_SMA AND X_LMA>REF(X_LMA,1),X_LMA,DRAWNULL),COLORRED;
|
||||
IF(S_SMA>X OR X_LMA<REF(X_LMA,1),X_LMA,DRAWNULL),COLORGREEN;
|
||||
ZERO:0;
|
||||
```
|
||||
|
||||
### MyTT 等价实现
|
||||
|
||||
```python
|
||||
def BIAS_SIGNAL(CLOSE, P=10, M=30):
|
||||
X = (CLOSE - MA(CLOSE, M)) / MA(CLOSE, M) * 100 # M日乖离率
|
||||
S_SMA = MA(X, P) # 短周期信号线 MA(X, P)
|
||||
X_LMA = MA(X, M) # 长周期信号线 MA(X, M)
|
||||
return RD(X), RD(S_SMA), RD(X_LMA)
|
||||
```
|
||||
|
||||
输出三条线:`(X, S_SMA, X_LMA)`。
|
||||
|
||||
## 调用方式
|
||||
|
||||
```python
|
||||
from easy_tdx.MyTT import BIAS_SIGNAL
|
||||
|
||||
# close: numpy 数组,建议至少 60+ 个数据点(M=30 的两倍以确保信号线收敛)
|
||||
X, S_SMA, X_LMA = BIAS_SIGNAL(close)
|
||||
|
||||
# 自定义周期
|
||||
X, S_SMA, X_LMA = BIAS_SIGNAL(close, P=10, M=30)
|
||||
```
|
||||
|
||||
参数说明:
|
||||
|
||||
| 参数 | 默认值 | 含义 |
|
||||
|------|--------|------|
|
||||
| P | 10 | 短期信号线平滑周期 |
|
||||
| M | 30 | 乖离率计算周期 + 长期信号线平滑周期 |
|
||||
|
||||
CLI 使用:
|
||||
|
||||
```bash
|
||||
easy-tdx indicator BIAS_SIGNAL -m SH -c 601088 --count 120 --table
|
||||
```
|
||||
|
||||
## 核心逻辑
|
||||
|
||||
### 三线含义
|
||||
|
||||
| 线 | 公式 | 含义 |
|
||||
|----|------|------|
|
||||
| X | `(C - MA(C,M)) / MA(C,M) × 100` | M日乖离率原始值,衡量当前价格偏离30日均线的百分比 |
|
||||
| S_SMA | `MA(X, P)` | X 的 P 日均线,过滤短期噪音,作为短期趋势参考 |
|
||||
| X_LMA | `MA(X, M)` | X 的 M 日均线,捕捉乖离率本身的中期趋势方向 |
|
||||
|
||||
### 与标准 BIAS 的关系
|
||||
|
||||
标准 BIAS 指标(MyTT 已有)直接返回 6/12/24 日乖离率原始值。`BIAS_SIGNAL` 的不同之处在于:
|
||||
|
||||
1. **聚焦单一周期**(M=30),而非多周期并列
|
||||
2. **叠加信号线**,S_SMA 和 X_LMA 构成双重平滑,过滤假信号
|
||||
3. **自带趋势判断**,通过 X 与 S_SMA 的位置关系 + X_LMA 的方向来判断多空
|
||||
|
||||
本质上这是一个 **乖离率的二阶分析系统**:先算乖离率,再对乖离率做趋势分析。
|
||||
|
||||
### 零轴意义
|
||||
|
||||
- **X > 0**:价格在 M 日均线上方(偏多)
|
||||
- **X < 0**:价格在 M 日均线下方(偏空)
|
||||
- **X 在零轴附近震荡**:价格围绕均线缠绕,无明确方向
|
||||
|
||||
## 交易信号
|
||||
|
||||
### 1. 趋势方向判断(通达信颜色逻辑)
|
||||
|
||||
通达信原版的颜色规则等价于:
|
||||
|
||||
| 状态 | 条件 | 含义 |
|
||||
|------|------|------|
|
||||
| 多头(红) | `X > S_SMA` **且** `X_LMA > REF(X_LMA,1)` | 乖离率高于短期均线(偏强),且长期信号线在上升(趋势确认) |
|
||||
| 空头(绿) | `S_SMA > X` **或** `X_LMA < REF(X_LMA,1)` | 乖离率低于短期均线(偏弱),或长期信号线在下降(趋势走弱) |
|
||||
|
||||
注意条件是非对称的:多头需要两个条件**同时满足**,空头只需满足其一。这意味着指标偏向保守——宁可错过一些多头机会,也要尽早预警空头风险。
|
||||
|
||||
### 2. 金叉/死叉信号
|
||||
|
||||
- **X 上穿 S_SMA**(金叉):短期乖离率走强,价格开始加速偏离均线。如果 X 同时上穿零轴,信号更强
|
||||
- **X 下穿 S_SMA**(死叉):短期乖离率走弱,价格向均线回归。如果在高位发生,是明确的卖出信号
|
||||
- **S_SMA 上穿 X_LMA**:短期信号确认中期趋势向上,趋势行情确认
|
||||
|
||||
### 3. X_LMA 拐头信号
|
||||
|
||||
X_LMA 是 X 的 M 日均线,变化缓慢但方向性强:
|
||||
|
||||
- **X_LMA 从下降转为上升**:中期趋势从空头转多头,是趋势转折的确认信号
|
||||
- **X_LMA 从上升转为下降**:中期趋势从多头转空头,即使价格还在上涨也要警惕
|
||||
|
||||
### 4. 极值信号
|
||||
|
||||
- **X 远高于 S_SMA 和 X_LMA**(如 X > 10):短期严重超买,价格远超均线,回调风险大
|
||||
- **X 远低于 S_SMA 和 X_LMA**(如 X < -10):短期严重超卖,可能存在反弹机会
|
||||
- 极值判断需要结合个股历史波动率,没有统一阈值
|
||||
|
||||
### 5. 典型入场场景
|
||||
|
||||
**多头入场**(四个条件同时满足):
|
||||
1. X 从下方上穿零轴(价格站上30日均线)
|
||||
2. X > S_SMA(乖离率在走强)
|
||||
3. X_LMA 拐头向上(中期趋势确认)
|
||||
4. 成交量配合放大(量价共振)
|
||||
|
||||
**空头离场/做空**:
|
||||
1. X 从高位下穿 S_SMA(短期走弱)
|
||||
2. X_LMA 开始走平或拐头向下
|
||||
3. 价格跌破30日均线(X < 0 确认)
|
||||
|
||||
## 参数调优
|
||||
|
||||
### P(短期信号线周期)
|
||||
|
||||
| P 值 | 特点 |
|
||||
|------|------|
|
||||
| 5 | 信号灵敏,假信号多,适合短线交易 |
|
||||
| 10 | 默认值,信号频率和准确性较平衡 |
|
||||
| 20 | 信号少但可靠,适合中长线 |
|
||||
|
||||
### M(乖离率 + 长期信号线周期)
|
||||
|
||||
| M 值 | 特点 |
|
||||
|------|------|
|
||||
| 20 | 更贴近价格,适合波段交易 |
|
||||
| 30 | 默认值,一个月级别,适合中线趋势跟踪 |
|
||||
| 60 | 更平滑,信号少但级别大,适合中长线 |
|
||||
|
||||
### 调参建议
|
||||
|
||||
- 大盘蓝筹股波动小,M 可以用默认 30 或调大到 60
|
||||
- 小盘成长股波动大,P 调小到 5-7 可以更早捕捉拐点
|
||||
- 参数无需频繁调整,固定 P=10, M=30 对大多数个股有效
|
||||
|
||||
## 与其他指标的配合
|
||||
|
||||
| 配合指标 | 作用 |
|
||||
|----------|------|
|
||||
| MACD | BIAS_SIGNAL 判断趋势方向,MACD 确认动量强弱 |
|
||||
| VOL(成交量) | 乖离率扩大时需要成交量配合,无量乖离不可靠 |
|
||||
| BOLL | BOLL 上轨/下轨可以辅助判断 X 的极值区域 |
|
||||
| KDJ | BIAS_SIGNAL 确认趋势方向后,KDJ 寻找具体买卖点 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 数据不足时(< 2M 根 K 线),X_LMA 收敛不充分,前期值不准确
|
||||
- 该指标本质是均线偏离度的趋势分析,**震荡市中反复穿越零轴会产生大量假信号**
|
||||
- 乖离率的绝对值因个股波动率而异,不同股票间不应直接比较 X 的数值
|
||||
- 指标不直接产生买卖信号,需结合成交量、K 线形态和基本面综合判断
|
||||
@@ -315,4 +315,10 @@ def ZHUOYAO(CLOSE, N1=120, N2=60, N3=20, M=10): #捉妖大师指标:中长
|
||||
TREND = EMA(MID, M) #趋势 EXPMA(中线,10)
|
||||
return RD(LONG), RD(MID), RD(SHORT), RD(TREND)
|
||||
|
||||
def BIAS_SIGNAL(CLOSE, P=10, M=30): #乖离率信号指标:M日乖离 + 短/长信号线趋势判断
|
||||
X = (CLOSE - MA(CLOSE, M)) / MA(CLOSE, M) * 100 #M日乖离率
|
||||
S_SMA = MA(X, P) #短周期信号线 MA(X,P)
|
||||
X_LMA = MA(X, M) #长周期信号线 MA(X,M)
|
||||
return RD(X), RD(S_SMA), RD(X_LMA)
|
||||
|
||||
#望大家能提交更多指标和函数 https://github.com/mpquant/MyTT
|
||||
|
||||
@@ -186,6 +186,14 @@ _reg(
|
||||
{"N1": 120, "N2": 60, "N3": 20, "M": 10},
|
||||
"ZHUOYAO 捉妖大师 多周期涨幅共振",
|
||||
)
|
||||
_reg(
|
||||
"BIAS_SIGNAL",
|
||||
("close",),
|
||||
("BS_X", "BS_SMA", "BS_LMA"),
|
||||
MyTT.BIAS_SIGNAL,
|
||||
{"P": 10, "M": 30},
|
||||
"BIAS_SIGNAL 30日乖离率信号(乖离率+短/长信号线)",
|
||||
)
|
||||
|
||||
# ── 仅需 high + low ────────────────────────────────────────────────────
|
||||
_reg(
|
||||
|
||||
Reference in New Issue
Block a user