Стратегия отслеживания динамического тренда ATR и повторного входа в рынок

ATR SMA MA
Дата создания: 2025-02-18 15:11:28 Последнее изменение: 2025-02-18 15:11:28
Копировать: 1 Количество просмотров: 362
1
Подписаться
1617
Подписчики

Стратегия отслеживания динамического тренда ATR и повторного входа в рынок

Обзор

Это стратегия отслеживания трендов на основе динамической корректировки ATR, которая объединяет движущиеся средние и показатели ATR для определения точек входа и выхода. Основная особенность этой стратегии заключается в том, что она использует движущуюся среднюю динамическую корректировку ATR для установления верхней и нижней траекторий, вводит большие ставки при прорыве цены и устанавливает остановки и остановки на основе кратного ATR. В то же время стратегия включает инновационный механизм повторного входа, который позволяет восстанавливать позиции, когда цена возвращается к точке входа.

Стратегический принцип

Стратегия основана на следующих ключевых факторах:

  1. Используя скорректированные скользящие средние ATR в качестве основы для определения тенденции, формируют динамическую восходящую и нисходящую орбиту
  2. При повышении цены, входящая цена является текущей ценой закрытия.
  3. Стоп-страх устанавливается в 2 раза ниже начальной цены
  4. Стоп-позиции устанавливаются выше цены входа ((5 + пользовательские кратные) * расстояние ATR
  5. После того, как будет вызван стоп-стоп или стоп-стоп, стратегия автоматически возобновляет вход, если цена вернется к первоначальной цене входа.
  6. Оптимизировать отображение диаграммы с использованием ограничения на отображение до 30 K-линий

Стратегические преимущества

  1. Динамично адаптируемая: скорректированная через ATR скользящая средняя адаптируется к изменению рыночных колебаний
  2. Наука управления рисками: остановки и остановки на основе динамических настроек ATR, соответствующих рыночным колебаниям
  3. Инновации в механизме реинтеграции: позволяет реинтеграции, повышая возможность получения прибыли, когда цена возвращается в выгодную позицию
  4. Отличные визуальные эффекты: стратегия обеспечивает четкое отображение входных, остановочных и стоп-линий, что позволяет контролировать торговлю
  5. Гибкость параметров: можно настроить циклы определения тренда и стоп-множества с помощью ввода параметров

Стратегический риск

  1. Риск обратного тренда: возможные частые сбои на рынке во время колебаний
  2. Риск повторного входа: возможны последовательные остановки при переходе цены к точке входа.
  3. Риск скольжения: в периоды сильной колебательности фактическая цена сделки может отклоняться от цены сигнала
  4. Чувствительность параметров: оптимальные параметры могут сильно изменяться в разных рыночных условиях
  5. Вычислительная нагрузка: требуется вычислить несколько технических показателей в реальном времени, что может увеличить нагрузку на систему

Направление оптимизации стратегии

  1. Введение фильтрации рыночной среды: можно добавить фильтр волатильности, чтобы скорректировать параметры стратегии или приостановить торговлю во время высокой волатильности
  2. Оптимизация логики повторного входа: можно рассмотреть более строгие условные ограничения при повторном входе, такие как индикаторы подтверждения тенденции
  3. Усовершенствованный механизм остановки: мобильная функция остановки, которая защищает больше прибыли при продолжении тренда
  4. Дополнительная временная фильтрация: возможно добавление ограничений на периоды торговли, чтобы избежать периодов низкой ликвидности
  5. Оптимизация вычислительной эффективности: можно повысить эффективность выполнения стратегий за счет сокращения ненужных вычислений и рисунков

Подвести итог

Это разумно разработанная, логически ясная стратегия отслеживания тенденций, обеспечивающая хорошую рыночную адаптивность посредством динамической корректировки ATR. Механизм повторного входа в стратегию является инновационным, способным обеспечить дополнительные возможности для получения прибыли в хороших рыночных условиях. Хотя существуют некоторые риски, на которые следует обратить внимание, с помощью предлагаемой оптимизации направления можно еще больше повысить стабильность и прибыльность стратегии.

Исходный код стратегии
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("KON SET By Sai", overlay=true, max_lines_count=40)

// INPUTS
length = input.int(10, "Trend Length")
target_multiplier = input.int(0, "Set Targets") // Target adjustment
max_bars = 30  // Number of bars to display the lines after signal

// VARIABLES
var bool inTrade = false
var float entryPrice = na
var float stopLoss = na
var float targetPrice = na
var int barCount = na  // Counter to track how many bars have passed since signal

// ATR for stop-loss and target calculation
atr_value = ta.sma(ta.atr(200), 200) * 0.8

// Moving averages for trend detection
sma_high = ta.sma(high, length) + atr_value
sma_low = ta.sma(low, length) - atr_value

// Signal conditions for trend changes
signal_up = ta.crossover(close, sma_high)
signal_down = ta.crossunder(close, sma_low)

// Entry conditions
if not inTrade and signal_up
    entryPrice := close
    stopLoss := close - atr_value * 2
    targetPrice := close + atr_value * (5 + target_multiplier)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=stopLoss, limit=targetPrice)
    inTrade := true
    barCount := 0  // Reset bar count when signal occurs

// Exit conditions
if inTrade and (close <= stopLoss or close >= targetPrice)
    inTrade := false
    entryPrice := na
    stopLoss := na
    targetPrice := na
    barCount := na  // Reset bar count on exit

// Re-entry logic
if not inTrade and close == entryPrice
    entryPrice := close
    stopLoss := close - atr_value * 2
    targetPrice := close + atr_value * (5 + target_multiplier)
    strategy.entry("Re-Long", strategy.long)
    strategy.exit("Re-Exit Long", "Re-Long", stop=stopLoss, limit=targetPrice)
    inTrade := true
    barCount := 0  // Reset bar count when re-entry happens

// Count bars since the signal appeared (max 30 bars)
if inTrade and barCount < max_bars
    barCount := barCount + 1

// Plotting lines for entry, stop-loss, and targets (Only during active trade and within max_bars)
entry_line = plot(inTrade and barCount <= max_bars ? entryPrice : na, title="Entry Price", color=color.new(color.green, 0), linewidth=1, style=plot.style_cross)
sl_line = plot(inTrade and barCount <= max_bars ? stopLoss : na, title="Stop Loss", color=color.new(color.red, 0), linewidth=1, style=plot.style_cross)
target_line = plot(inTrade and barCount <= max_bars ? targetPrice : na, title="Target Price", color=color.new(color.blue, 0), linewidth=1, style=plot.style_cross)

// Background color between entry and target/stop-loss (Only when inTrade and within max_bars)
fill(entry_line, target_line, color=color.new(color.green, 90), title="Target Zone")
fill(entry_line, sl_line, color=color.new(color.red, 90), title="Stop-Loss Zone")

// Label updates (reduce overlap and clutter)
if bar_index % 50 == 0 and inTrade and barCount <= max_bars  // Adjust label frequency for performance
    label.new(bar_index + 1, entryPrice, text="Entry: " + str.tostring(entryPrice, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index + 1, stopLoss, text="Stop Loss: " + str.tostring(stopLoss, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index + 1, targetPrice, text="Target: " + str.tostring(targetPrice, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)