Arah aliran ATR dinamik mengikut strategi berdasarkan kejayaan tahap sokongan

ATR EMA SMC
Tarikh penciptaan: 2024-12-12 17:26:00 Akhirnya diubah suai: 2024-12-12 17:26:00
Salin: 3 Bilangan klik: 399
1
fokus pada
1617
Pengikut

Arah aliran ATR dinamik mengikut strategi berdasarkan kejayaan tahap sokongan

Gambaran keseluruhan

Ini adalah strategi pemantauan trend ATR dinamik berdasarkan penembusan tahap sokongan. Strategi ini menggunakan sistem EMA rata-rata, indikator kadar turun naik ATR dan konsep dana pintar (SMC) untuk menangkap trend pasaran. Strategi ini mewujudkan pengurusan risiko yang baik dengan mengira saiz kedudukan dan kedudukan hentian kerugian secara dinamik.

Prinsip Strategi

Strategi ini dibina berdasarkan beberapa komponen utama:

  1. Menggunakan sistem EMA rata-rata 50 dan 200 kitaran untuk mengesahkan arah trend pasaran
  2. Menggunakan ATR untuk menyesuaikan sasaran stop loss dan keuntungan secara dinamik
  3. Mencari titik masuk yang terbaik melalui analisis blok pesanan dan zon ketidakseimbangan
  4. Mengira secara automatik jumlah kedudukan berdasarkan peratusan risiko akaun
  5. Untuk menilai sama ada pasaran berada dalam keadaan terpusat dengan melihat julat turun naik hampir 20 garis K

Kelebihan Strategik

  1. Pengurusan risiko yang sempurna, memastikan risiko setiap urus niaga dapat dikawal melalui pengiraan dinamik
  2. Sistem penilaian trend yang boleh dipercayai, mengelakkan perdagangan dalam pasaran yang disusun
  3. Pengaturan Stop Loss adalah munasabah, dengan nisbah risiko / keuntungan 1: 3
  4. Mengambil kira turun naik pasaran dan menyesuaikan diri dengan keadaan pasaran yang berbeza
  5. Struktur kod adalah jelas, mudah diselenggara dan dioptimumkan

Risiko Strategik

  1. Indeks EMA mempunyai keterlambatan yang boleh menyebabkan kelewatan masa masuk
  2. Ia boleh mencetuskan isyarat palsu dalam pasaran yang bergolak
  3. Strategi bergantung kepada trend yang berterusan dan mungkin kurang baik dalam pasaran yang bergolak
  4. Kedudukan hentian yang lebih luas, dalam beberapa kes mungkin menanggung kerugian yang lebih besar

Arah pengoptimuman strategi

  1. Pendahuluan kuantiti dan kuantiti boleh diperkenalkan untuk meningkatkan ketepatan trend.
  2. Menambah Indeks Sentimen Pasaran dan Optimumkan Masa Masuk
  3. Pertimbangkan untuk memasukkan analisis kitaran masa berbilang untuk meningkatkan kestabilan sistem
  4. Kriteria yang boleh menyempurnakan blok pesanan dan kawasan ketidakseimbangan
  5. Mengoptimumkan penangguhan, pertimbangkan penangguhan bergerak

ringkaskan

Strategi ini adalah sistem pengesanan trend yang lebih lengkap, meningkatkan kestabilan perdagangan melalui pengurusan risiko yang munasabah dan pengesahan isyarat berganda. Walaupun terdapat beberapa ketidakselesaan, secara keseluruhan ia adalah sistem perdagangan yang boleh dipercayai.

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