保持敬畏之心
交易是一场持久战

Pine Script(68):slippage设置 - 别让滑点影响你的回测

#Pine Script入门教学

在交易世界里理想与现实之间,隔着一道鸿沟,这道鸿沟的名字就是滑点。

你的策略回测再漂亮,如果不考虑滑点,那也只是理论模型,Pine策略里的slippage参数,就是把你从理想拉回现实的清醒剂。它专门用来模拟市价单和止损单在真实市场中,因各种因素(如波动、流动性)导致的成交价不利于你的情况。

我们通过strategy()函数来配置slippage,它的值以ticks (最小价格变动单位)来计算。比如,设置3个ticks的滑点:

strategy(title="我的策略", slippage=3)

slippage的默认值是0,也就是不考虑滑点。

一旦你设置了滑点,订单的成交价会变得更差:买入订单会以更高的价格成交;卖出订单会以更低的价格成交。

这个“更差”的成交价,会直接反映在你的回测报告上,通常会让你的盈利下降,亏损增加,但这才是更接近真实的结果。

滑点到底该设多少?这是个没有标准答案但至关重要的问题。一个合理的滑点值,主要取决于两个因素:一,像EURUSD这样的主流货币对,流动性极好,可能设置1-2个ticks就足够了。但如果你交易的是一些冷门货币对或高波动的加密货币,滑点可能需要设置到5、10甚至更高。二,一个缓慢的长线趋势策略,对滑点不那么敏感,但如果你的策略是高频剥头皮或是新闻突破的类型,这类策略天生就要承受巨大的滑点,你必须在回测中设置一个足够大的值,才能得到诚实的结果。

这个参数的设置非常简单,就不做盘中测试了,如果要设置5个点,只需要在straterg()函数加入slippage=5既可。

strategy(title="突破策略", overlay=true, slippage=5)

有个细节,slippage参数只改变成交价格,但不会改变成交在哪根K线上。这看起来很奇怪,不过试想一下,如果为了让成交价落在K线范围内而把成交推迟到下一根K线,那你的交易信号就延迟了,整个策略的逻辑就都乱了。所以TV选择了价格失真(来模拟滑点),而不是时间失真,这是正确的取舍。

总结

你也可以在策略设置窗口的“属性”标签页中手动修改滑点,手动设置会覆盖代码里的值。slippage是策略回测的过滤器,和手续费一样,是专业回测的必设项,合理设置滑点,能让你的回测结果更诚实、更具参考价值。不要被滑点恶化后的回测结果吓到,一个连基本交易成本都无法覆盖的策略,本就不该进入你的策略备选池。

赞(0)
未经允许不得转载:图道交易 » Pine Script(68):slippage设置 - 别让滑点影响你的回测
分享到

评论 抢沙发

登录

找回密码

注册