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

Pine Script中特定条件下停止/暂停策略的内置语法咨询

在Pine Script中停止/暂停策略运行的方法

首先明确说:Pine Script目前没有专门的内置语法可以直接停止或暂停策略的运行。你提到的手动设置条件的方式,其实是当前实现这类需求的标准做法,不过可以给你一些更规范的实现思路和示例。

常用实现方案:用全局标记变量锁住策略逻辑

你可以定义一个持久化的布尔变量,当触发停止条件时将其设为true,之后所有的订单、信号逻辑都依赖这个变量的反向值(也就是只有变量为false时才执行)。示例代码如下:

//@version=5
strategy("停止策略示例", overlay=true)

// 定义持久化的停止标记,初始为false
var bool stopStrategy = false

// 设定触发停止的条件:比如收盘价跌破20日均线
stopCondition = close < ta.sma(close, 20)

// 当条件触发时,设置停止标记为true
if (stopCondition)
    stopStrategy := true
    // 可选:触发停止时平仓所有头寸
    strategy.close_all()

// 只有当停止标记为false时,才执行策略的入场逻辑
if (not stopStrategy)
    // 这里写你的正常入场条件,比如金叉做多
    longCondition = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))
    if (longCondition)
        strategy.entry("Long", strategy.long)
    
    // 正常出场条件
    exitCondition = ta.crossunder(ta.sma(close, 5), ta.sma(close, 20))
    if (exitCondition)
        strategy.close("Long")

额外说明

  • 如果只是想限制后续不再开新仓,但允许现有头寸正常出场,可以只在入场逻辑前加not stopStrategy的判断,出场逻辑保持正常执行。
  • 还有一个相关的内置函数strategy.risk.allow_entry_in(),它可以控制策略在特定时间段内不允许入场,但这并不是完全停止策略运行,只是限制了入场时机,和你要的“停止策略”不是同一个概念。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:12:27