Динамическая стратегия ATR, основанная на тренде и прорыве уровня поддержки

ATR EMA SMC
Дата создания: 2024-12-12 17:26:00 Последнее изменение: 2024-12-12 17:26:00
Копировать: 3 Количество просмотров: 399
1
Подписаться
1617
Подписчики

Динамическая стратегия ATR, основанная на тренде и прорыве уровня поддержки

Обзор

Это динамическая стратегия отслеживания трендов ATR, основанная на прорыве уровня поддержки. Эта стратегия использует комплексную систему средней линии EMA, показатели волатильности ATR и концепцию умных денег (SMC) для захвата рыночных тенденций.

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

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

  1. Для подтверждения направления рыночных тенденций используется среднелинейная система EMA на 50 и 200 циклов
  2. Использование ATR для динамической корректировки стоп-стоп и прибыльных целей
  3. Найти оптимальные точки входа с помощью анализа блоков Order и Imbalance Zone
  4. Автоматический расчет объема открытых позиций на основе процентной доли риска счета
  5. Определение состояния рынка в сборе путем наблюдения за диапазоном колебаний около 20 K-линий

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

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

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

  1. EMA имеет задержку, которая может привести к задержке входа
  2. Это может спровоцировать ложные сигналы на рынках с сильными колебаниями.
  3. Стратегия зависит от устойчивости тенденций, которые могут оказаться неудачными в условиях волатильности рынка.
  4. Большая стоп-позиция, которая в некоторых случаях может нести большие потери

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

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

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

Стратегия является более полной системой отслеживания тенденций, которая повышает стабильность сделок с помощью разумного управления рисками и подтверждения нескольких сигналов. Несмотря на определенную отсталость, в целом это надежная торговая система.

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

// TradingView Pine Script strategy for Smart Money Concept (SMC)
//@version=5
strategy("Smart Money Concept Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=100)

// === Input Parameters ===
input_risk_percentage = input.float(1, title="Risk Percentage", step=0.1)
input_atr_length = input.int(14, title="ATR Length")
input_ema_short = input.int(50, title="EMA Short")
input_ema_long = input.int(200, title="EMA Long")

// === Calculations ===
atr = ta.atr(input_atr_length)
ema_short = ta.ema(close, input_ema_short)
ema_long = ta.ema(close, input_ema_long)

// === Utility Functions ===
// Identify Order Blocks
is_order_block(price, direction) =>
    ((high[1] > high[2] and low[1] > low[2] and direction == 1) or (high[1] < high[2] and low[1] < low[2] and direction == -1))

// Identify Imbalance Zones
is_imbalance() =>
    range_high = high[1]
    range_low = low[1]
    range_high > close and range_low < close

// Calculate Lot Size Based on Risk
calculate_lot_size(stop_loss_points, account_balance) =>
    risk_amount = account_balance * (input_risk_percentage / 100)
    lot_size = risk_amount / (stop_loss_points * syminfo.pointvalue)
    lot_size

// Determine if Market is Consolidating
is_consolidating() =>
    (ta.highest(high, 20) - ta.lowest(low, 20)) / atr < 2

// === Visual Enhancements ===
// Plot Order Blocks
// if is_order_block(close, 1)
//     line.new(x1=bar_index[1], y1=low[1], x2=bar_index, y2=low[1], color=color.green, width=2, extend=extend.right)
// if is_order_block(close, -1)
//     line.new(x1=bar_index[1], y1=high[1], x2=bar_index, y2=high[1], color=color.red, width=2, extend=extend.right)

// Highlight Imbalance Zones
// if is_imbalance()
//     box.new(left=bar_index[1], top=high[1], right=bar_index, bottom=low[1], bgcolor=color.new(color.orange, 80))

// === Logic for Trend Confirmation ===
is_bullish_trend = ema_short > ema_long
is_bearish_trend = ema_short < ema_long

// === Entry Logic ===
account_balance = strategy.equity
if not is_consolidating()
    if is_bullish_trend
        stop_loss = close - atr * 2
        take_profit = close + (math.abs(close - (close - atr * 2)) * 3)
        stop_loss_points = math.abs(close - stop_loss) / syminfo.pointvalue
        lot_size = calculate_lot_size(stop_loss_points, account_balance)
        strategy.entry("Buy", strategy.long, qty=lot_size)
        strategy.exit("TP/SL", "Buy", stop=stop_loss, limit=take_profit)

    if is_bearish_trend
        stop_loss = close + atr * 2
        take_profit = close - (math.abs(close - (close + atr * 2)) * 3)
        stop_loss_points = math.abs(close - stop_loss) / syminfo.pointvalue
        lot_size = calculate_lot_size(stop_loss_points, account_balance)
        strategy.entry("Sell", strategy.short, qty=lot_size)
        strategy.exit("TP/SL", "Sell", stop=stop_loss, limit=take_profit)

// === Plotting Indicators ===
plot(ema_short, color=color.blue, title="EMA 50")
plot(ema_long, color=color.orange, title="EMA 200")
plotshape(series=is_bullish_trend and not is_consolidating(), style=shape.triangleup, location=location.belowbar, color=color.green, text="Buy")
plotshape(series=is_bearish_trend and not is_consolidating(), style=shape.triangledown, location=location.abovebar, color=color.red, text="Sell")