编写仓位大小计算器时Plot函数在if语句中报错的问题排查
解决Pine Script仓位计算器的报错问题
报错原因
Pine Script v5的执行规则不允许在if/else代码块内部调用plot()这类绘图函数,绘图函数必须处于全局作用域,不能被条件分支逻辑包裹,这就是触发Mismatched input 'plot' expecting 'end of line without line continuation'错误的原因。
修正方案
直接使用math.min()函数获取两个仓位值的较小值,然后统一调用plot()即可,无需用条件分支判断。修正后的代码如下:
//@version=5 indicator("仓位大小计算器") max_risk = 50 risk_per_share = 0.2 capital = 3000 price = 6 size_based_risk = max_risk / risk_per_share size_based_capital = capital / price // 直接取两个值的较小值并绘图 plot(math.min(size_based_risk, size_based_capital), title="建议仓位")
额外优化建议
如果后续要动态获取K线数据,可替换成Pine Script内置变量:
- 最高价用
high - 最低价用
low - 收盘价用
close
修改后的参数赋值示例:
risk_per_share = high - low price = close
内容的提问来源于stack exchange,提问作者aiman
相关产品推荐
相关产品推荐

