Strategi mengikuti tren ATR dinamis berdasarkan terobosan level support

ATR EMA SMC
Tanggal Pembuatan: 2024-12-12 17:26:00 Akhirnya memodifikasi: 2024-12-12 17:26:00
menyalin: 3 Jumlah klik: 399
1
fokus pada
1617
Pengikut

Strategi mengikuti tren ATR dinamis berdasarkan terobosan level support

Ringkasan

Ini adalah strategi pelacakan tren ATR yang dinamis yang didasarkan pada penembusan level dukungan. Strategi ini menggunakan sistem rata-rata EMA, indikator volatilitas ATR, dan konsep dana cerdas (SMC) untuk menangkap tren pasar. Strategi ini memungkinkan manajemen risiko yang baik dengan menghitung ukuran posisi dan posisi stop loss secara dinamis.

Prinsip Strategi

Strategi ini dibangun berdasarkan beberapa komponen utama:

  1. Sistem EMA rata-rata menggunakan 50 dan 200 siklus untuk mengkonfirmasi arah tren pasar
  2. Menggunakan indikator ATR untuk menyesuaikan target stop loss dan profit secara dinamis
  3. Temukan titik masuk yang optimal dengan analisis Order Block dan Imbalance Zone
  4. Perhitungan otomatis jumlah posisi berdasarkan persentase risiko akun
  5. Pendahuluan pasar untuk menentukan apakah pasar berada dalam kondisi konsolidasi dengan melihat kisaran fluktuasi hampir 20 garis K

Keunggulan Strategis

  1. Pengelolaan risiko yang sempurna, dengan perhitungan dinamis untuk memastikan bahwa risiko setiap transaksi dapat dikendalikan
  2. Sistem penilaian tren yang dapat diandalkan untuk menghindari perdagangan di pasar yang tidak terstruktur
  3. Stop loss setting yang wajar, rasio risiko / keuntungan 1: 3
  4. Mempertimbangkan volatilitas pasar dan beradaptasi dengan kondisi pasar yang berbeda
  5. Struktur kode jelas, mudah dirawat dan dioptimalkan

Risiko Strategis

  1. Indeks EMA memiliki keterlambatan yang dapat menyebabkan penundaan waktu masuk
  2. Ini bisa memicu sinyal palsu di pasar yang bergejolak.
  3. Strategi bergantung pada keberlangsungan tren, dan mungkin kurang baik dalam pasar yang bergoyang
  4. Stop loss lebih luas dan dalam beberapa kasus dapat menanggung kerugian lebih besar

Arah optimasi strategi

  1. Analisis hubungan kuantitatif dapat diperkenalkan untuk meningkatkan akurasi penilaian tren.
  2. Ini bisa meningkatkan indikator sentimen pasar dan mengoptimalkan waktu masuk.
  3. Pertimbangkan untuk menambahkan analisis siklus waktu ganda untuk meningkatkan stabilitas sistem
  4. Kriteria penilaian yang memungkinkan untuk menyempurnakan blok pesanan dan area ketidakseimbangan
  5. Optimalkan Stop Loss, Pertimbangkan Stop Loss Mobile

Meringkaskan

Strategi ini adalah sistem pelacakan tren yang lebih lengkap, meningkatkan stabilitas perdagangan dengan manajemen risiko yang masuk akal dan konfirmasi sinyal ganda. Meskipun ada beberapa keterlambatan, secara keseluruhan ini adalah sistem perdagangan yang dapat diandalkan.

Kode Sumber Strategi
/*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")