Избегая повторного входа в позиции того же направления

#pine-script

Вопрос:

Здравствуйте, я новичок в скрипте pine и тестирую стратегию, которая имеет разные условия входа и выхода. Проблема, с которой я сталкиваюсь, заключается в том, что при выходе условия входа все еще могут быть выполнены и возвращаются в то же положение, что и раньше. Я никогда не хочу входить в позицию в том же направлении, т. Е. Если я закрою длинную, я не хочу снова входить в длинную, пока не столкнусь с короткой. Есть ли какой-нибудь способ попросить скрипт проверить, была ли последняя введенная позиция длинной, чтобы снова не входить в длинную, если только сначала не произошло короткое замыкание?

Ответ №1:

Когда ваши условия входа будут выполнены и переданы в функцию strategy.entry (), дополнительно установите постоянную переменную. Например:

 var bool lastTradeLong = na
long = crossover(a,b)
long_entry = long and (na(lastTradeLong) or not lastTradeLong)
if long_entry
    lastTradeLong := true
strategy.entry('Long', strategy.long, when=long_entry)
 

И установите реверс для короткой позиции, поэтому входите, когда ваши короткие условия верны , и lastTradeLong это либо na или true , а затем, когда произойдет эта комбинация и сделка вступит, установите lastTradeLong в значение false.