Indicateur de dynamique RSI Stratégie de négociation d'inversion

Auteur:ChaoZhang est là., Date: 2024-01-03 12:09:48 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie calcule d'abord l'ADX et la SMA sur des délais plus longs pour identifier la direction et les changements de tendance.

La logique de la stratégie

  1. L'ADX sur des délais plus longs évalue la force de la tendance.

  2. L'AEM sur des délais plus longs juge la direction de la tendance.

  3. L'indicateur de volatilité sur les délais inférieurs juge les conditions de surachat et de survente.

  4. Lorsque l'ADX augmente, que la SMA augmente et que le RSI est suracheté sur une période plus courte, il est considéré que la tendance haussière se renforce.

  5. Lorsque l'ADX augmente, que la SMA diminue et que le RSI est survendu sur une période plus courte, il est considéré que la tendance à la baisse se renforce.

Analyse des avantages

  1. Combine le jugement de tendance et le trading de renversement, peut saisir les opportunités de renversement dans les grandes tendances.

  2. Utilise des indicateurs à travers les délais, améliore la fiabilité des signaux.

  3. La stratégie RSI est simple à comprendre et à mettre en œuvre.

Analyse des risques

  1. Le potentiel de faux signaux RSI, causant des pertes de transactions.

  2. Le jugement de la tendance du cycle majeur peut être erroné, ce qui rend la stratégie inappropriée pour les conditions du marché.

  3. Une fréquence de négociation potentiellement élevée, affectant la rentabilité en raison des coûts de transaction.

Directions d'optimisation

  1. Testez plus de combinaisons de paramètres pour trouver la correspondance optimale entre les paramètres RSI et ADX, SMA.

  2. Ajouter un mécanisme de stop loss pour contrôler les pertes d'une seule transaction.

  3. Considérez l'indicateur de volatilité pour réduire la taille de la position lorsque la volatilité est faible.

  4. Optimiser les prix d'entrée et de sortie spécifiques, par exemple en entrant à découvert après avoir franchi les barres précédentes.

Conclusion

Cette stratégie combine le jugement de tendance et les signaux d'inversion pour trouver des renversements locaux dans les principales tendances. Par rapport à l'utilisation uniquement du RSI, elle est plus fiable et évite d'être piégée.


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RSI scalping", overlay=true)

CustSession 	= input(defval=true,title= "Custom Resolution / TF ? ",type=bool)
SessionTF0	= input(title="Custom Resolution / TF", defval="180")
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
length = input(7, title= "RSI length")
overSold = input( 28, title= "RSI oversold" )
overBought = input( 68, title= "RSI overbought" )

RSI = rsi(close, 7)

res		=	CustSession ? SessionTF0 : period

o = request.security(syminfo.tickerid, res, open)
c = request.security(syminfo.tickerid, res, close)
l = request.security(syminfo.tickerid, res, low)
h = request.security(syminfo.tickerid, res, high)

 // ADX higher time frame
dirmov(len) =>
	up = change(h)
	down = -change(l)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truer = request.security(syminfo.tickerid, res, tr)
	truerange = rma(truer, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

// SMA higher time frame
len = input(20, minval=1, title="SMA HTF Length")
smma = 0.0
smma := na(smma[1]) ? sma(c, len) : (smma[1] * (len - 1) + c) / len

ADXrising = (sig > sig[1]) and (sig[1] > sig[2]) and (sig[2]  > sig[3]) and (sig > 15)
SMAdrop= (smma < smma[1]) and (smma[1] < smma[2]) and (smma[2] < smma[3])
SMArising = (smma > smma[1]) and (smma[1] > smma[2]) and (smma[2] > smma[3])
longCondition = crossover(RSI, overBought) and ADXrising and SMArising
shortCondition = crossunder(RSI, overSold) and SMAdrop and ADXrising 

if (longCondition)
    strategy.entry("Long entry", strategy.long)

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)

Plus de