Как в Pine скрипт получить доступ к бару при котором открыта сделка

Рейтинг: 0Ответов: 1Опубликовано: 23.04.2023

Немного опыта в Pine. До этого в другой среде занимался. Суть вопроса: есть индикатор фибоначчи fib, и ему нужно получить доступ к бару этой fib[entry_bar], при котором была открыта сделка, чтобы сравнить с текущим параметром этой функции.

Гуглил документацию и у чатжпт спрашивал - strategy.opentrades.entry_bar опция не работает в данной ситуации или что-то делаю не так.

if strategy.position_size > 0
    entry_bar = strategy.opentrades.entry_bar(strategy.position_size > 0)

   if fib*2>fib[entry_bar]
strategy.close_all("Volatility Close")

Ответы

▲ 0

В pine script нет функции strategy.opentrades.entry_bar, а есть функция strategy.opentrades.entry_bar_index(). Так как вы в коде написали она вам не поможет, так как бары индексируются с 0 по текущий, а индекс серии [ ] ведет нумерацию наоборот - [0] это текущий бар а предыдущий будет [1]. В вашей ситуации проще при выполнении условия на открытие сделки записать значение fib в переменную и потом уже сравнивать текущее условие с ней.

Например:

var position_fib = 0.

if (ваше условие)
    strategy.entry('long', strategy.long)
    position_fib := fib

if fib * 2 > position_fib
    strategy.close('long')
    position_fib := 0. // ну и можно ее обнулить при закрытии позиции в зависимости от ваших задач введите сюда код