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

Pine Script策略报错“进场订单数量必须为正”,初始资金1000出现负值求助

报错根因

你遇到的Quantity for entry order must be positive报错,核心原因是传给strategy.entry接口的qty参数出现了负值,结合代码逻辑具体触发原因如下:

  • 开仓数量size由strategy.equity * RiskPercent计算得到,RiskPercent是固定正值,只有当策略权益strategy.equity变为负数时,才会算出负的size值
  • 代码中设置的初始资金仅为100,和你描述的1000不符,叠加2个点的滑点、0.07%的佣金、支持2倍加仓的设置,很容易在连续亏损后把权益亏成负数
  • 当前贴出的代码缺失大量变量定义(多周期KD指标、回测时间参数、止盈参数等),未定义的变量也可能导致计算逻辑异常

修复方案

按以下顺序修改代码即可解决问题:

  • 给开仓数量增加非负校验,将原代码中size = MaxPositionRisk替换为:
size = math.max(MaxPositionRisk, syminfo.mintick * close)

既保证开仓数量为正,也避免开仓金额低于标的最小成交要求

  • 修正初始资金配置,将strategy声明中的initial_capital参数改为你实际要设置的1000
  • 调整风险参数,根据你交易的标的实际情况调小slippage的数值,默认2的滑点对于低价标的会大幅放大亏损
  • 补全代码中缺失的变量定义,包括多周期KD指标计算逻辑、回测时间输入参数、止盈比例和点位参数,避免未定义变量引发计算错误
  • 在开仓逻辑中增加权益校验,修改开仓触发条件:
strategy.entry("long",long=true,qty=size, comment="Insert Enter Long Comment",when=entry_long and strategy.equity > 0)

避免权益为负时提交无效订单

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:45:04