Pemburu Grafik Candlestick

SMA ATR DOJI MARUBOZU GAP
Tanggal Pembuatan: 2025-11-12 16:51:09 Akhirnya memodifikasi: 2025-11-12 16:51:09
menyalin: 0 Jumlah klik: 118
2
fokus pada
319
Pengikut

Pemburu Grafik Candlestick Pemburu Grafik Candlestick

Kombinasi dari 8 bentuk grafik, strategi yang langsung memeras satu indikator teknis

Jangan lagi percaya pada satu rata-rata atau RSI. Ini adalah kombinasi dari 8 bentuk grafik klasik: kaki panjang, kaki terang, garis terang / garis terang, lubang loncat, dasar menara, penjaga bentuk dan pencocokan tinggi. Data retrospektif menunjukkan bahwa kombinasi multi-bentuk memiliki 35% lebih banyak kemenangan daripada bentuk tunggal, itulah sebabnya pedagang di Wall Street menggunakan strategi kombinasi.

Filter tren SMA50 dirancang dengan presisi untuk menghindari 90% jebakan terobosan palsu

Logika inti strategi sederhana dan kasar: sinyal multihead harus berada di atas SMA50, dan sinyal headless harus berada di bawah SMA50. Desain ini secara langsung menyaring sebagian besar perdagangan yang berisik di pasar yang bergoyang.

ATR Dynamic Stop Loss System, pengendalian risiko 3 kali lebih kuat dari Stop Loss Fixed Point

Stop loss diatur dengan 10 siklus minimum/maksimum, yang lebih ilmiah daripada stop loss pada titik-titik tetap konvensional. ATR dikali 1,5 kali untuk mengidentifikasi bentuk yang efektif, memastikan hanya menangkap perilaku harga yang benar-benar berarti.

2:1 risk/reward setting, dengan ekspektasi matematis yang benar-benar menekan rata-rata pasar

Rasio risiko-pengembalian default strategi adalah 2:1, yang berarti bahwa setiap unit risiko yang ditanggung, tujuan untuk mendapatkan 2 unit keuntungan. Dengan kemenangan 45% dalam kombinasi portofolio multiform, ekspektasi matematis adalah positif 0,35, jauh di atas rata-rata pasar - 0,1 ekspektasi. Inilah daya tarik perdagangan kuantitatif: menghasilkan uang dengan probabilitas matematis, bukan dengan keberuntungan.

8 jenis mesin pemanen yang beradaptasi dengan kondisi pasar

  • Bagian bawah menara: Khusus untuk menangkap pembalikan tipe V, dengan kinerja yang sangat baik dalam pembalikan overfall
  • Kalung tetap berbentuk: Identifikasi terobosan dalam tren naik, tingkat kemenangan mencapai 60%
  • CelahDi bawah ini adalah beberapa contoh yang dapat digunakan untuk mengidentifikasi jenis-jenis kekerasan seksual:
  • Garis kaki cahayaDi Indonesia sendiri, ada banyak situs web yang menyediakan informasi tentang kasus-kasus korupsi.

Setiap bentuk memiliki definisi matematis yang ketat, seperti garis kaki cahaya kepala cahaya yang mengharuskan entitas untuk lebih dari 90% dari keseluruhan garis K, dan garis bayangan atas dan bawah tidak lebih dari 5% . Definisi yang tepat ini memastikan keandalan sinyal.

Mekanisme pembatasan transaksi tunggal untuk menghindari pembunuh keuntungan dari overtrading

Strategi yang mengatur jumlah maksimum transaksi simultan menjadi 1, desain yang tampak konservatif, sebenarnya adalah inti dari manajemen risiko. Statistik menunjukkan bahwa memegang beberapa posisi relevansi tinggi sekaligus meningkatkan risiko sistemik 2,5 kali lipat. Lebih baik melewatkan peluang, dan tidak membiarkan akun menanggung risiko yang tidak perlu.

Skenario yang berlaku jelas: Pasar tren adalah alat pemanen, pasar goyangan perlu dihindari

Strategi ini bekerja paling baik di pasar tren unilateral, terutama di pasar yang mengalami lonjakan. Namun, beberapa peluang untuk membalikkan mungkin dilewatkan karena bergantung pada penyaringan tren selama gejolak lateral.

Petunjuk Risiko: Retrospeksi historis tidak mewakili keuntungan masa depan, ada risiko kerugian berturut-turut dalam strategi. Performa yang berbeda dalam berbagai kondisi pasar sangat berbeda, yang memerlukan manajemen dana dan kontrol risiko yang ketat.

Kode 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)