棕榈油1小时SAR趋势策略全拆解:回测年化26.4%、最大回撤6.9%,三个月调出来的系统

| 发表于 2026-8-23 20:39:39 | 显示全部楼层 |复制链接
花了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吃透才是正路。
数据来源:天勤真实行情回测(生产等价),模拟盘状态文件实时读取。策略有风险,过去收益不代表未来,本文不构成投资建议。
举报

评论 使用道具

精彩评论3

bieguohuo
D
 楼主 | 发表于 2026-9-4 14:14:49 | 显示全部楼层
【v2 更新 · 2026-09-04】策略迭代三个月后的口径修正, 原帖 4 处需要更新:

一、止损逻辑修复(最大暗坑)
原版把 ATR 止损写成"亏损越深、止损越紧"(浮亏也触发收紧), 这是 8 月下旬连续亏损的根因。已改为: 仅浮盈 > 2x ATR 才收紧到 1.5x ATR, 浮亏时保持 3x 宽止损。修复后全期净利 +27,942 → +30,578。

二、震荡过滤参数: ADX 阈值 15 → 25
原帖写 ADX(14) < 15 跳过开仓。对 18/20/22/25/28 逐档扫描真实数据后, 25 才是最优档: 净利最高、最大回撤砍半(14,298 → 8,620), 也与社区标准一致。只拦新开仓, 不影响平仓。部署版 ADX_ENFORCE + 阈值 25 已生效。

三、回测窗口扩大(以长窗口口径为准)
原帖 3000 根(约1.77年)是调参窗口, 现扩到 4000 根天勤真实 1h K线(2024-04-23 → 2026-09-03, 约2.36年):
v2 全窗口: 123 笔 / 净利 +44,232 / 最大回撤 8,620(约 8 万本金的 10.8%) / 胜率 47%
原帖 +46,698 / 回撤 6.9% 属短窗口+早期参数, 请以 v2 长窗口口径为准。

四、时间过滤复核(诚实修正)
原帖"跳过 11:00/13:00 低量时段, 盈亏 +50%"在 v2 引擎 + 4000 根窗口下无法复现:
棕榈全时段 +44,232 vs 禁 11+13 后 +46,112(差异在噪声级);
且该过滤套到豆油/菜油反而明显减益(豆油 -9,906, 菜油 -7,890), 跨品种不可移植。
结论: 时间过滤不采纳。震荡市过滤由 ADX≥25 承担, 更稳、更少人工干预。

实盘化进度: 8 万模拟盘已按 v2 部署(另加"仅已收盘 K 线决策"对齐回测口径, 消除整点触发用形成中 K 线的时序偏差), 每周五用周报连载真实结果——回测是历史, 模拟盘才是未来。

(不构成投资建议, 期货有风险)
举报

点赞 评论 使用道具

bieguohuo
D
 楼主 | 发表于 2026-9-4 16:05:42 | 显示全部楼层
【SAR 模拟盘连载 #1 · 周报复核 2026-09-04】
① 本周平仓 -7978元(池-4132/SAR-1531/SMC-2315), 累计已实现 +1507元; 本周交易 24 笔(池子为主, SAR 2 笔/SMC 5 笔)
② 当前持仓: DCE.y2701 多 @9210
③ 门控拦截(9-03 上线, 首份完整统计): SAR 有信号未开仓 2 天, ADX 拦截 0, 震荡暂停 3; 池子 3 油脂 ADX 拦截 2, 有信号未开仓 1 天, 震荡暂停 5
④ 7hai7(09/01, 上游数据滞后 3 天): 情绪多 69%/空 8%(特别观点·只做多); 7hai7 价格分位 62%, 策略门控分位 93%
⑤ 观察: 本周净亏主因池子与 SMC 止损, SAR 仅 2 笔; ADX25 门控下 SAR 无拦截而池子拦截 2 次, 是否过严待继续观察
(不构成投资建议)
举报

点赞 评论 使用道具

bieguohuo
D
 楼主 | 发表于 2026-9-8 19:21:55 | 显示全部楼层
【SAR 模拟盘连载 #2 · 进展更新 2026-09-08】

距离 #1(09-04 周报复核)一周内的实际进展, 数据全部来自模拟盘状态文件:

一、行情状态: 磨人期, 门控全程拦截
棕榈油 1 小时线在 10200→10490 之间缓慢爬升, 但 ADX(14)只有 14~22, 属于典型弱趋势/无趋势区。09-08 午后 SAR 方向翻空(现价 10405), 但 ADX 门控(≥25 才允许开新仓)全天把新仓全部拦下: SAR 被拦 19 次、池子被拦 9 次, 两只策略零新开。

二、实际动作: 池子按纪律暂停
P/Y/OI 三腿池子近期反复被 ATR 止损扫掉(09-02 至 09-08 单笔 -232 到 -1822), 权益从峰值 90,905 回撤 12,385、并跌破 8 万本金线(当前 78,520)。按"破线即停"的纪律, 已暂停池子策略(服务器任务禁用), 只保留 1h SAR 主腿继续运行。

三、SAR 主腿状态
权益 83,002(+3,002), 自 09-01 那笔 -1,531 之后再无成交——不是策略没跑, 而是 ADX 连续低于 25 自动禁开, 系统处于"防守空仓"。

四、一点复盘
门控这类风控的价值往往体现在"事后看": 弱趋势期里的漏网开仓正是此前连续亏损的来源, 而现在的自动空仓等于把纪律提前写进了代码。下一阶段等 ADX 回到 25 以上、行情重新走出趋势再恢复池子, SAR 会自行跟进。

以上为模拟盘记录, 不构成投资建议。
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册