Sumber dimuat naik... memuat...

Trend ATR Dinamik Mengikut Strategi Berdasarkan Penembusan Sokongan

Penulis:ChaoZhang, Tarikh: 2024-12-12 17:26:00
Tag:ATREMASMC

img

Ringkasan

Ini adalah trend ATR dinamik yang mengikuti strategi berdasarkan pecah sokongan. Strategi ini menggabungkan sistem EMA, penunjuk turun naik ATR, dan Konsep Wang Pintar (SMC) untuk menangkap trend pasaran. Ia mencapai pengurusan risiko yang berkesan melalui ukuran kedudukan dinamik dan penempatan stop-loss / take-profit.

Prinsip Strategi

Strategi ini dibina di atas beberapa komponen teras:

  1. Menggunakan sistem EMA 50 dan 200 tempoh untuk mengesahkan arah trend pasaran
  2. Menggunakan penunjuk ATR untuk menyesuaikan sasaran stop-loss dan keuntungan secara dinamik
  3. Menganalisis Blok Perintah dan Zon Ketidakseimbangan untuk mencari titik masuk yang optimum
  4. Mengira saiz kedudukan secara automatik berdasarkan peratusan risiko akaun
  5. Menentukan penyatuan pasaran dengan memerhatikan julat harga 20 lilin terakhir

Kelebihan Strategi

  1. Pengurusan risiko yang komprehensif melalui pengiraan dinamik
  2. Sistem pengenalan trend yang boleh dipercayai yang mengelakkan pasaran penyatuan
  3. Tetapan stop loss dan take profit yang munasabah dengan nisbah risiko-balasan 1: 3
  4. Sesuai dengan keadaan pasaran yang berbeza
  5. Struktur kod yang jelas yang mudah dikekalkan dan dioptimumkan

Risiko Strategi

  1. Penunjuk EMA mempunyai kelewatan yang melekat, berpotensi menunda titik kemasukan
  2. Boleh menghasilkan isyarat palsu di pasaran yang sangat tidak menentu
  3. Strategi bergantung kepada kesinambungan trend, mungkin kurang berprestasi di pasaran yang berbeza
  4. Penempatan stop-loss yang luas boleh membawa kepada kerugian yang lebih besar dalam situasi tertentu

Arahan pengoptimuman

  1. Menggabungkan analisis hubungan jumlah-harga untuk meningkatkan pengenalan trend
  2. Tambah penunjuk sentimen pasaran untuk mengoptimumkan masa kemasukan
  3. Pertimbangkan analisis jangka masa berbilang untuk meningkatkan kestabilan sistem
  4. Memperbetulkan kriteria pengenalan blok pesanan dan zon ketidakseimbangan
  5. Mengoptimumkan kaedah stop-loss, mempertimbangkan pelaksanaan berhenti trailing

Ringkasan

Strategi ini adalah sistem trend berikut yang komprehensif yang mencapai kestabilan perdagangan melalui pengurusan risiko yang betul dan pengesahan isyarat berbilang. Walaupun terdapat beberapa kelewatan dalam isyarat, ia mewakili sistem perdagangan yang boleh dipercayai secara keseluruhan.


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


Berkaitan

Lebih lanjut