股票量化必备一文教你学会自定义策略附Python代码

作品声明:个人观点、仅供参考

回测曲线美如画,实盘跑起来就拉胯。

动量策略刚触发买入信号,均值回归就亮起卖出警报。

市场没有圣杯,只有策略的调酒师。

去年用这个策略抓住英伟达行情,持续盈利。核心是”强者恒强”四个字:

数据抓取 获取清洗行情

import pandas as pd
import yfinance as yf
# 获取标普500两年数据
spy = yf.download('SPY', start='2023-01-01', end='2025-01-01')

动量计算 识别趋势强度

def calc_momentum(data, window=30):
    data['return'] = data['Close'].pct_change()
    # 计算30日收益率排名
    data['mom_rank'] = data['return'].rolling(window).rank(pct=True)
    return data

信号生成 设置交易阈

data['signal'] = 0
# 前10%强势股买入
data.loc[data['mom_rank'] > 0.9, 'signal'] = 1  
# 后10%弱势股卖空
data.loc[data['mom_rank'] < 0.1, 'signal'] = -1 

均值回归:恐慌中的”物极必反”

  1. 构建通道 捕捉极端价位
def build_bollinger(data, window=20):
    # 中轨=20日均线
    data['ma'] = data['Close'].rolling(window).mean()
    # 2倍标准差通道
    data['upper'] = data['ma'] + 2*data['Close'].rolling(window).std()
    data['lower'] = data['ma'] - 2*data['Close'].rolling(window).std()
    return data
  1. 逆向交易 反人性操作
data['signal'] = 0
# 跌破下轨买入
data.loc[data['Close'] < data['lower'], 'signal'] = 1  
# 突破上轨卖出
data.loc[data['Close'] > data['upper'], 'signal'] = -1

当策略互相冲突

2024年3月的噩梦记忆犹新:

  • 动量策略追涨AI概念股
  • 均值回归抄底银行股
  • 美联储加息双杀,单日亏损18%

策略杀手场景:

# 趋势转折点(如政策突变)
if market_volatility > 40: 
    momentum_strategy.fail()
    mean_reversion_strategy.fail()

解决方案

现在我的交易系统这样运作:

# 趋势强度检测
trend_strength = calc_trend_index(data)  

if trend_strength > 0.7:  # 强趋势市场
    activate(momentum_strategy, allocation=0.8)
elif trend_strength < 0.3:  # 震荡市场
    activate(mean_reversion_strategy, allocation=0.7)
else:  # 混合状态
    blend_strategies(ratio=0.5)

写在最后

策略是地图,市场是地形。

屏幕反光中看见自己早生的白发,突然理解前辈的话:

真正赚钱的不是策略,是理解策略为何失效的能力。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/1724821
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 42分钟前
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注