
La stratégie de retour de tendance RSI utilise le signal de retour de l’indicateur RSI pour déterminer le point de retour potentiel de la tendance et effectue plus de blanchiment. La stratégie, combinée à la reprise des prix et à la reprise du RSI, peut filtrer efficacement les faux signaux de retour.
La stratégie est basée sur la combinaison des signaux de revers de l’indicateur RSI et des signaux de revers des prix, principalement dans quatre situations:
Un revirement conventionnel de plusieurs têtes: lorsque le RSI forme un point bas plus élevé (signifiant que la tendance du RSI est inversée de haut en bas) et que le prix forme un point bas plus bas (signifiant que la tendance des prix est inversée de bas en haut), un signal de revirement conventionnel de plusieurs têtes est généré.
Reversion de plusieurs têtes cachées: lorsque le RSI forme un bas bas bas bas (signifiant que la tendance du RSI continue de monter vers le bas), mais que le prix forme un bas haut (signifiant que la tendance du prix est inversée de bas en haut), un signal de revers de plusieurs têtes cachées est généré.
Un revirement de sommet conventionnel: lorsque le RSI forme un sommet inférieur (signifiant que la tendance du RSI est inversée de bas en haut) et que le prix forme un sommet supérieur (signifiant que la tendance des prix est inversée de haut en bas), un signal de revirement de sommet conventionnel est généré.
Reversion de la courbe cachée: lorsque le RSI forme un sommet plus élevé (signifiant la poursuite de la tendance du RSI vers le bas vers le haut), mais que le prix forme un sommet plus bas (signifiant la reprise de la tendance des prix vers le haut vers le bas), un signal de revers de la courbe cachée est généré.
Cela permet d’émettre des signaux de négociation combinant une inversion de l’indicateur RSI et une inversion de prix simultanément, ce qui permet d’éviter efficacement les faux signaux causés par l’indicateur RSI seul ou par une inversion de prix seule, renforçant la stabilité de la stratégie.
Les avantages d’une stratégie d’inversion de tendance RSI sont les suivants:
L’indicateur RSI, combiné à un signal de revers de prix, peut filtrer efficacement les faux signaux de revers et améliorer la qualité du signal. L’indicateur RSI seul ne peut pas être entièrement fiable pour déterminer le point de revers.
Identifier les formes de tête cachée et les formes de tête cachée, qui sont souvent le signe d’une tendance à la hausse des prix, afin de saisir les opportunités de tendance à l’avance.
Les paramètres RSI et les périodes de révision sont personnalisables, adaptés aux différents marchés et flexibles.
Il permet de visualiser la forme et le signal des indicateurs et d’évaluer intuitivement l’état du marché.
La logique de la stratégie est simple et claire, facile à comprendre, adaptée aux stratégies de trading quantitatif.
Les stratégies de retour de tendance du RSI comportent également les risques suivants:
L’inversion du RSI combinée à l’inversion des prix permet de filtrer de nombreux signaux faux, mais n’exclut pas la possibilité d’erreurs de jugement. Après tout, l’indicateur est une mesure statistique des prix et ne peut pas être entièrement fiable.
Il est difficile d’identifier les formes cachées à plusieurs têtes et cachées à la tête vide, et il est possible de rater ces opportunités, ce qui nécessite un certain jugement d’expérience.
Une mauvaise configuration des paramètres de la période de révision peut entraîner un retard de jugement ou un retard de jugement. Les paramètres de la période de révision doivent être ajustés selon les marchés.
Il est nécessaire de s’assurer que les stratégies de stop loss sont utilisées de manière cohérente pour éviter que la baisse continue ne provoque une extension des pertes après le renversement de la tête vide.
Le risque peut être maîtrisé par des méthodes telles que l’optimisation des paramètres, le stop strict et la gestion appropriée de l’inversion cachée.
Les stratégies d’inversion de tendance RSI peuvent être optimisées dans les domaines suivants:
Ajuster les paramètres du RSI pour tester la sensibilité des différents marchés aux paramètres du cycle du RSI afin de trouver les paramètres optimaux.
Optimiser les paramètres de retour en arrière, en équilibrant les besoins de capture des points de retournement et de prévention des faux signaux.
L’augmentation du volume des transactions par l’analyse statistique, par exemple une réduction importante du stock entraînant un renversement des prix, dévie de l’identification.
Il peut être combiné avec d’autres signaux d’indicateurs, tels que MACD, les bandes de Brin, etc., pour améliorer l’exactitude des jugements.
Augmenter les stratégies de stop-loss pour éviter l’expansion des pertes. Vous pouvez définir des stop-loss après que le prix a atteint un nouveau sommet / nouveau bas.
Modifier la logique de la stratégie en fonction des résultats de la rétroanalyse, améliorer les facteurs de profit. Par exemple, ajuster la relation logique des conditions d’ouverture de position (avec ou sans) et rechercher la meilleure stratégie de négociation.
La stratégie de retour de tendance RSI utilise efficacement les capacités de jugement de tendance du RSI, tout en combinant les signaux de faux filtrage de l’évolution des prix. La logique de la stratégie est simple et claire, facile à mettre en œuvre.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title="Divergence Indicator", format=format.price)
strategy(title="RSI Divergence Indicator", overlay=false,pyramiding=1, default_qty_value=2, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)
len = input(title="RSI Period", minval=1, defval=5)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)
bearColor = color.purple
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)
osc = rsi(src, len)
plot(osc, title="RSI", linewidth=2, color=#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)
plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
bars = barssince(cond == true)
rangeLower <= bars and bars <= rangeUpper
//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)
bullCond = plotBull and priceLL and oscHL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor),
transp=0
)
plotshape(
bullCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor),
transp=0
)
plotshape(
hiddenBullCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
longCondition=bullCond or hiddenBullCond
//? osc[lbR] : na
//hiddenBullCond
strategy.entry(id="RSIDivLE", long=true, when=longCondition)
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)
bearCond = plotBear and priceHH and oscLH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor),
transp=0
)
plotshape(
bearCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)
hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor),
transp=0
)
plotshape(
hiddenBearCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
longCloseCondition=crossover(osc,75) or bearCond
strategy.close(id="RSIDivLE", when=longCloseCondition)