Strategi Perdagangan Breakout Pola Ganda Lanjutan

DOJI PIN BAR HAMMER BREAKOUT CANDLESTICK RSI
Tanggal Pembuatan: 2025-02-20 13:33:36 Akhirnya memodifikasi: 2025-02-20 13:33:36
menyalin: 0 Jumlah klik: 349
2
fokus pada
319
Pengikut

Strategi Perdagangan Breakout Pola Ganda Lanjutan Strategi Perdagangan Breakout Pola Ganda Lanjutan

Ringkasan

Strategi ini adalah sistem perdagangan canggih yang didasarkan pada pengenalan bentuk multi-teknologi, yang menggabungkan analisis bentuk graph dan prinsip-prinsip perdagangan terobosan. Strategi ini dapat mengidentifikasi dan memperdagangkan berbagai bentuk graph klasik, termasuk bentuk bintang salib ((Doji), cincin hammer ((Hammer) dan bentuk jarum P ((in Bar), sambil menggabungkan sistem konfirmasi biner untuk meningkatkan keandalan sinyal perdagangan.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa elemen kunci:

  1. Sistem pengenalan bentuk - Menggunakan perhitungan matematis yang tepat untuk mengidentifikasi tiga bentuk utama dari sebuah gambar: bintang salib, garis kurung, dan bentuk jarum. Setiap bentuk memiliki kriteria pengenalan yang unik, seperti hubungan proporsional antara entitas dan garis bayangan.
  2. Penembusan mekanisme konfirmasi - Menggunakan sistem konfirmasi ganda, yang mengharuskan kabel kedua untuk menembus kabel sebelumnya pada titik tinggi ((membuat lebih) atau titik rendah ((membuat kosong), untuk mengurangi sinyal palsu.
  3. Targeting - Menggunakan periode regresi yang dapat disesuaikan (default 20 siklus) untuk menentukan titik tertinggi atau terendah yang paling dekat sebagai target harga, sehingga strategi dapat beradaptasi secara dinamis.

Keunggulan Strategis

  1. Identifikasi multi-modal - Meningkatkan peluang perdagangan potensial secara signifikan dengan memantau beberapa bentuk teknologi secara bersamaan.
  2. Mekanisme pengesahan sinyal - Sistem pengesahan ganda efektif mengurangi risiko sinyal palsu.
  3. Visualisasi area transaksi - Gunakan kotak warna untuk menandai area transaksi, sehingga target transaksi lebih intuitif.
  4. Fleksibilitas penyesuaian parameter - dapat disesuaikan dengan kondisi pasar yang berbeda.

Risiko Strategis

  1. Risiko pasar yang bergejolak - mungkin akan ada sinyal palsu saat volatilitas tinggi.
  2. Risiko slippage - Dalam pasar yang kurang likuid, harga transaksi aktual mungkin memiliki deviasi besar dari harga sinyal.
  3. Risiko Reversal Trend - Dalam pasar yang sedang tren, sinyal reversal dapat menyebabkan kerugian yang lebih besar.

Arah optimasi

  1. Mengintegrasikan pengesahan volume - dianjurkan untuk memasukkan analisis volume ke dalam sistem pengenalan bentuk untuk meningkatkan keandalan sinyal.
  2. Mekanisme Stop Loss Dinamis - Stop Loss Dinamis dapat diatur berdasarkan ATR atau volatilitas.
  3. Filter lingkungan pasar - Tambahkan indikator kekuatan tren dan filter sinyal reversal selama tren kuat.
  4. Optimasi kerangka waktu - pertimbangkan untuk melakukan konfirmasi sinyal pada beberapa kerangka waktu.

Meringkaskan

Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan analisa bentuk multi-teknik dan prinsip perdagangan terobosan. Kelebihannya terletak pada pengesahan multi-dimensi sinyal dan penyesuaian parameter yang fleksibel, tetapi juga perlu memperhatikan risiko volatilitas dan likuiditas pasar. Dengan arah optimasi yang disarankan, stabilitas dan keandalan strategi dapat ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Target(Made by Karan)", overlay=true)

// Input for lookback period
lookbackPeriod = input.int(20, title="Lookback Period for Recent High/Low", minval=1)

// --- Pattern Identification Functions ---

// Identify Doji pattern
isDoji(open, high, low, close) =>
    bodySize = math.abs(close - open)
    rangeSize = high - low
    bodySize <= rangeSize * 0.1  // Small body compared to total range

// Identify Hammer pattern
isHammer(open, high, low, close) =>
    bodySize = math.abs(close - open)
    lowerShadow = open - low
    upperShadow = high - close
    bodySize <= (high - low) * 0.3 and lowerShadow > 2 * bodySize and upperShadow <= bodySize * 0.3  // Long lower shadow, small upper shadow

// Identify Pin Bar pattern
isPinBar(open, high, low, close) =>
    bodySize = math.abs(close - open)
    rangeSize = high - low
    upperShadow = high - math.max(open, close)
    lowerShadow = math.min(open, close) - low
    (upperShadow > bodySize * 2 and lowerShadow < bodySize) or (lowerShadow > bodySize * 2 and upperShadow < bodySize)  // Long shadow on one side

// --- Candle Breakout Logic ---

// Identify the first green candle (Bullish)
is_first_green_candle = close > open

// Identify the breakout above the high of the first green candle
breakout_green_candle = ta.crossover(close, high[1]) and is_first_green_candle[1]

// Identify the second green candle confirming the breakout
second_green_candle = close > open and breakout_green_candle[1]

// Find the recent high (for the target)
recent_high = ta.highest(high, lookbackPeriod)  // Use adjustable lookback period

// Plot the green rectangle box if the conditions are met and generate buy signal
var float start_price_green = na
var float end_price_green = na

if second_green_candle
    start_price_green := low[1]  // Low of the breakout green candle
    end_price_green := recent_high  // The most recent high in the lookback period
    strategy.entry("Buy", strategy.long)  // Buy signal

// --- Red Candle Logic ---

// Identify the first red candle (Bearish)
is_first_red_candle = close < open

// Identify the breakdown below the low of the first red candle
breakdown_red_candle = ta.crossunder(close, low[1]) and is_first_red_candle[1]

// Identify the second red candle confirming the breakdown
second_red_candle = close < open and breakdown_red_candle[1]

// Find the recent low (for the target)
recent_low = ta.lowest(low, lookbackPeriod)  // Use adjustable lookback period

// Plot the red rectangle box if the conditions are met and generate sell signal
var float start_price_red = na
var float end_price_red = na

if second_red_candle
    start_price_red := high[1]  // High of the breakout red candle
    end_price_red := recent_low  // The most recent low in the lookback period
    strategy.entry("Sell", strategy.short)  // Sell signal

// --- Pattern Breakout Logic for Doji, Hammer, Pin Bar ---

// Detect breakout of Doji, Hammer, or Pin Bar patterns
var float start_price_pattern = na
var float end_price_pattern = na

// Check for Doji breakout
if isDoji(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Doji
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Doji", strategy.long)  // Buy signal for Doji breakout

// Check for Hammer breakout
if isHammer(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Hammer
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Hammer", strategy.long)  // Buy signal for Hammer breakout

// Check for Pin Bar breakout
if isPinBar(open, high, low, close) and ta.crossover(close, high[1])
    start_price_pattern := low[1]  // Low of the breakout Pin Bar
    end_price_pattern := recent_high  // The most recent high in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = end_price_pattern, bottom = start_price_pattern, border_color = color.new(color.blue, 0), bgcolor = color.new(color.blue, 80))
    strategy.entry("Buy Pin Bar", strategy.long)  // Buy signal for Pin Bar breakout

// Check for bearish Doji breakout
if isDoji(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Doji
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Doji", strategy.short)  // Sell signal for Doji breakdown

// Check for bearish Hammer breakout
if isHammer(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Hammer
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Hammer", strategy.short)  // Sell signal for Hammer breakdown

// Check for bearish Pin Bar breakout
if isPinBar(open, high, low, close) and ta.crossunder(close, low[1])
    start_price_pattern := high[1]  // High of the breakdown Pin Bar
    end_price_pattern := recent_low  // The most recent low in the lookback period
    box.new(left = bar_index[1], right = bar_index, top = start_price_pattern, bottom = end_price_pattern, border_color = color.new(color.orange, 0), bgcolor = color.new(color.orange, 80))
    strategy.entry("Sell Pin Bar", strategy.short)  // Sell signal for Pin Bar breakdown

// Optional: Plot shapes for the green sequence of candles
plotshape(series=is_first_green_candle, location=location.belowbar, color=color.green, style=shape.labelup, text="1st Green")
plotshape(series=breakout_green_candle, location=location.belowbar, color=color.blue, style=shape.labelup, text="Breakout")
plotshape(series=second_green_candle, location=location.belowbar, color=color.orange, style=shape.labelup, text="2nd Green")

// Optional: Plot shapes for the red sequence of candles
plotshape(series=is_first_red_candle, location=location.abovebar, color=color.red, style=shape.labeldown, text="1st Red")
plotshape(series=breakdown_red_candle, location=location.abovebar, color=color.blue, style=shape.labeldown, text="Breakdown")
plotshape(series=second_red_candle, location=location.abovebar, color=color.orange, style=shape.labeldown, text="2nd Red")