#pine-script
Вопрос:
Здравствуйте, коллеги-программисты Pine
Я в некотором роде новичок в pine script (более 6 месяцев) и недавно добился значительных успехов в знании/понимании сложных сценариев, но получение этого кода трейлинг-стоп-лосса ATR в рамках стратегии для работы превзошло меня. Я чувствую себя так, как будто прочитал каждый пост о стоп-лоссе ATR на этом сайте и других … и не могу найти решения, имеющие отношение к этому (я уверен, что они есть — то, что я ищу, не может быть уникальным)
Желаемый результат-чтобы трейлинг-стоп-лосс ATR начинался с цены входа в стратегию за вычетом ATR. Однако цена входа в стратегию основана на множестве других триггеров индикатора, а не на ATR. Поэтому, когда срабатывает длинный вход, расчет ATR часто все равно будет указывать на вышеуказанный (медвежий) тренд ATR, так как требуется несколько свечей от разворота разворота, чтобы он указывал на длинный тренд ATR. Следовательно…стоп-лосс часто закрывает длинный вход на следующем баре….. нежелательный результат.
Я пытаюсь заставить Стоп-лосс начинаться с цены входа за вычетом ATR…….и оставаться на этом уровне до тех пор, пока закрытие не превысит установленный процент (например, 5% [ *1,05]) от стратегии.position_avg_price (или valuewhen= введено), чтобы дать время для установления нового тренда, и когда выше установленного % продолжайте трейлинг, используя расчет ATR до триггера продажи или триггера Стоп-лосса.
Этот трейлинг-стоп ATR должен отображаться (строиться) на графике только тогда, когда открыта позиция strategy.position, а не когда strategy.position_size == 0.
Я потерял счет, сколько версий этого я написал, и не уверен, какую из них опубликовать для ссылки на код — поэтому я публикую последнюю попытку, которую я сделал после мозговой волны чего-то, что может сработать ….это не сработало: — (
Весь код очень длинный, поэтому я публикую только то, что относится к трейлинг — стоп-лоссу ATR. Этот скрипт включает в себя только код трейлинг — стоп-лосса для длинных входов, как только я пойму это правильно-следует сразу же кодировать трейлинг-стоп-лосс короткой позиции.
Использование версии 4
Большое Вам спасибо 🙂
ATRperiod = 12
ATRmultiplier = 6
//Trailing stop inputs
xATR = atr(ATRperiod)
StpLoss = ATRmultiplier * xATR
// Determine trail stop loss prices
longStopPrice = 0.0
xATRTrailingStop = 0.0
if (strategy.position_size > 0)
longStopPrice := if(close > (strategy.position_avg_price*1.05))
xATRTrailingStop = if ((close > nz(xATRTrailingStop[1], 0)) and (close[1] > nz(xATRTrailingStop[1], 0)))
max(nz(xATRTrailingStop[1]), close - StpLoss)
else
close - StpLoss
else
xATRTrailingStop := strategy.position_avg_price - StpLoss
else
0
plot(series=(strategy.position_size > 0) ? longStopPrice : na, color=color.green, linewidth=3, title="Long Trail Stop")
longStop = close < longStopPrice
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
strategy.close("L", id="L STP", when=longStop)```
Комментарии:
1. Есть ли кто-нибудь, кто может помочь мне с этим вопросом?