#pine-script #pine-script-v4
Вопрос:
Я хочу использовать ATR для фиксации прибыли и установки стоп-лосса. Проблема в том, что ATR продолжает корректировать каждый бар. Как мне установить ATR в качестве статического числа на основе открывающейся свечи и не продолжать обновлять каждый бар?
К вашему сведению: В stackoverflow есть несколько таких же вопросов, но ни один из них на самом деле не работает.
Я также пытался использовать strategy.position_avg_price вместо close, но это, похоже, тоже никогда не работает.
Вот мой код.
Я использую v4.
Спасибо!
// Create ATR atr = atr(14) // Determine stop loss price longStopPrice = close - (atr * 1) // Take Profit takeProfit = close (atr * 1.5)
Комментарии:
1. В чем именно ваша проблема? Ваши точки стоп-лосса и тейк-профита продолжают меняться?
Ответ №1:
Вы должны strategy.position_size
проверить, есть ли у вас открытая позиция, а затем установить уровни тейк — профита и стоп-лосса strategy.exit
.
Вот простой пример:
//@version=5 strategy("My Strategy", overlay=true, margin_long=100, margin_short=100) longCondition = ta.atr(14) gt;= 100 tp = close * 1.01 plot(tp) if (longCondition) strategy.entry(id="Long Id", direction=strategy.long) if (strategy.position_size gt; 0) strategy.exit(id="Short Id", from_entry="Long Id", profit=tp)
Синяя линия-это уровень тейк-профита, рассчитываемый на каждом баре. Как вы можете видеть, уровень тейк-профита меняется на каждом баре, однако фактический выход из стратегии происходит на основе первоначально рассчитанного уровня тейк-профита.
Комментарии:
1. Хорошо, конечно. Но теперь ATR не рассчитывается в тейк-профите, это просто статический расчет, я прав? Значит, он не будет корректироваться в зависимости от разных таймфреймов?
2. Да, я просто хотел дать тебе идею. Вы можете включить atr в свои расчеты тейк-профита. Расчеты будут основаны на таймфрейме вашего графика, если вы не используете эту
security()
функцию.
Ответ №2:
я пытался решить ту же проблему сегодня, просто нашел это в другом посте
та.значение (условие, источник, возникновение)