Strategi Stop Loss Dinamis Breakout EMA

EMA ATR VOLUME BREAKOUT TRAILING_STOP
Tanggal Pembuatan: 2025-08-26 11:50:41 Akhirnya memodifikasi: 2025-08-26 11:50:41
menyalin: 0 Jumlah klik: 328
2
fokus pada
319
Pengikut

Strategi Stop Loss Dinamis Breakout EMA Strategi Stop Loss Dinamis Breakout EMA

Strategi Yang Menonjol: Tren Asuransi Tiga Menembus Kuil

Anda tahu? Strategi ini seperti memiliki asuransi tiga kali lipat untuk perdagangan Anda! Anda akan mulai dengan EMA200 untuk menentukan arah tren besar, kemudian dengan volume transaksi untuk mengkonfirmasi keaslian terobosan, dan akhirnya dengan ATR untuk melindungi keuntungan dari stop loss.

Ini bukan jenis perdagangan mekanis yang tidak teratur, tetapi strategi cerdas untuk “mengamati”. Ketika harga menembus EMA200, ia juga harus memeriksa apakah volume transaksi cukup besar (default 1,5 kali lipat dari rata-rata) untuk menghindari lubang yang dipalsukan.

️ Mekanisme Stop Damage Dinamis: Dewa Pelindung yang Bisa “Memaki Tangga”

Bagian yang paling menarik dari strategi ini adalah bahwa stop loss bukan merupakan nilai tetap dari papan, tetapi perlindungan dinamis yang akan “menanjak tangga”.

Cara kerjanya sangat sederhana.

  • Saat masuk: Stop loss set 2 kali jarak ATR di bawah harga masuk
  • Dalam posisi: Stop loss akan mengikuti 20 siklus terendah ke atas
  • Saat keluar: Harga turun di bawah Stop Loss Line dan bernegosiasi

Seperti ketika Anda naik tangga, setiap tingkat yang lebih tinggi akan meningkatkan tali pengaman, dan tidak akan pernah turun! Ini melindungi keuntungan dan memberikan ruang yang cukup untuk tren.

Konfirmasi pengiriman fosil: Senjata inti dari panduan untuk menghindari lubang

Panduan untuk menghindari lubang sudah ada! Masalah terbesar dengan banyak strategi penembusan adalah penembusan palsu, seperti dalam kisah “The Wolf Has Arrived”.

Jumlah transaksi harus lebih dari 1,5 kali rata-rata 20 hariBayangkan saja, jika sebuah berita hanya dibagikan oleh beberapa orang, itu mungkin palsu; tetapi jika seluruh kota membicarakannya, itu layak untuk diperhatikan!

Desain ini membantu Anda memfilter “kebohongan” dari terobosan palsu, dan hanya mengambil peluang dari tren yang benar-benar didanai.

Aplikasi Pertempuran: Bagaimana Strategi Ini Bisa Membantu Anda

Cocok untuk Masyarakat

  • Investor yang ingin mengikuti tren jangka menengah dan panjang
  • Orang-orang yang berhati-hati karena takut diretas
  • Orang-orang rasional yang menginginkan sistematisasi perlindungan dari kerusakan

Masalah-masalah inti yang diselesaikan

  1. KewalahanEMA200 membantu Anda menilai tren.
  2. Penembusan palsu menggangguPerjalanan dikonfirmasi, filter suara.
  3. Masalah penghentian kerusakanATR Dinamis: Perlindungan dan Fleksibilitas
  4. Perdagangan emosi“Saya tidak tahu apa-apa tentang itu, saya tidak tahu apa-apa tentang itu, saya tidak tahu apa-apa tentang itu.

Ingat, nilai terbesar dari strategi ini bukanlah membuat Anda kaya dalam semalam, tetapi membantu Anda mendapatkan keuntungan yang stabil di pasar yang sedang tren, sambil memaksimalkan keamanan dana Anda.

Kode Sumber Strategi
/*backtest
start: 2024-08-26 00:00:00
end: 2025-08-24 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("EMA Break + Stop ATR", overlay = true)
// =============================================================================
// STRATEGY PARAMETERS
// =============================================================================
// User inputs for strategy customization
shortPeriod = input.int(20, title = "Stop Period", minval = 1, maxval = 100, tooltip = "Period for lowest low calculation")
atrPeriod = 1  // ATR period always set to 1
initialStopLoss = 0.0  // Initial stop loss always set to 0 (auto based on ATR)
// Confirmation indicator settings
useVolumeConfirmation = input.bool(true, title = "Use Volume Confirmation", tooltip = "Require volume above average for breakout confirmation")
volumeMultiplier = input.float(1.5, title = "Volume Multiplier", minval = 1.0, maxval = 5.0, step = 0.1, tooltip = "Volume must be this times above average")
// Strategy variables
var float STOP_LOSS = 0.0     // Dynamic stop loss value
var float TRAILING_STOP = na   // Trailing stop based on lowest low
// =============================================================================
// TECHNICAL INDICATORS
// =============================================================================
// Calculate True Range and its Simple Moving Average
trueRange = ta.tr(true)
smaTrueRange = ta.sma(trueRange, atrPeriod)
// Calculate 200-period Exponential Moving Average
ema200 = ta.ema(close, 200)
// Calculate lowest low over the short period
lowestLow = ta.lowest(input(low), shortPeriod)
// Calculate potential stop loss level (always available)
potentialStopLoss = close - 2 * smaTrueRange
// Volume confirmation for breakout validation
volumeSMA = ta.sma(volume, 20)  // 20-period average volume
isVolumeConfirmed = not useVolumeConfirmation or volume > volumeSMA * volumeMultiplier
// =============================================================================
// STOP LOSS MANAGEMENT
// =============================================================================
// Update trailing stop based on lowest low (always, not just when in position)
if na(TRAILING_STOP) or lowestLow > TRAILING_STOP
    TRAILING_STOP := lowestLow
// Update stop loss if we have an open position and new lowest low is higher
if (strategy.position_size > 0) and (STOP_LOSS < lowestLow)
    strategy.cancel("buy_stop")
    STOP_LOSS := lowestLow
// Soft stop loss - exit only when close is below stop level
if (strategy.position_size > 0) and (close < STOP_LOSS)
    strategy.close("buy", comment = "Soft Stop Loss")
    alert("Position closed: Soft Stop Loss triggered at " + str.tostring(close), alert.freq_once_per_bar)
// =============================================================================
// ENTRY CONDITIONS
// =============================================================================
// Enhanced entry signal with volume confirmation to avoid false breakouts
isEntrySignal = ta.crossover(close, ema200) and (strategy.position_size == 0) and isVolumeConfirmed
if isEntrySignal
    // Cancel any pending orders
    strategy.cancel("buy")
    strategy.cancel("sell")
    // Enter long at market on crossover
    strategy.entry("buy", strategy.long)
    // Set initial stop loss (2 * ATR below close, or use custom value if specified)
    if initialStopLoss > 0
        STOP_LOSS := initialStopLoss
    else
        STOP_LOSS := close - 2 * smaTrueRange
    // Alert for position opened
    alert("Position opened: Long entry at " + str.tostring(close) + " with stop loss at " + str.tostring(STOP_LOSS), alert.freq_once_per_bar)
// =============================================================================
// PLOTTING
// =============================================================================
// Plot EMA 200
plot(ema200, color = color.blue, title = "EMA 200", linewidth = 2)
// Plot Stop Loss
plot(strategy.position_size > 0 ? STOP_LOSS : lowestLow, color = color.red, title = "Stop Loss", linewidth = 2)
// Plot confirmation signals
plotshape(isEntrySignal, title="Confirmed Breakout", location=location.belowbar,
          color=color.green, style=shape.triangleup, size=size.normal)
// Plot volume confirmation (only if enabled)
bgcolor(useVolumeConfirmation and isVolumeConfirmed and ta.crossover(close, ema200) ? color.new(color.green, 90) : na, title="Volume Confirmed")