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

Pine Script中strategy.position_avg_price计算逻辑及平仓后变化原因问询

Pine Script 中 strategy.position_avg_price 的计算逻辑
  • 开仓阶段:这个变量本质是持仓的加权平均成本价,权重为每笔持仓的数量。如果两次开仓数量相同,结果会和算术平均一致;若数量不同,则按「(每笔价格×对应持仓量)之和 ÷ 总持仓量」计算。
  • 分批平仓后的变化原因:它始终反映的是当前剩余持仓的平均成本,而非初始总持仓的平均价。系统默认按「先进先出(FIFO)」规则平仓——优先平最早开仓的批次,平仓后剩余持仓的成本结构改变,平均价自然会发生变化。
  • 具体计算公式:
    strategy.position_avg_price = Σ(剩余持仓批次的价格 × 该批次剩余数量) ÷ 剩余总持仓数量
    

举个实际例子:

假设先开10手,价格10;再开10手,价格20。初始平均价为(10×10 + 20×10)/(10+10)=15。
若按FIFO平5手,平的是第一批的5手,剩余5手(价10)+10手(价20),此时平均价为(5×10 +10×20)/(5+10)≈16.67,strategy.position_avg_price就会更新为这个值。

如果通过strategy.close_rule将平仓规则设置为按比例平所有批次,平仓后平均价会保持不变——因为各批次持仓按相同比例减少,整体成本结构未发生变化。

内容的提问来源于stack exchange,提问作者S.Znobihin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:25:34