Cette stratégie de trading combine la divergence de convergence moyenne mobile (MACD), l'indice de force relative (RSI), la moyenne mobile simple (SMA), l'oscillateur stochastique et les bandes de Bollinger pour identifier les points d'entrée et de sortie du marché.
Il devient long lorsque la ligne MACD DIF franchit la ligne DEA et pénètre dans la zone haussière; ou lorsque le RSI tombe en dessous de 30 en territoire de survente; ou lorsque les lignes stochastiques %K et %D tombent en dessous de 20 indiquant un statut de survente.
Au contraire, il devient court lorsque la ligne MACD DIF traverse le niveau inférieur à la ligne DEA pour entrer dans la zone baissière; ou lorsque le RSI dépasse 70 pour entrer dans la zone de surachat; ou lorsque les lignes stochastiques %K et %D dépassent 80 pour indiquer une situation de surachat.
Le stop loss est fixé sur la base de l'ATR multiplié par un coefficient.
Cette stratégie combine plusieurs indicateurs pour juger de l'état du marché, en évitant les erreurs par une seule mesure et en améliorant la précision.
Les indicateurs techniques sont calculés à partir de données historiques et ne peuvent pas prédire les prix futurs, ce qui entraîne certains retards. La combinaison de plusieurs indicateurs peut également introduire de faux signaux.
Pour résoudre le problème du décalage des indicateurs, les paramètres peuvent être ajustés pour raccourcir le cycle de calcul. Pour les faux signaux, des indicateurs auxiliaires supplémentaires peuvent être ajoutés pour la confirmation.
La stratégie peut être améliorée dans les aspects suivants:
Cette stratégie combine de multiples indicateurs techniques pour une meilleure précision et contrôle le risque via le stop loss et le take profit, ce qui en fait un système fiable de suivi des tendances.
/*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)