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

如何制定风险回报比(R/R)交易策略?附1.5盈亏比实现代码

R/R 1.5盈亏比交易策略Pine Script修复方案

原代码核心问题

  • strategy.exit参数配置错误:原代码误将止损位赋值给止盈参数limit,同时混淆了退出订单和入场订单的ID绑定逻辑,导致止盈止损完全不生效
  • 摆动低点取值时机错误:原代码在开仓后才抓取摆动低点,无法锁定开仓前的固定低点,会出现止损位随行情漂移的问题
  • 开仓条件逻辑错误:fast and slow <=0的写法不符合语法规则,实际运行时的判断逻辑和预期的「MACD快慢线均在0轴下方」不一致
  • 未做边界判断:没有校验摆动低点的有效性,无有效低点时会触发逻辑报错

修复后完整代码

//@version=4
strategy("1.5盈亏比MACD策略","T", true, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=100000)

// 参数配置
fastlen = input(12, "快线周期", group="MACD")
slowlen = input(26, "慢线周期", group="MACD")
siglen  = input(9, "信号线周期", group="MACD")
mcd_src = input(close, "计算源", group="MACD")
_bar    = input(1, "摆动低点确认K线数", minval=1, group="止损配置")
rr_ratio = input(1.5, "目标盈亏比", minval=0.1, group="止盈配置")

// 指标计算
[fast, slow, hist] = macd(mcd_src, fastlen, slowlen, siglen)
pivot_low_stop  = pivotlow(_bar, _bar)

// 全局变量存储开仓点位
var float entry_lvl = na
var float long_sl = na
var float profit_tp = na

// 开仓条件:K线确认、MACD快慢线均在0轴下、快慢线金叉、存在有效摆动低点
long_condition = barstate.isconfirmed and fast <= 0 and slow <= 0 and crossover(fast, slow) and not na(pivot_low_stop)

if long_condition
    // 开仓瞬间锁定止损、止盈位,避免后续数值漂移
    entry_lvl := close
    long_sl := pivot_low_stop
    profit_tp := entry_lvl + (entry_lvl - long_sl) * rr_ratio
    strategy.entry("Long", strategy.long)

// 绑定止盈止损规则
strategy.exit("Exit Long", "Long", stop=long_sl, limit=profit_tp)

// 点位绘图
plot(entry_lvl,"入场位", color.yellow, 2, plot.style_linebr)
plot(long_sl,"止损位", color.red, 2, plot.style_linebr )
plot(profit_tp, "止盈位", color.green, 2, plot.style_linebr) 

调整说明

  • 开仓时一次性锁定入场价、止损摆动低点、止盈位,所有点位固定不会随后续行情变化
  • 修正了止盈止损参数配置,stop参数对应止损位,limit参数对应止盈位,同时明确绑定入场订单ID
  • 新增盈亏比可调参数,默认值为1.5,可根据需求自行修改
  • 增加摆动低点有效性校验,避免无效信号触发开仓

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:15:01