Sumber dimuat naik... memuat...

Multi-Timeframe EMA dengan Retracement Fibonacci dan Strategi Dagangan Titik Pivot

Penulis:ChaoZhang, Tarikh: 2024-12-11 15:58:20
Tag:EMAPPFIBOSLTP

 Multi-Timeframe EMA with Fibonacci Retracement and Pivot Points Trading Strategy

Ringkasan

Strategi ini adalah sistem dagangan yang komprehensif yang menggabungkan pelbagai alat analisis teknikal, terutamanya menggunakan EMA ganda (2050Strategi ini menggunakan gabungan trend berikut dan kaedah retracement harga untuk meningkatkan ketepatan perdagangan melalui pelbagai pengesahan.

Prinsip Strategi

Logik teras strategi ini adalah berdasarkan unsur-unsur utama berikut: 1. Menggunakan 20 dan 50-period EMA crossovers untuk menentukan arah trend keseluruhan 2. Menggunakan tahap retracement Fibonacci (23.6%, 38.2%, 50%, 61.8%) untuk mengenal pasti tahap sokongan / rintangan yang berpotensi 3. Mengintegrasikan Titik Pivot (PP) dan tahap sokongan / rintangan mereka (S1/S2, R1/R2) untuk mengesahkan tahap harga utama 4. Syarat kemasukan harus pada masa yang sama memenuhi: - EMA jangka pendek melintasi di atas EMA jangka panjang (untuk panjang) atau di bawah (untuk pendek) - Harga di atas/di bawah tahap Fibonacci yang sesuai - Harga mengesahkan tahap sokongan / rintangan titik pusingan 5. Melaksanakan stop-loss tetap (30 pip) dan mengambil keuntungan (60 pip) untuk pengurusan risiko

Kelebihan Strategi

  1. Penanda teknikal berbilang penanda silang meningkatkan kebolehpercayaan isyarat
  2. Menggabungkan trend dan sokongan / rintangan untuk masa kemasukan yang seimbang
  3. Parameter pengurusan risiko tetap memudahkan pelaksanaan kuantitatif
  4. Isyarat perdagangan yang dilihat membolehkan pemantauan masa nyata
  5. Sesuai untuk perdagangan trend jangka sederhana hingga panjang, mengurangkan kesan turun naik jangka pendek

Risiko Strategi

  1. Pelbagai penunjuk boleh menyebabkan isyarat kelewatan, mempengaruhi masa kemasukan
  2. Tahap Stop Loss dan Take Profit yang tetap mungkin tidak sesuai dengan semua keadaan pasaran
  3. Boleh menghasilkan isyarat palsu yang berlebihan di pasaran yang berbeza
  4. Menghendaki pergerakan harga yang ketara untuk pulangan yang optimum
  5. Stop-loss mungkin tidak berkesan semasa pergerakan pasaran yang tajam

Arahan Pengoptimuman Strategi

  1. Memperkenalkan mekanisme stop-loss dan mengambil keuntungan yang disesuaikan dengan turun naik
  2. Tambah penunjuk jumlah untuk pengesahan tambahan
  3. Sesuaikan parameter EMA secara dinamik berdasarkan keadaan pasaran
  4. Melaksanakan penapis kekuatan trend untuk mengurangkan isyarat palsu
  5. Membangunkan mekanisme pengurusan kedudukan separa yang lebih pintar

Ringkasan

Strategi ini mengintegrasikan pelbagai alat analisis teknikal klasik untuk membina sistem perdagangan yang agak lengkap. Walaupun ia mempunyai beberapa kelewatan yang melekat, mekanisme pengesahan berganda meningkatkan kebolehpercayaan perdagangan. Melalui pelaksanaan cadangan pengoptimuman, strategi ini berpotensi untuk meningkatkan prestasi dalam perdagangan langsung.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)


Berkaitan

Lebih lanjut