核心思路是结合趋势强度和价格波动率,当20日均线上穿60日均线且波动率放大时做多,下穿时做空。这是部分关键代码:
```python
# 趋势强度计算
def trend_strength(df):
df['ma20'] = df['close'].rolling(20).mean()
df['ma60'] = df['close'].rolling(60).mean()
df['trend'] = np.where(df['ma20']>df['ma60'], 1, -1)
return df
# 波动率过滤
def volatility_filter(df):
df['atr'] = talib.ATR(df['high'], df['low'], df['close'], timeperiod=14)
df['volatility'] = df['atr']/df['close'].rolling(20).mean()
return df
# 信号生成
def generate_signal(row):
if row['trend']==1 and row['volatility']>0.02:
return 'buy'
elif row['trend']==-1 and row['volatility']>0.02:
return 'sell'
else:
return 'hold'
```
这套指标在文华财经WH8和MultiCharts上都能稳定运行,我测试过螺纹钢、焦炭等品种,年化收益能跑赢手动交易。建议配合金字塔决策交易系统的回测功能使用,可以快速验证参数。
现在,我会针对新手小白定期免费分享低成本落地方案,如果你对量化交易感兴趣,或者想通过免费低门槛的方法实现全自动量化交易,可以点赞扫码加我微信,我这边可以教你免费实现量化,手把手3天内实现量化交易。也可以微信搜索关注"量化刘百万"公众号,里面有专业量化入门资料和优质策略,免费好用。
发布于2025-10-15 11:50 北京


分享
注册
1分钟入驻>
+微信
秒答
18342365994
搜索更多类似问题 >
电话咨询


