Stratégie RSI MACD Golden Crossover à moyenne mobile


Date de création: 2024-01-05 16:11:23 Dernière modification: 2024-01-05 16:11:23
Copier: 0 Nombre de clics: 649
1
Suivre
1617
Abonnés

Stratégie RSI MACD Golden Crossover à moyenne mobile

Aperçu

Cette stratégie est une stratégie combinée utilisant le RSI, le MACD et les moyennes mobiles. Elle combine le signal de survente du RSI, la sensibilité du MACD et l’effet de l’indicateur des moyennes mobiles pour déterminer le moment de la mise en marché.

Principe de stratégie

La stratégie repose principalement sur les quatre critères suivants:

  1. la colonne du MACD est plus grande que le paramètre d’entrée multiple défini;
  2. Le RSI est supérieur à 50, ce qui indique un état d’achat excessif.
  3. L’EMA à court terme surpasse l’EMA à long terme pour former un croisement doré;
  4. Le prix de clôture est porté sur une EMA à long terme et est supérieur à l’EMA à long terme plus le stop loss ATR.

La stratégie se termine lorsque les deux conditions suivantes sont remplies:

  1. la colonne du MACD est inférieure au paramètre de stop loss défini;
  2. Les EMA à court terme sont plus faibles que les EMA à long terme.

Ainsi, les stratégies de retrait des bénéfices sont arrêtées en temps opportun pour éviter de grandes pertes.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’utilisation combinée des indicateurs, qui tirent parti des avantages de chaque indicateur, à savoir:

  1. L’application du RSI évite la perte de frais de transaction résultant d’une ouverture répétée de positions dans des conditions de choc.
  2. La sensibilité de l’indicateur en forme de colonne du MACD assure une saisie en temps opportun des points de basculement.
  3. Les moyennes mobiles filtrent le bruit des courts-circuits du marché et jouent leur rôle d’indicateur.

Les risques et les solutions

La stratégie présente deux principaux risques:

  1. Le plus grand risque pour les stratégies tendancielles telles que les moyennes mobiles est le plus grand risque de retrait causé par une inversion de la tendance. Les retraits peuvent être contrôlés activement en réduisant la taille de la position et les paramètres de stop-loss.

  2. L’optimisation des paramètres est plus difficile. La stratégie de combinaison de plusieurs indicateurs est plus difficile à définir et à optimiser. Des méthodes d’optimisation des paramètres telles que la méthode de progression par étapes et les algorithmes génétiques peuvent être utilisées pour déterminer les paramètres optimaux.

Optimiser les idées

Cette stratégie peut être améliorée de plusieurs façons:

  1. Ajout de conditions supplémentaires pour filtrer davantage les faux signaux. Par exemple, la combinaison d’indicateurs de volume de transactions, d’indicateurs de volatilité, etc.

  2. Testez les différences de paramètres entre les différentes variétés. Adaptez les paramètres pour s’adapter à plus de variétés.

  3. Optimiser les paramètres des moyennes mobiles. Tester les différences entre les paramètres de différentes longueurs.

  4. L’étude utilise des moyennes mobiles adaptatives qui changent en fonction des conditions du marché.

Résumer

Cette stratégie est généralement une version optimisée de la stratégie de suivi des moyennes mobiles et des tendances. Elle absorbe les avantages de plusieurs indicateurs principaux tels que le MACD, le RSI, et est unique dans la détermination du moment d’entrée sur le marché et de l’arrêt des pertes.

Code source de la stratégie
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Improved RSI MACD Strategy with Moving Averages", overlay=true)

// Inputs
src = input(close, title="RSI Source")

// RSI Settings
lengthRSI = input.int(14, minval=1)

// Stop Loss Settings
stopLossPct = input.float(0.09, title="Stop Loss Percentage")
takeProfitPct = input.float(0.15, title="Take Profit Percentage")

// MACD Settings
fastlen = input(12)
slowlen = input(26)
siglen = input(9)

// Strategy Settings
longEntry = input(0, title="Long Entry Level")
exitLevel = input(0, title="Exit Level")

// EMA Settings
emaShortLength = input(8, title="Short EMA Length")
emaLongLength = input(21, title="Long EMA Length")

atrMultiplier = input.float(2, title="atrMultiplier")
atrLength = input.int(20, title="atrLength")

// Indicators
rsi1 = ta.rsi(src, lengthRSI)
[macd, signal, hist] = ta.macd(src, fastlen, slowlen, siglen)

// Calculate EMAs
emaShort = ta.ema(src, emaShortLength)
emaLong = ta.ema(src, emaLongLength)

// Calculate ATR
atr = ta.atr(atrLength)

// Variables
var bool canEnterLong = na

// Strategy conditions
longCondition = hist > longEntry and rsi1 > 50 and emaShort > emaLong and close > emaLong + atrMultiplier * atr

// Entries and Exits
if hist < exitLevel and emaShort < emaLong
    canEnterLong := true
    strategy.close("Long")
    
// Store last entry price
var lastEntryPrice = float(na)
var lastEntryPrice2 = float(na)
if longCondition
    strategy.entry("Long", strategy.long)
    canEnterLong := false
    lastEntryPrice := close
if lastEntryPrice < close
    lastEntryPrice := close
// Calculate Stop Loss and Take Profit Levels based on last entry price
stopLossLevel = lastEntryPrice * (1 - stopLossPct)

// Check for stop loss and take profit levels and close position if triggered
if (strategy.position_size > 0)
    last_buy = strategy.opentrades[0]
    if (close < stopLossLevel)
        strategy.close("Long", comment="Stop Loss Triggered")
    if (close * (1 - takeProfitPct) > strategy.opentrades.entry_price(strategy.opentrades - 1) )
        strategy.close("Long", comment="Take Profit Triggered")