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

Pine Script V5中strategy.position_size使用报错求助

Pine Script V5 仓位设置错误解决办法

错误原因

strategy.position_size 是Pine Script V5的只读内置变量,作用是获取当前持仓的数量,既不能作为函数调用,也不能直接赋值修改。你之前的几种写法都误解了它的用途,所以会报错。

正确设置仓位的方法

以下是三种常用的正确实现方式:

  • 直接在下单函数中指定仓位
    用strategy.entry()或strategy.order()下单时,通过qty参数传入自定义仓位大小:

    //@version=5
    strategy("自定义仓位策略", overlay=true)
    positionSize = 100 // 自定义固定仓位
    
    // 买入信号触发时下单
    if (close > open)
        strategy.entry("Buy", strategy.long, qty=positionSize)
    
  • 全局设置默认仓位
    在策略初始化时,通过default_qty_type和default_qty_value参数设置全局默认仓位,后续下单可不指定qty:

    //@version=5
    // 按金额设置默认仓位(这里是1000现金)
    strategy("默认仓位策略", overlay=true, default_qty_type=strategy.cash, default_qty_value=1000)
    
    if (close > open)
        strategy.entry("Buy", strategy.long) // 自动使用默认仓位
    
  • 动态计算仓位
    根据账户权益、当前价格等条件动态计算仓位,再传入qty参数:

    //@version=5
    strategy("动态仓位策略", overlay=true)
    // 用账户权益的10%开仓
    positionSize = strategy.equity * 0.1 / close
    
    if (close > open)
        strategy.entry("Buy", strategy.long, qty=positionSize)
    

补充说明

如果需要查看当前持仓大小,才会用到strategy.position_size,比如:

// 打印当前持仓数量
if (barstate.islast)
    label.new(bar_index, close, str.tostring(strategy.position_size))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:35:05