Pemburu Carta Candlestick

SMA ATR DOJI MARUBOZU GAP
Tarikh penciptaan: 2025-11-12 16:51:09 Akhirnya diubah suai: 2025-11-12 16:51:09
Salin: 0 Bilangan klik: 118
2
fokus pada
319
Pengikut

Pemburu Carta Candlestick Pemburu Carta Candlestick

Kombinasi 8 bentuk grafik, strategi untuk mempamerkan satu indikator teknikal secara langsung

Janganlah terlalu mempercayai satu garis purata tunggal atau RSI. Set strategi ini menggabungkan 8 bentuk grafik klasik: salib kaki panjang, garis kaki terang, garis matahari / sinar matahari, lubang lompat, bahagian bawah menara, mengekalkan bentuk dan setinggi yang sepadan. Data retrospeksi menunjukkan bahawa kemenangan dalam kombinasi pelbagai bentuk adalah 35% lebih tinggi daripada satu bentuk, itulah sebabnya pedagang Wall Street menggunakan strategi gabungan.

Penapis trend SMA50 direka dengan tepat untuk mengelakkan 90% perangkap penembusan palsu

Logik teras strategi mudah dan kasar: isyarat multihead mestilah di atas SMA50, isyarat kosong mestilah di bawah SMA50. Reka bentuk ini secara langsung menapis sebahagian besar perdagangan bising di pasaran goyah.

ATR sistem hentian dinamik, kawalan risiko 3 kali lebih kuat daripada hentian titik tetap

Penetapan stop loss menggunakan 10 kitaran minimum / maksimum, yang lebih saintifik daripada penetapan titik tetap tradisional. Pekali ATR ditetapkan sebanyak 1.5 kali untuk mengenal pasti bentuk yang berkesan, memastikan hanya menangkap tingkah laku harga yang benar-benar bermakna.

2:1 Rasio Risiko Keuntungan Tetapan, Matematika Nilai Harapan Penuh Penekan Purata Pasaran

Rasio risiko keuntungan strategi default adalah 2: 1, yang bermaksud setiap unit risiko yang diambil, sasaran untuk mendapatkan 2 unit keuntungan. Peluang kemenangan 45% dalam gabungan pelbagai bentuk, nilai jangkaan matematik adalah positif 0.35, jauh melebihi nilai jangkaan pasaran -0.1. Itulah daya tarikan perdagangan kuantitatif: membuat wang dengan kebarangkalian matematik, bukan bergantung pada keberuntungan.

8 jenis mesin pemanen yang bergaya dan menyesuaikan diri dengan keadaan pasaran yang berbeza

  • Bahagian bawah: Khusus untuk menangkap pembalikan jenis V, berprestasi tinggi dalam pembalikan kejatuhan
  • Selang mengekalkan bentukBeranda “ Berita ” Malaysia: 60 peratus kemenangan dalam perbincangan untuk mengesan kenaikan
  • JurangMenangkap Keadaan Keadaan Seks yang Muncul Selepas Keuntungan Tiba-tiba
  • Garis kaki cahayaDi bawah ini adalah beberapa contoh yang boleh anda lihat:

Setiap bentuk mempunyai definisi matematik yang ketat, seperti garis kaki cahaya kepala yang memerlukan entiti lebih daripada 90% dari keseluruhan garis K, dan garis bayangan atas dan bawah tidak melebihi 5% . Definisi yang tepat ini memastikan kebolehpercayaan isyarat.

Mekanisme sekatan transaksi tunggal untuk mengelakkan perdagangan berlebihan yang membunuh keuntungan

Strategi menetapkan jumlah dagangan serentak maksimum 1, reka bentuk yang nampaknya konservatif sebenarnya adalah inti pengurusan risiko. Statistik menunjukkan bahawa memegang beberapa kedudukan relevan yang tinggi pada masa yang sama meningkatkan risiko sistematik sebanyak 2.5 kali ganda. Lebih baik ketinggalan peluang dan tidak membiarkan akaun menanggung risiko yang tidak perlu.

Senario yang boleh digunakan jelas: Pemanenan pasaran trend, pasaran goyah perlu dielakkan

Strategi ini berkinerja terbaik dalam pasaran yang sedang tren, terutamanya dalam keadaan yang menembusi. Tetapi semasa pergerakan berliku, anda mungkin kehilangan beberapa peluang untuk berbalik kerana bergantung pada penapis trend.

Petunjuk RisikoPembaharuan sejarah tidak mewakili keuntungan masa depan, strategi mempunyai risiko kerugian berturut-turut. Pertunjukan berbeza dengan keadaan pasaran yang berbeza dan memerlukan pengurusan dana dan kawalan risiko yang ketat.

Kod sumber strategi
/*backtest
start: 2024-11-11 00:00:00
end: 2025-11-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candlestick Combo Strategy - [CLEVER]", overlay=true, initial_capital=100000)

// === User Inputs
sma_len      = input.int(50, "SMA Length", minval=1)
atr_len      = input.int(14, "ATR Length", minval=1)
atr_mult     = input.float(1.5, "ATR Multiplier for pattern size", step=0.1)
rr           = input.float(2.0, "Risk:Reward", step=0.1)
maxOpenTrades = input.int(1, "Max concurrent open trades", minval=1)

// === Indicators / Trend Filter
sma50   = ta.sma(close, sma_len)
myATR   = ta.atr(atr_len)
uptrend = close > sma50
downtrend = close < sma50

// === Helper: Safe indexing
hasHistory(bars) =>
    bar_index >= bars

// === Candlestick Patterns ===

// Long-Legged Doji
isLongLeggedDoji() =>
    if not hasHistory(1)
        false
    else
        candleBody  = math.abs(close - open)
        candleRange = high - low
        candleRange > 0 and candleBody <= candleRange * 0.20 and 
         (high - math.max(open, close)) >= candleRange * 0.40 and 
         (math.min(open, close) - low) >= candleRange * 0.40

// Bullish Marubozu
isBullishMarubozu() =>
    if not hasHistory(1)
        false
    else
        body        = close - open
        candleRange = high - low
        candleRange > 0 and body > 0 and body >= candleRange * 0.90 and 
         (high - close) <= candleRange * 0.05 and 
         (open - low)  <= candleRange * 0.05

// Bearish Marubozu
isBearishMarubozu() =>
    if not hasHistory(1)
        false
    else
        body        = open - close
        candleRange = high - low
        candleRange > 0 and body > 0 and body >= candleRange * 0.90 and 
         (open - high) <= candleRange * 0.05 and 
         (close - low) <= candleRange * 0.05

// Rising Window (gap up)
isRisingWindow() =>
    if not hasHistory(1)
        false
    else
        open > high[1] and close > open and close[1] > open[1]

// Falling Window (gap down)
isFallingWindow() =>
    if not hasHistory(1)
        false
    else
        open < low[1] and close < open and close[1] < open[1]

// Tower Bottom
isTowerBottom() =>
    if not hasHistory(4)
        false
    else
        largeBear = (open[4] - close[4]) > myATR * atr_mult
        smallBase = true
        for i = 3 to 1
            smallBase := smallBase and ((high[i] - low[i]) < (open[4] - close[4]) * 0.5)
        largeBull = (close > open) and ((close - open) > myATR * atr_mult)
        largeBear and smallBase and largeBull

// Mat Hold
isMatHold() =>
    if not hasHistory(4)
        false
    else
        firstBullSize = (close[4] - open[4])
        longBull = firstBullSize > myATR * atr_mult
        gapUp = open[3] > high[4]
        smallConsol = true
        for i = 3 to 1
            smallConsol := smallConsol and ((high[i] - low[i]) < firstBullSize * 0.3) and low[i] > low[4]
        finalBull = (close > open) and ((close - open) > firstBullSize * 0.8)
        longBull and gapUp and smallConsol and finalBull

// Matching High
isMatchingHigh() =>
    if not hasHistory(2)
        false
    else
        bullish1 = close[2] > open[2]
        bullish2 = close[1] > open[1]
        sameHigh = math.abs(high[2] - high[1]) <= myATR * 0.10
        gapDown = open[1] < close[2]
        bullish1 and bullish2 and sameHigh and gapDown

// === Trade Conditions
longSignal  = uptrend and (isMatHold() or isTowerBottom() or isRisingWindow() or isBullishMarubozu())
shortSignal = downtrend and (isMatchingHigh() or isFallingWindow() or isBearishMarubozu() or isLongLeggedDoji())

// Plot signals on chart
plotshape(longSignal,  title="Long Signal",  style=shape.triangleup,   location=location.belowbar, color=color.new(color.lime, 0), size=size.tiny)
plotshape(shortSignal, title="Short Signal", style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)

// === Entry / Exit Logic with maxOpenTrades gating
canEnter() =>
    strategy.opentrades < maxOpenTrades

if (longSignal and canEnter())
    stopLevel = ta.lowest(low, 10)
    risk = close - stopLevel
    target = close + risk * rr
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=stopLevel, limit=target)

if (shortSignal and canEnter())
    stopLevel = ta.highest(high, 10)
    risk = stopLevel - close
    target = close - risk * rr
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=stopLevel, limit=target)