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

如何修改Pine Script代码实现百分比固定的TP与SL

解决Pine Script百分比止盈止损问题

要实现基于入场价的百分比止盈止损,无需保留原金额转点数的逻辑,直接通过入场价+百分比偏移计算目标价格,再用strategy.exit()的limit(止盈价)和stop(止损价)参数设置即可,具体修改如下:

修改后的完整代码

//@version=5
strategy("百分比止盈止损策略", overlay=true)

// 输入百分比参数
tp_pct = input.float(5.0, title="止盈百分比(%)", minval=0.1) / 100
sl_pct = input.float(5.0, title="止损百分比(%)", minval=0.1) / 100

// 模拟信号(可替换为你实际的longsignal/shortsignal逻辑)
longsignal = ta.crossover(ta.sma(close,5), ta.sma(close,20))
shortsignal = ta.crossunder(ta.sma(close,5), ta.sma(close,20))

// 开仓逻辑
if (longsignal)
    strategy.entry("多头", strategy.long)

if (shortsignal)
    strategy.entry("空头", strategy.short)

// 记录开仓入场价
var float entry_price = na
if (strategy.position_size != 0 and strategy.position_size != strategy.position_size[1])
    entry_price := strategy.position_avg_price

// 分方向计算止盈止损价格
long_tp = entry_price * (1 + tp_pct)
long_sl = entry_price * (1 - sl_pct)
short_tp = entry_price * (1 - tp_pct)
short_sl = entry_price * (1 + sl_pct)

// 出场设置
strategy.exit("出场", 
    limit = strategy.position_size > 0 ? long_tp : short_tp,
    stop = strategy.position_size > 0 ? long_sl : short_sl
)

关键修改说明

  1. 参数替换:将原固定金额输入改为百分比输入,除以100转换为小数便于计算
  2. 入场价记录:用var变量记录每次开仓的平均入场价,确保基准价格准确
  3. 分方向计算:根据当前仓位的多空属性,分别计算对应的止盈止损价格
  4. 参数切换:放弃profit/loss(点数偏移),改用limit/stop(直接指定价格),适配百分比场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:30:52