Pinescript - Почему стратегия Strategy.position_avg_price не корректно корректируется при запуске policy.exit ()? - PullRequest
0 голосов
/ 12 апреля 2020

Короче говоря, когда в длинной позиции, Strategy.exit () уменьшает цену позиции, как если бы произошла другая покупка, а не продажа. Ожидается, что когда вы продаете ниже своей позиции, количество, которое вы имеете, уменьшается, а цена позиции увеличивается.

Код:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mgibson91

//@version=3
strategy("My Strategy", overlay=true, pyramiding=100)

longCondition = crossover(close, sma(close, 20))
if (longCondition)
    strategy.entry("long", strategy.long)
    strategy.exit("long", qty=1, profit=2000)

plot(strategy.position_avg_price)

Симптом: enter image description here

Обоснование:

  • Вы вводите длинную позицию в 10 монет на 10 $ (Портфолио = 100 $, position_avg_price - 10 долл. США *
  • Цена снижается до 5 долл. США (портфель - 50 долл. США, но position_avg_price - все еще 10 долл. США)
  • Вы продаете 5 из 10 монет, но все еще теряете 50 долл. США
  • Обмен позволяет это, но эффективно обновляет вашу позицию до 5 монет, купленных по 20 долларов (position_avg_price должно быть 20 долларов), так как 10coin при 10 $ = 5coin при 20 $.
  • Однако, как я вижу, position_avg_price понизит обновление до 7.5 как если покупка, а не продажа только что произошла

Любой обходной путь был бы очень ценным!

...