Strategi perdagangan rata-rata bergerak crossover Sakkoulas yang ditingkatkan

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

img

Gambaran umum

Strategi perdagangan ini menggabungkan divergensi konvergensi rata-rata bergerak (MACD), indeks kekuatan relatif (RSI), rata-rata bergerak sederhana (SMA), osilator stokastik dan pita Bollinger untuk mengidentifikasi titik masuk dan keluar pasar.

Logika Strategi

Ini akan menjadi panjang ketika garis MACD DIF melintasi di atas garis DEA ke zona bullish; atau ketika RSI turun di bawah 30 ke wilayah oversold; atau ketika garis stokastik %K dan %D turun di bawah 20 yang menunjukkan status oversold.

Sebaliknya, ia menjadi short ketika garis MACD DIF melintasi di bawah garis DEA ke zona penurunan; atau ketika RSI naik di atas 70 ke area overbought; atau ketika garis stokastik %K dan %D naik di atas 80 yang menunjukkan kondisi overbought.

Stop loss ditetapkan berdasarkan ATR dikalikan dengan koefisien.

Analisis Keuntungan

Strategi ini menggabungkan beberapa indikator untuk menilai status pasar, menghindari kesalahan dengan metrik tunggal dan meningkatkan akurasi.

Analisis Risiko

Indikator teknis dihitung dari data historis dan tidak dapat memprediksi harga masa depan, yang menyebabkan keterlambatan tertentu. Menggabungkan beberapa indikator juga dapat memperkenalkan beberapa sinyal palsu. Selain itu, pengaturan stop loss yang tidak tepat dapat mengakibatkan kerugian yang lebih besar.

Untuk mengatasi masalah keterlambatan indikator, parameter dapat disesuaikan untuk memperpendek siklus komputasi. Untuk sinyal palsu, indikator tambahan dapat ditambahkan untuk konfirmasi. Juga, stop loss harus diatur lebih luas dan lebih wajar.

Arahan Optimasi

Strategi dapat ditingkatkan dalam aspek berikut:

  1. Menggabungkan indikator model statistik berdasarkan analisis tren dan korelasi untuk masuk;
  2. Tambahkan model pembelajaran mesin untuk menilai keandalan sinyal indikator;
  3. Mengoptimalkan manajemen uang untuk lebih otomatis dan cerdas stop loss dan mengambil keuntungan.

Ringkasan

Strategi ini menggabungkan beberapa indikator teknis untuk peningkatan akurasi dan mengontrol risiko melalui stop loss dan take profit, menjadikannya sistem trend yang dapat diandalkan.


/*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 banyak