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.
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.
Strategi ini menggabungkan beberapa penunjuk untuk menilai status pasaran, mengelakkan kesilapan dengan metrik tunggal dan meningkatkan ketepatan.
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.
Strategi ini boleh ditingkatkan dalam aspek berikut:
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)