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

如何为现有PineScript策略添加开仓30分钟后自动平仓条件

PineScript 30分钟定时平仓功能实现方案

修改后完整代码

strategy("S1", overlay=true)

source = close
length = input(20, minval=1)
mult = input(1.0, minval=0.001, maxval=50)

basis = sma(source, length)

sl_inp = input(100, title='Stop Loss in Ticks')
tp_inp = input(200, title='Take Profit in Ticks')
// 新增:存储多单开仓时间戳
var int buyEntryTime = na

// 定义开仓条件
buyCondition = crossover(close, basis)
if (buyCondition)
    strategy.entry("buy", true, 1)
    buyEntryTime := time // 开仓时同步记录时间

// 原有止损、止盈平仓逻辑保留
strategy.exit("buy", loss=sl_inp, profit=tp_inp)

// 新增:持仓满30分钟自动平仓逻辑
if (strategy.position_size > 0)
    holdMinutes = (time - buyEntryTime) / 60000 // 时间差换算为分钟
    if (holdMinutes >= 30)
        strategy.close("buy")
        buyEntryTime := na // 平仓后重置开仓时间标记

改动说明

  • 新增var int buyEntryTime = na变量存储多单开仓时间戳,var关键字保证变量不会在每根K线刷新时被重复初始化
  • 开仓触发时同步记录当前K线时间戳,用于后续计算持仓时长
  • 新增定时平仓判断:持有多单时计算当前持仓时长,满30分钟就主动平仓,平仓后重置开仓时间变量
  • 原有止损、止盈逻辑完全保留,三类平仓条件为触发即执行的并行关系,哪个先满足就先执行平仓

注意事项

上述代码默认适配分钟级K线运行的策略,如果你的策略运行在30分钟及以上周期的K线,可将代码中的time替换为time_close获取K线收盘时间做判断,避免时间计算误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:18:05