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

如何根据上一笔平仓交易盈亏调整策略的下单量

问题修复:根据上一笔平仓盈亏调整下单量

你的代码失效原因及修正方案如下:

核心问题

  1. 无平仓交易时的索引错误:当没有任何已平仓交易时,strategy.closedtrades - 1等于-1,此时strategy.closedtrades.profit(-1)返回0,直接触发else分支设下单量为1,导致后续盈亏判断被初始状态干扰。
  2. var关键字误用:var声明的变量仅初始化一次,后续不会自动更新,但你需要每次下单前重新判断盈亏,不需要用var锁定变量。

修正代码

// 存储上一笔平仓盈亏,仅初始化一次
var float last_closed_profit = 0.0

// 有已平仓交易时更新盈亏记录
if strategy.closedtrades > 0
    last_closed_profit = strategy.closedtrades.profit(strategy.closedtrades - 1)

// 根据盈亏设置下单量:亏损设2,盈利/无平仓设1
trade_qty = last_closed_profit < 0 ? 2 : 1

// 示例入场下单(替换为你的实际入场条件)
if (ta.crossover(ta.sma(close,5), ta.sma(close,20)))
    strategy.entry("long", strategy.long, qty=trade_qty)

关键调整点

  • 增加strategy.closedtrades > 0判断,避免无平仓时的索引越界错误,确保只有存在有效平仓记录时才更新盈亏值。
  • 用三元运算符简化下单量判断逻辑,代码更简洁清晰。
  • 将盈亏记录和下单逻辑分离,确保每次触发入场时都使用最新的盈亏计算下单量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:16:00