You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Pine语言4月更新及trailing stop loss回测异常的技术问询

Pine Script 4月更新与Trailing Stop Loss回测异常排查

核心变更点(针对4月版本)

  • 低价位币种精度规则优化:4月更新中调整了strategy.exit()等内置止损函数的小数精度处理逻辑,严格遵循交易所的最小报价单位(syminfo.mintick)计算trailing stop阈值。对于低价币种(如单价远低于1美元),之前宽松的取整逻辑会让止损阈值偏离实际可成交价格,更新后严格对齐规则,导致止损触发时机大幅改变,直接造成盈转亏的结果;而高价币种因单价基数大,精度调整的影响可忽略。
  • Trailing Stop触发时序修正:修复了回测中trailing stop在K线未闭合时提前计算止损价的bug,改为仅基于已闭合K线的价格更新止损阈值。低价币种的波动幅度占单价比例更高,时序修正带来的触发点变化对盈亏影响远大于高价币种。

验证与调试步骤

  • 对比内置函数与自定义逻辑:把策略中使用的内置trailing stop代码,替换为手动计算的逻辑,回测后对比结果:
    // 原内置逻辑示例
    strategy.exit("Exit Long", "Long", trail_points=3, trail_offset=5)
    
    // 自定义trailing stop逻辑(对照用)
    var float trail_stop_price = na
    if strategy.position_size > 0
        // 基于最新收盘价更新止损价(做多场景)
        trail_stop_price := math.max(trail_stop_price, close - 5 * syminfo.mintick)
        // 触发止损条件
        if close < trail_stop_price - 3 * syminfo.mintick
            strategy.close("Long")
    
    如果自定义逻辑的回测结果和你之前的预期一致,说明问题来自内置函数的逻辑变更。
  • 检查订单执行日志:在回测界面开启订单日志,对比更新前后低价币种的止损触发价格与K线实际价格的匹配情况,确认是否是精度或时序问题导致的触发偏差。

官方4月更新的关键相关条目

  • 修复strategy.exit()中trailing stop在低价格标的上的精度丢失问题,强制对齐交易所最小报价单位
  • 修正回测时trailing stop的触发时序,确保仅基于已完成K线的价格计算止损阈值

内容的提问来源于stack exchange,提问作者zhema

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:52:34