108 lines
4.6 KiB
Markdown
108 lines
4.6 KiB
Markdown
#交易 #量化交易 #策略研究 #freqtrade #DeepSeek
|
||
|
||
以下是针对您两个问题的系统化解答,结合技术指标设计思路与工具库实现方案:
|
||
|
||
---
|
||
|
||
### 一、自建指标设计思路与案例扩展
|
||
|
||
#### 1. **基础K线因子扩展思路**
|
||
|
||
|**因子类别**|**计算逻辑**|**市场意义**|**实现示例**|
|
||
|---|---|---|---|
|
||
|**单K形态因子**|`实体比例 = abs(close - open) / (high - low)`|反映多空力量对比|实体>60%视为强趋势信号|
|
||
|**相邻K关系因子**|`价格动能 = close_t / close_{t-1} - 1`|短期价格加速度|连续3根K线动能>1%判定为动量累积|
|
||
|**多K协同因子**|`趋势一致性 = (close_t > open_t) & (close_t > close_{t-1}) & (close_{t-1} > close_{t-2})`|趋势延续强度|满足条件时触发趋势跟踪策略|
|
||
|**波动结构因子**|`影线背离 = (high - close) > 2*(close - open) 且 (low - open) < 0.5*(close - open)`|上攻受阻后的反转信号|出现在阻力位时增强做空概率|
|
||
|
||
#### 2. **高级趋势模型设计**
|
||
|
||
- **分形市场理论应用**
|
||
用**Hurst指数**量化趋势持续性:
|
||
|
||
```python
|
||
# 计算20周期Hurst指数(需安装hurst库)
|
||
from hurst import compute_Hc
|
||
closes = dataframe['close'].tail(200).values
|
||
H, c, data = compute_Hc(closes, kind='price', simplified=True)
|
||
dataframe['hurst'] = H # >0.5趋势延续,<0.5均值回归
|
||
```
|
||
|
||
- **流动性缺口捕捉**
|
||
结合成交量与价格跳空:
|
||
|
||
```python
|
||
# 跳空缺口+放量突破
|
||
gap_up = (dataframe['open'] > dataframe['high'].shift(1)) & (dataframe['volume'] > 1.5 * dataframe['volume'].rolling(20).mean())
|
||
dataframe['gap_breakout'] = gap_up.astype(int)
|
||
```
|
||
|
||
|
||
---
|
||
|
||
### 二、自动化形态识别工具方案
|
||
|
||
#### 1. **TA-Lib的形态识别能力**
|
||
|
||
- **支持形态**:内置**61种蜡烛图形态**(CDL系列函数),如:
|
||
|
||
- `CDLENGULFING`(吞没形态)
|
||
- `CDLHAMMER`(锤头线)
|
||
- `CDLDOJISTAR`(十字星)
|
||
|
||
```python
|
||
dataframe['engulfing'] = ta.CDLENGULFING(dataframe['open'], dataframe['high'], dataframe['low'], dataframe['close'])
|
||
```
|
||
|
||
- **局限性**:
|
||
|
||
- 仅支持**1-3根K线**的简单形态[7,8](@ref)
|
||
- **无法识别**双顶/头肩顶等复杂形态
|
||
|
||
#### 2. **高级形态识别替代方案**
|
||
|
||
|**工具库**|特点|适用场景|集成方式|
|
||
|---|---|---|---|
|
||
|**FreqAI (Freqtrade扩展)**|基于LSTM/Transformer的形态自主学习,动态识别支撑阻力[4](@ref)|自适应市场变化的复杂形态识别|Docker集成至Freqtrade[3](@ref)|
|
||
|**PyTrend**|专攻趋势线拟合(线性回归+通道突破)|自动绘制趋势通道/突破点标记|`pip install pytrend`|
|
||
|**StockStats**|扩展TA-Lib的形态库,支持三角形/旗形识别|经典技术形态的规则化识别|`pip install stockstats`|
|
||
|
||
#### 3. **支撑阻力自动化实现**
|
||
|
||
```
|
||
# 使用PyTrend自动识别支撑阻力
|
||
from pytrend import support_resistance
|
||
# 识别最近100根K线的关键水平
|
||
levels = support_resistance(dataframe['close'].tail(100), method='zigzag')
|
||
dataframe['support'] = levels['support'].iloc[-1] # 最新支撑位
|
||
dataframe['resistance'] = levels['resistance'].iloc[-1] # 最新阻力位
|
||
```
|
||
|
||
---
|
||
|
||
### 三、推荐技术栈组合方案
|
||
|
||
1. **基础层**:TA-Lib + Pandas
|
||
快速计算指标与单K形态[7,8](@ref)
|
||
2. **增强层**:PyTrend + StockStats
|
||
处理趋势线/通道/经典形态[6](@ref)
|
||
3. **智能层**:Freqtrade + FreqAI
|
||
机器学习驱动的复杂形态识别与参数优化[4,5](@ref)
|
||
|
||
> **避坑指南**:双顶形态的量化需结合**成交量分布**(如阻力位放量失败),纯价格形态在加密货币市场失效概率较高,建议用**FreqAI动态校准**识别阈值[4](@ref)。
|
||
|
||
---
|
||
|
||
### 四、创新性研究建议
|
||
|
||
- **缠论量化实践**:将分型/笔/线段规则转化为状态机:
|
||
|
||
```
|
||
# 分型识别(顶分型:high_t > high_{t±1})
|
||
top_fractal = (dataframe['high'] > dataframe['high'].shift(1)) & (dataframe['high'] > dataframe['high'].shift(-1))
|
||
dataframe['fractal_signal'] = top_fractal.astype(int) - bottom_fractal.astype(int)
|
||
```
|
||
|
||
- **订单流分析**:通过Level2数据计算**Delta累积**,识别隐形支撑阻力[4](@ref)。
|
||
|
||
> 工具的本质是**扩展认知边界而非替代思考**。建议先用PyTrend验证形态策略盈亏比,再通过Freqtrade社区策略库(如freqtrade-strs)对比优化参数[5](@ref)。 |