Как частично закрыть сделку в pinescript (tradingview)? - PullRequest
1 голос
/ 18 апреля 2020

Я изо всех сил пытаюсь выяснить, как частично закрыть открытые сделки в pinescript в режиме просмотра, основываясь на различных условиях. Я пытаюсь частично закрыть сделки размером pos_size2, используя strategy.order при условии следующего: -продать 50% при условии long_stop2 -продать оставшиеся 50% при условии long_stop1

Любая помощь будет оценили.

// LONG
//my_margin = strategy.equity * margin_pct
//pos_size = (my_margin * leverage) / price
//pos_size2 = (my_margin * leverage2) / price
//symbol = security(syminfo.tickerid, resolution, close)
//percent = input(defval=50.0, title='Percentage of position to take profit.')
//size_trim = (pos_size2 / 2)

//Open Order
entry = 0

if trendhi_ema > trendlo_ema
    entry:=2
    strategy.entry(id='Long Signal', long=true, qty=pos_size2, when= window() and long_signal, comment = "2.5x Long")
else
    entry:=1
    strategy.entry(id='Long Signal', long=true, qty=pos_size, when= window() and long_signal, comment = "1.5x Long")

//Close Order

if trendhi_ema > trendlo_ema
    if entry == 2
        strategy.order(id='Long Signal', long=false, qty=size_trim, when= window() and long_stop2 and strategy.position_size > 0, comment = "close first 50% long")
        strategy.order(id='Long Signal', long=false, qty=size_trim, when= window() and long_stop1 and strategy.position_size > 0, comment = "close second 50% long")
    if entry == 1
        strategy.order(id='Long Signal', long=false, qty=pos_size, when= window() and long_stop2 and strategy.position_size > 0, comment = "close long")
else
    strategy.order(id='Long Signal', long=false, qty=pos_size, when= window() and long_stop2 and strategy.position_size > 0, comment = "close")

1 Ответ

2 голосов
/ 20 апреля 2020

Параметр id важен. Используйте тот же id, когда вы хотите изменить параметры команды strategy.***. Используйте разные id, если хотите указать разные команды.

//Close Order

if trendhi_ema > trendlo_ema
    if entry == 2
        strategy.order(id='Long Signal 1', long=false, qty=size_trim, when= window() and long_stop2 and strategy.position_size > 0, comment = "close first 50% long")
        strategy.order(id='Long Signal 2', long=false, qty=size_trim, when= window() and long_stop1 and strategy.position_size > 0, comment = "close second 50% long")
    if entry == 1
        strategy.order(id='Long Signal 3', long=false, qty=pos_size, when= window() and long_stop2 and strategy.position_size > 0, comment = "close long")
else
    strategy.order(id='Long Signal 4', long=false, qty=pos_size, when= window() and long_stop2 and strategy.position_size > 0, comment = "close")
...