关闭
您正在使用的浏览器版本较低,无法支持聚宽的某些特性。
为了获得更好的体验,推荐使用:
Google Chrome
或者
Mozilla Firefox
或者
IE9以上
。
返回主题列表
【历经考验管用的策略】多个行业和宽基ETF轮动
OTreeWEN!
发布于2025-10-08
回复 1
浏览 783
16
listen
分享到:
微信
微博
雪球
完善一个经过时间考验的策略:https://www.joinquant.com/post/32630 感谢之前所有作者orz **一、策略核心组件解析** **ETF池配置(动量来源)** 覆盖多元资产:策略预定义了16只ETF,涵盖宽基指数(如沪深300ETF)、行业主题(如新能源ETF)、海外资产(如纳指ETF)和货币基金(511880),实现了跨市场、跨资产的分散化轮动 流动性筛选:在 before_market_open()中,策略会检查ETF的上市时间(要求上市满一定天数),确保标的可交易且数据完整 **信号生成逻辑(动量因子+趋势确认)** 策略通过 get_signal()生成交易信号,核心步骤包括: 动量计算:批量计算每个ETF的多个技术指标 周期涨幅:过去特定周期(g.lag2天)的价格涨幅,衡量中期动量 均线差值:当前价格与均线的偏离度,确认趋势强度(类似R²因子过滤波动) 最新涨幅:短期价格变化,用于避免追高或杀跌。 筛选条件:仅选择同时满足以下条件的ETF 周期涨幅 ≥ 1%(避免弱势标的) 均线差值 ≥ 0.1%(价格高于均线,趋势向上) 短期涨幅在合理范围内(如今日涨幅 > -6.36%,防止过度回调) 排序与选择:按周期涨幅降序排序,选择排名第一的ETF作为主力持仓,并允许部分原有持仓(若表现良好)继续持有,以降低换手率 **风险管理机制(控回撤关键)** 仓位控制: 单只ETF持仓不超过总资产的40%(risk_management()),防止过度集中 总仓位≤95%,避免杠杆风险 止盈止损(get_signal_back()) 止盈:当持仓收益率 > g.emptyforthreeday(10.6%)、或连续涨幅过高时卖出 止损:当收益率 < -6.36%(即10.6%×0.6)、或单日跌幅过大时强制平仓。 市场情绪监控: 通过 EmotionMonitor()分析基准指数成交量是否连续低于均线,若情绪悲观则空仓 中证500指数大跌超1.1%时触发紧急止损(EmotionMonitorNewZZ500()) **交易执行与调仓规则** 调仓频率:每日下午14:37-14:39定时执行,避免高频交易(实盘中间隔调仓更常见 卖出逻辑(ETFtradeSell): 若信号为CLEAR(市场情绪差或无合格ETF),清仓所有持仓。 若信号为BUY,则卖出不在当前买入列表中的ETF(调仓)。 买入逻辑(ETFtradeBuy): 空仓期或年末保护期(12月12日后)不买入,转而持有货币基金(511880)避险。 资金平均分配至目标ETF列表(g.buy),仅当仓位偏差超10%时调整,减少不必要的交易成本 **二、策略优化亮点** 性能提升:使用 history()批量获取数据(非逐只查询),降低计算开销 动态基准:根据所选ETF自动切换基准指数(如选中证500ETF时基准设为000905),使回测更贴合实际 空仓机制:通过 g.emptyholdday控制空仓天数,避免连续亏损期频繁交易 日志监控:详细记录交易次数、持仓收益和风险指标,便于实盘跟踪 **三、潜在风险与改进建议** 依赖历史动量:在震荡市中可能因趋势反转而失效,可考虑引入均值回归因子互补 参数敏感性:阈值如 g.emptyforthreeday=10.6%需通过历史回测优化 实盘适配:当前为日内高频调仓(每日执行),实盘建议改为周度或月度调仓以降低交易成本 **不管策略在市场中表现如何,至少代码应该是优雅的,像诗歌一样,散发美感与生命力!——OTreeWEN!**
16
listen
分享到:
微信
微博
雪球
评论
cpsubuntu
加了滑点和避免真实数据后,结果非常差,这是为什么呢?滑点影响这么大吗 ``` set_option("avoid_future_data", True) # 设置交易成本 set_slippage(FixedSlippage(0.003)) ```
2025-11-30
您尚未登录,请
登录
或者
注册
聚宽发表回复。
取 消
提 交