Strategi Dagangan Sakkoulas Crossover Purata Bergerak yang Dipertingkatkan

Penulis:ChaoZhang, Tarikh: 2024-02-21 15:14:19
Tag:

img

Ringkasan

Strategi dagangan ini menggabungkan perbezaan konvergensi purata bergerak (MACD), indeks kekuatan relatif (RSI), purata bergerak mudah (SMA), osilator stokastik dan pita Bollinger untuk mengenal pasti titik kemasukan dan keluar pasaran.

Logika Strategi

Ia menjadi panjang apabila garis MACD DIF melintasi di atas garis DEA ke zon kenaikan; atau apabila RSI jatuh di bawah 30 ke wilayah oversold; atau apabila stokastik %K dan %D garis jatuh di bawah 20 menunjukkan status oversold.

Sebaliknya, ia menjadi pendek apabila garis MACD DIF melintasi di bawah garis DEA ke zon penurunan; atau apabila RSI meningkat di atas 70 ke kawasan overbought; atau apabila stokastik %K dan %D melonjak ke atas 80 yang menunjukkan keadaan overbought.

Stop loss ditetapkan berdasarkan ATR dikalikan dengan pekali.

Analisis Kelebihan

Strategi ini menggabungkan beberapa penunjuk untuk menilai status pasaran, mengelakkan kesilapan dengan metrik tunggal dan meningkatkan ketepatan.

Analisis Risiko

Indikator teknikal dikira dari data sejarah dan tidak dapat meramalkan harga masa depan, yang membawa kepada kelewatan tertentu. Menggabungkan beberapa penunjuk juga boleh memperkenalkan beberapa isyarat palsu. Di samping itu, tetapan stop loss yang tidak betul boleh mengakibatkan kerugian yang lebih besar.

Untuk menangani masalah kelewatan penunjuk, parameter boleh diselaraskan untuk memendekkan kitaran pengkomputeran. Untuk isyarat palsu, penunjuk tambahan boleh ditambah untuk pengesahan. Juga, stop loss harus ditetapkan lebih luas dan lebih munasabah.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Memasukkan penunjuk model statistik berdasarkan analisis trend dan korelasi untuk kemasukan;
  2. Tambah model pembelajaran mesin untuk menilai kebolehpercayaan isyarat penunjuk;
  3. Mengoptimumkan pengurusan wang untuk lebih automatik dan pintar stop loss dan mengambil keuntungan.

Ringkasan

Strategi ini menggabungkan pelbagai penunjuk teknikal untuk peningkatan ketepatan dan mengawal risiko melalui stop loss dan mengambil keuntungan, menjadikannya sistem trend yang boleh dipercayai.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Enhanced Moving Average Crossover sakkoulas with ATR and SAR", overlay=true)

// Παράμετροι MACD
fastLength = input.int(16, title="Fast Length")
slowLength = input.int(6, title="Slow Length")
signalSmoothing = input.int(5, title="Signal Smoothing")

// Παράμετροι RSI
rsiLength = input.int(6, title="RSI Length")
upperBound = input.int(70, title="Upper Bound")
lowerBound = input.int(30, title="Lower Bound")

// Παράμετροι SMA
smaPeriod = input.int(10, title="SMA Period")

// Παράμετροι Stochastic
stoLength = input.int(5, title="Stochastic Length")
stoSmoothK = input.int(3, title="Stochastic %K Smoothing")
stoSmoothD = input.int(10, title="Stochastic %D Smoothing")

// Παράμετροι Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(1, title="Bollinger Bands StdDev")

// Παράμετροι ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")

// Παράμετροι Parabolic SAR
sarAcceleration = input.float(0.02, title="SAR Acceleration")
sarMaximum = input.float(0.2, title="SAR Maximum")

// Διαχείριση κινδύνου
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")

// Υπολογισμοί δεικτών
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
atr = ta.atr(atrLength)

// Παράμετροι και κλήση του Parabolic SAR
sar = ta.sar(sarAcceleration, sarMaximum, 15) // Διορθωμένη κ
// Υπολογισμός Stop Loss με βάση το ATR
longStopLoss = close - atrMultiplier * atr 
shortStopLoss = close + atrMultiplier * atr

// Συνθήκες για είσοδο και έξοδο
longCondition = ta.crossover(macdLine, signalLine) and close > sar
shortCondition = ta.crossunder(macdLine, signalLine) and close < sar

// Εκτέλεση εντολών συναλλαγής με διαχείριση κινδύνου
if (longCondition)
    strategy.entry("Long Position", strategy.long)
    strategy.exit("Exit Long", "Long Position", stop=longStopLoss)
    
if (shortCondition)
    strategy.entry("Short Position", strategy.short)
    strategy.exit("Exit Short", "Short Position", stop=shortStopLoss)

// Συνθήκες για είσοδο και έξοδο
 
// Εμφάνιση βελών για σημεία εισόδου
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Short Entry")


// Εμφάνιση δεικτών
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(sma, color=color.orange, title="SMA")
plot(series=sar, color=color.fuchsia, style=plot.style_circles, title="Parabolic SAR")
hline(upperBound, "Upper Bound", color=color.red)
hline(lowerBound, "Lower Bound", color=color.green)

Lebih lanjut