
La stratégie de confirmation de la dispersion utilise le signal de dispersion double de l’indicateur RSI et de l’indicateur Awesome Oscillator pour déterminer un moment d’entrée plus fiable. Lorsque les prix forment un nouveau haut ou une nouvelle basse, et que l’indicateur RSI et AO forment un sommet ou une basse inversée, c’est un signal de dispersion. Cette stratégie nécessite que les deux indicateurs soient diffusés simultanément, afin de filtrer certains faux signaux et d’améliorer l’efficacité de l’entrée sur le marché.
Cette stratégie est basée sur la variation entre les fluctuations des prix et les valeurs des indicateurs RSI et AO pour déterminer les points d’achat et de vente. La méthode de détermination est la suivante:
Les prix ont formé de nouveaux bas plus récents, tandis que le RSI et l’AO ont formé de nouveaux hauts plus récents, c’est-à-dire que les prix ont baissé tandis que le RSI et l’AO ont augmenté, constituant un signal de dispersion de plusieurs cheveux.
La diffusion de la tête nue: le prix forme un nouveau sommet plus récent, tandis que le RSI et l’AO forment un nouveau bas plus récent, c’est-à-dire que le prix augmente et le RSI et l’AO baissent, constituant un signal de diffusion de la tête nue.
La stratégie exige que les deux indicateurs satisfassent aux conditions de diffusion en même temps, afin d’éviter les signaux erronés causés par la diffusion de faux cheveux d’un seul indicateur. Lorsque le signal de diffusion est établi, un stop loss est défini à proximité de la voie de descente ou de la voie de montée avec un stop loss spécifique au-dessus de la voie de descente ou au-dessous de la voie de montée.
Cette stratégie présente les avantages suivants:
Le filtrage à deux indicateurs augmente la fiabilité du signal et évite la diffusion d’un seul indicateur.
Le risque d’annulation est faible si l’indicateur est utilisé pour déterminer les points de vente et d’achat.
Les signaux diffusés ont une bonne continuité et une grande marge de profit.
Il est possible de mettre un stop loss à proximité d’un support ou d’une résistance clé pour réduire la probabilité de pertes massives.
Cette stratégie comporte aussi des risques:
Les conditions de double filtrage ont été créées en moins de temps et peuvent avoir fait passer une partie des opportunités de négociation.
La diffusion n’est pas un signal fiable à 100% et dans certains cas, il peut y avoir des pertes.
Une mauvaise configuration des paramètres de la courroie de brim peut entraîner un arrêt trop lâche ou trop étroit.
Cette stratégie peut être optimisée dans les domaines suivants:
Ajustez les paramètres de périodicité des jugements de diffusion et optimisez les paramètres des signaux de diffusion.
Testez différents types de stop, tels que le trailing stop ou le stop dynamique.
L’ajout de filtres sur d’autres indicateurs tels que le volume des transactions améliore encore la fiabilité du signal.
La qualité des signaux diffusés doit être évaluée en tenant compte de la tendance, de la résistance de soutien et d’autres facteurs.
La confirmation de la stratégie de dispersion par le biais du double signal de dispersion du RSI et de l’AO pour déterminer le moment de la mise sur le marché, le double mécanisme de filtrage réduit efficacement les faux signaux et améliore la probabilité de profit. La stratégie a également un arrêt de perte au niveau clé pour contrôler les risques et présente de meilleures caractéristiques de gain de risque.
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //
src = close
// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level", defval=70)
os = input(title="Oversold Level", defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods
//Awesome//
AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)
// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)
// END SETUP //
////////////////////////
// BULLISH DIVERGENCE //
////////////////////////
// define lower low in price //
srcLL = src > lowest(src,x) and lowest(src,x)<lowest(src,z)[x]
// define higher low in rsi //
rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os
// define higher low in AO //
aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0
BullishDiv = srcLL and rsiHL and aoHL
////////////////////////
// BEARISH DIVERGENCE //
////////////////////////
// define higher high in price //
srcHH = src < highest(src,x) and highest(src,x)>highest(src,z)[x]
// define lower high in RSI //
rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob
// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0
BearishDiv = srcHH and rsiLH and aoLH
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
if (BullishDiv)
strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
strategy.cancel(id="DivLE")
if (crossover(close, lower))
strategy.close("DivSE")
if (crossunder(close, upper))
strategy.close("DivLE")
if (BearishDiv)
strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
strategy.cancel(id="DivSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)