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

Pine Script技术问题:如何在交易策略中跳过首次开仓?

问题分析与解决方案

核心错误点

你的代码有两个关键问题导致逻辑失效:

  1. 变量赋值错误:delay +1只是计算了一个值,但没有把结果赋值给delay,Pine Script中必须用:=来更新变量的值。
  2. 变量重置问题:int delay = 0会在每根K线开始时重置为0,计数器永远无法累加,需要用var关键字声明变量,让它在脚本运行期间保持状态。

修正后的代码

//@version=5
strategy("CrossLong Counter Strategy", overlay=true)

var int delay = 0  // 用var保持变量状态,不会每根K线重置
crossLong = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))  // 示例crossLong条件,可替换为你的实际条件

if crossLong
    delay := delay + 1  // 正确赋值更新计数器

if crossLong and delay > 1
    strategy.entry("Long", strategy.long)  // 满足条件时开仓

是否需要循环?

不需要循环。Pine Script是逐K线运行的脚本语言,每根K线会自动依次执行代码逻辑,你只需要用带var的变量来跨K线保存计数器状态即可,无需手动编写循环遍历K线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:03:21