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
相关产品推荐
相关产品推荐

