La stratégie de croisement des moyennes mobiles axiales du RSI génère des signaux de trading en calculant l'indicateur du RSI et sa ligne moyenne mobile simple et en observant des croix dorées et des croix mortes entre les deux.
La stratégie calcule d'abord l'indicateur RSI de 14 jours, suivi de la ligne moyenne mobile simple de 8 jours de l'indicateur RSI. Un signal d'achat est généré lorsque l'indicateur RSI franchit sa ligne moyenne mobile, tandis qu'un signal de vente est généré lorsque l'indicateur RSI franchit sa ligne moyenne mobile.
Dans le même temps, la stratégie ajoute des bandes de Bollinger pour déterminer si la ligne de la moyenne mobile axiale du RSI est relativement surpeuplée en calculant l'écart type, évitant ainsi d'acheter des pics et de vendre des fonds.
La stratégie de croisement des moyennes mobiles axiales du RSI combine l'indicateur de tendance RSI et la ligne moyenne mobile de l'indicateur suivant la courbe, ce qui peut déterminer efficacement les tendances et le hasard du marché.
Les bandes de Bollinger ajoutées dans cette stratégie utilisent le principe de l'écart type pour ajuster automatiquement la largeur des pistes supérieure et inférieure, empêchant ainsi efficacement les signaux de trading erronés.
Le plus grand risque de la stratégie de croisement des moyennes mobiles axiales du RSI est le retard de l'indicateur RSI et des lignes moyennes mobiles elles-mêmes.
Un autre risque majeur est l'erreur des indicateurs lorsque la tendance du marché passe de hausse à baisse ou vice versa, tandis que les indicateurs RSI et MA ne réagissent pas à temps, ce qui entraîne une perte de transactions.
Les solutions comprennent l'ajustement approprié des paramètres RSI, le raccourcissement des périodes de MA, l'ajout d'indicateurs de tendance pour faciliter le jugement et l'élargissement approprié de la plage de stop loss.
La stratégie de croisement des moyennes mobiles axiales du RSI peut être optimisée dans les aspects suivants:
Optimiser les paramètres de l'indice de résistance: ajuster la longueur de l'indice de résistance pour équilibrer la sensibilité et la stabilité
Optimiser les paramètres MA: ajuster les paramètres de type MA et de période pour optimiser le suivi de la tendance
Ajouter des mécanismes d'arrêt des pertes: régler les pertes en mouvement ou en temps d'arrêt pour contrôler les pertes uniques
Incorporer des indicateurs de tendance: ajouter MACD, KDJ, etc. pour éviter les erreurs de jugement de renversement
Vérification sur plusieurs délais: utiliser des délais plus longs pour déterminer les tendances afin d'éviter d'être pris au piège
La stratégie de croisement des moyennes mobiles axiales du RSI est une stratégie de trading quantitative globale mature. Elle combine les avantages de plusieurs indicateurs techniques et peut capturer les mouvements du marché grand public grâce à l'ajustement des paramètres et à l'optimisation multidimensionnelle.
/*backtest start: 2022-11-16 00:00:00 end: 2023-11-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Copyright (c) 2020-present, Alex Orekhov (everget) // Corrected Moving Average script may be freely distributed under the terms of the GPL-3.0 license. strategy('rsisma', shorttitle='rsisma') ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "Bollinger Bands" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings") maLengthInput = input.int(14, title="MA Length", group="MA Settings") bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings") up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput) down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) rsiMA = ma(rsi, maLengthInput, maTypeInput) isBB = maTypeInput == "Bollinger Bands" plot(rsi, "RSI", color=#7E57C2) plot(rsiMA, "RSI-based MA", color=color.blue) rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86) hline(50, "RSI Middle Band", color=color.new(#787B86, 50)) rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86) fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill") bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green) bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green) fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill") long = ta.crossover(rsi, rsiMA) short = ta.crossunder(rsi, rsiMA) if long strategy.entry("long", strategy.long) if short strategy.close("long", comment = "long TP") // long1 = close * 9 // long2 = long1 / 100 // long3 = long2 + close //plot(long3,color=color.blue) // if short // strategy.entry("short", strategy.short) // if long // strategy.close("short", comment = "short TP")