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

TradingView Pinescript v5回测:如何用复选框关闭当前K线所有未平仓订单?

解决方案:Pine Script v5 复选框触发平所有未平仓头寸

核心实现思路

通过input.bool创建可手动勾选的复选框,结合strategy.close_all()实现一键平仓,同时用变量控制仅触发一次,避免同一K线内重复操作。

完整代码示例

//@version=5
strategy("带一键平仓策略", overlay=true, 
         default_qty_type=strategy.cash, 
         default_qty_value=10000, 
         initial_capital=100000, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1)

// 1. 创建触发平仓的复选框
close_all_trades = input.bool(false, title="触发平所有未平仓交易", group="平仓控制")

// 2. 用变量标记是否已执行过平仓,防止同一K线重复触发
var bool has_executed_close = false

// 3. 平仓逻辑:勾选复选框且未执行过时,平所有头寸
if close_all_trades and not has_executed_close
    strategy.close_all(comment="一键平仓")
    has_executed_close := true

// 4. 取消复选框时重置标记,允许下次再次触发
if not close_all_trades
    has_executed_close := false

// 示例开仓逻辑(可替换为你的策略)
long_condition = ta.crossover(ta.sma(close, 50), ta.sma(close, 200))
short_condition = ta.crossunder(ta.sma(close, 50), ta.sma(close, 200))

if (long_condition)
    strategy.entry("Long", strategy.long)

if (short_condition)
    strategy.entry("Short", strategy.short)

关键细节说明

  • 复选框交互:回测或实盘时,勾选「触发平所有未平仓交易」复选框,当前K线会立即执行平仓操作
  • 防重复触发:var关键字定义的has_executed_close变量会在脚本初始化时仅赋值一次,确保同一K线内不会重复调用平仓指令
  • 状态重置:取消复选框勾选后,标记变量会重置,下次勾选可再次触发平仓

额外注意事项

  • 回测模式下,需确保回测进度运行到目标K线后再勾选复选框,或在回测前设置好复选框状态
  • 若需要结合时间、价格等条件触发平仓,可在if判断中添加额外逻辑(比如ta.time == timestamp("2024-01-01 15:00"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:14:53