В процессе загрузки ресурсов... загрузка...

Динамическая тенденция ATR после стратегии, основанной на выходе из поддержки

Автор:Чао ЧжанДата: 2024-12-12 17:26:00
Тэги:ATRЕМАSMC

img

Обзор

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

Принцип стратегии

Стратегия основана на нескольких основных компонентах:

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

Преимущества стратегии

  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")


Связанные

Больше