Скрипт Pine - Частичное закрытие ордера по рынку

Я хотел бы частично закрыть позицию по рыночному ордеру. Пожалуйста, обратитесь к моему коду ниже.

...
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 закроет всю позицию. Это меня смущает...


person takei    schedule 18.03.2020    source источник
comment
Не могли бы вы сделать минимальный компилируемый пример кода, демонстрирующий проблему?   -  person Andrey D    schedule 18.03.2020


Ответы (1)


Извините, я решил проблему с помощью метода Strategy.order. Спасибо.

person takei    schedule 20.03.2020
comment
Привет, такеи, @Adam не имеет достаточно представителей, чтобы прокомментировать, но спросил: можете ли вы поделиться подробностями своего решения? Я также борюсь с частичным закрытием сделок по сосне. - person Mikel Rychliski; 17.04.2020
comment
Привет, такеи, было бы здорово, если бы вы могли поделиться чем-нибудь о решении. Спасибо! - person Francesco Schnea; 28.05.2020