Stratégie de négociation améliorée des moyennes mobiles croisées Sakkoulas

Auteur:ChaoZhang est là., Date: 21 février 2024
Les étiquettes:

img

Résumé

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é.

La logique de la stratégie

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.

Analyse des avantages

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.

Analyse des risques

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.

Directions d'optimisation

La stratégie peut être améliorée dans les aspects suivants:

  1. Incorporer des indicateurs de modèle statistique basés sur l'analyse des tendances et des corrélations pour l'entrée;
  2. Ajouter un modèle d'apprentissage automatique pour juger de la fiabilité des signaux d'indicateur;
  3. Optimiser la gestion de l'argent pour un stop loss et un profit plus automatisés et intelligents.

Résumé

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)

Plus de