波动率策略的核心思路其实很简单:市场波动大时加大仓位,波动小时减少仓位或观望。我常用的一个经典方法是布林带结合ATR指标,用Python代码实现大概是这样:
```python
# 布林带+ATR波动率策略
def volatility_strategy(data):
# 计算布林带
data['middle_band'] = data['close'].rolling(20).mean()
data['upper_band'] = data['middle_band'] + 2*data['close'].rolling(20).std()
data['lower_band'] = data['middle_band'] - 2*data['close'].rolling(20).std()
# 计算ATR真实波动幅度
data['tr'] = np.maximum(data['high']-data['low'],
np.maximum(abs(data['high']-data['close'].shift(1)),
abs(data['low']-data['close'].shift(1))))
data['atr'] = data['tr'].rolling(14).mean()
# 生成交易信号
data['signal'] = 0
data.loc[(data['close'] > data['upper_band']) & (data['atr'] > data['atr'].mean()), 'signal'] = 1
data.loc[(data['close'] < data['lower_band']) & (data['atr'] > data['atr'].mean()), 'signal'] = -1
return data
```
这个策略在文华财经WH8上也能用简语言实现:
```
//@简语言
MID:MA(CLOSE,20);
UPPER:MID+2*STD(CLOSE,20);
LOWER:MID-2*STD(CLOSE,20);
TR:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TR,14);
BUY:=C>UPPER AND ATR>REF(ATR,1);
SELL:=C
```
我实盘测试过,这种波动率策略在铁矿石、原油这些高波动品种上效果特别好。关键是要根据品种特性调整参数,比如农产品参数要放大些。
现在,我会针对新手小白定期免费分享低成本落地方案,如果你对量化交易感兴趣,或者想通过免费低门槛的方法实现全自动量化交易,可以点赞扫码加我微信,我这边可以教你免费实现量化,手把手3天内实现量化交易。也可以微信搜索关注"量化刘百万"公众号,里面有专业量化入门资料和优质策略分享,免费好用。
发布于2025-10-24 11:12 北京


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


