Я хотел бы частично закрыть позицию по рыночному ордеру. Пожалуйста, обратитесь к моему коду ниже.
...
qty = strategy.equity/close
if longcondition
entry:=1
strategy.entry("long", strategy.long, qty)
if shortcondition
entry:=1
strategy.entry("short", strategy.short, qty)
if strategy.position_size > 0 and entry == 0 and qty != strategy.position_size
if qty - strategy.position_size < 0
strategy.close("long", qty=strategy.position_size - qty)
else
strategy.entry("long", strategy.long, qty - strategy.position_size)
if strategy.position_size < 0 and entry == 0 and qty != -strategy.position_size + qty
if qty < abs(strategy.position_size)
strategy.close("short", qty=abs(strategy.position_size + qty))
else
strategy.entry("short", strategy.short, strategy.position_size + qty)
Код является только первым порядком и порядком настройки. Что я хочу сделать, так это скорректировать позицию в зависимости от капитала и цены закрытия.
Метод Strategy.close закрывает все позиции, несмотря на то, что я установил qty=. В длинном случае это не проблема. Только в случае шорта метод Strategy.close закроет всю позицию. Это меня смущает...