花了3个月调出一套棕榈油期货1小时SAR趋势策略:3000根K线(约1.77年)回测净利+46,698元,年化26.4%,最大回撤只有6.9%。不是马丁、不是网格、没有扛单,纯趋势跟踪。这篇把整套系统拆开讲:信号怎么算、什么时候该空仓、三层止损怎么保命、踩过的坑。
一、先看真实回测数据(天勤真实行情,非合成K线)
所有回测用天勤真实1小时K线,生产脚本等价,非手工美化。
| 指标 | 无震荡过滤 | 加震荡过滤 | 提升 |
|------|-----------|-----------|------|
| 交易笔数 | 231 | 161 | 减少30% |
| 总盈亏 | +37,312元 | +46,698元 | +9,386元 |
| 年化收益 | 21.1% | 26.4% | +5.3% |
| 最大回撤 | 8.9% | 6.9% | -2.0% |
| 胜率 | 48% | 52% | +4% |
| 盈亏比PF | 1.32 | 1.69 | +0.37 |
| Sharpe | 0.50 | 0.76 | +52% |
结论一句话:过滤掉震荡市,交易少30%,钱多赚25%。趋势策略最大的敌人不是亏损单,是震荡市里反复挨打——过滤的价值不是"少交易",是"少送钱"。
三品种信号池(棕榈+豆油+菜油)全量回测:
棕榈油 161笔 +46,698元 年化26.4% 回撤6.9%
豆油 251笔 +22,212元 年化12.6% 回撤5.8%
菜油 233笔 +16,208元 年化9.2% 回撤15.0%
二、策略核心:1小时SAR + 三层保命设计
信号:抛物线SAR(AF 0.10 / 步长0.05 / 上限0.20)。价格在SAR上方=多头,下方=空头。参数是回测扫出来的最优值。
为什么用SAR不用均线?均线滞后,趋势翻转时均线还在旧方向;SAR是"价格一破位立刻转向",反转信号快半拍到一拍。同资金同数据对比,均线双均线年化只有SAR的一半不到。
时间过滤:只做5个时段。回测发现11:00和13:00是全天最低量时段(均量55k/62k,对比21:00夜盘154k),趋势在低量时段最容易假突破。跳过11:00/13:00后,盈亏从+53,780涨到+80,902(+50%)。这是整套系统里性价比最高的一行代码:
TRADE_HOURS = [9, 10, 14, 21, 22]
三层止损(核心中的核心):
基础ATR止损:无浮盈或浮亏时,3.0x ATR宽止损(给趋势空间)
动态收紧:浮盈>2x ATR时,止损缩至1.5x ATR(锁定利润)
跟踪止盈:浮盈>1x ATR时,1x ATR trailing,价格新高止损跟着上移
自动回补:被震出但价格仍在SAR同侧,原方向重新进场(防踏空)
关键认知:趋势策略止损必须"先宽后紧"。一开始就用1.5x ATR会死在启动前的正常回撤里;浮盈大了以后还挂3x ATR会坐电梯。动态切换,才是趋势策略不爆仓的真相。
三、踩坑实录(6个坑,3个是亏钱买来的)
坑1:震荡市三连亏-677元。豆油横盘,策略被反复打脸:空翻多-200、多翻空-200、空翻多-277。趋势策略在横盘里就是提款机。教训:趋势策略必须认怂,震荡市空仓不丢人。
坑2:隔夜跳空-962元(菜油)。夜盘跳空直接打穿ATR止损。教训:跳空是趋势策略的固有风险,靠"宽止损+只做1手+分散品种"扛,不是靠扛单。
坑3:过滤器不能跨品种照搬(回测少赚12,442)。把棕榈油的过滤参数直接套到豆油/菜油,全品种加过滤反而少赚12,442元——豆油震荡市里的SAR信号本来就有正收益,被误杀。教训:过滤器参数是品种相关的,换品种必须重新回测。
坑4:TqSim拒收主力连续合约(9笔假交易,收益0)。模拟盘下单KQ.m@DCE.p被拒:"不支持的合约类型"。教训:模拟盘下单必须用具体月份合约(如DCE.p2701),行情用连续合约,下单用underlying_symbol。
坑5:TqSim是进程内模拟盘,跨进程持仓全丢。TqSim状态只在进程内存,脚本每小时跑一次,每次都是"全新账户"。修复:决策改为本地记账(sim_position.json为权威持仓,天勤仅订阅行情),成交价用收盘价+手续费2.5元/手。
坑6:测试污染生产数据(-26,502假亏损推送)。测试移仓逻辑时伪造旧合约持仓,过期合约返回异常价7000,记入-26,502元假亏损并推送。教训:测试绝不动生产状态文件,先备份、测完恢复、发更正消息。
四、可执行:如果你也想搭一套(5步)
1. 数据:天勤tqsdk取真实1h K线,别用新浪合成数据——我对比过,合成数据回测结果会误导
2. 信号:实现SAR(参数0.10/0.05/0.20),趋势=收盘价在SAR哪侧
3. 过滤:时间过滤(只做9/10/14/21/22点)+ ADX(14)<15或效率比<10%跳过开仓
4. 风控:ATR 3x→1.5x动态 + 1x跟踪止盈 + 自动回补
5. 验证:先回测3000根,再模拟盘8万跑1个月,对比回测与实盘差异,别直接上真钱
发布前自检清单:
- 回测用的真实行情,不是合成数据
- 止损先宽后紧,不是固定倍数
- 有震荡过滤(ADX或效率比)
- 模拟盘跑满1个月且盈亏为正
- 只投亏得起的钱,单品种1手起步
这套系统从6月调到8月,中间试过SuperTrend(-48k)、布林均值回归(全亏)、缠论过滤(-38k),全部验证无效——换策略是伪需求,把SAR吃透才是正路。
数据来源:天勤真实行情回测(生产等价),模拟盘状态文件实时读取。策略有风险,过去收益不代表未来,本文不构成投资建议。 |