Stratégie de l'indicateur de volume relatif

Auteur:ChaoZhang est là., Date: 2023-12-20 15:12:56 Je suis désolé
Les étiquettes:

img

Vue d'ensemble de la stratégie

Il s'agit d'une stratégie de trading quantitative basée sur l'indice de force relative (RSI) et l'indicateur de volume relatif.

La logique de la stratégie

La stratégie comprend deux indicateurs: l'indice de force relative (RSI) et le volume relatif (RVOL). RSI juge les niveaux de surachat / survente. RSI inférieur à 30 suggère survente et RSI supérieur à 70 suggère surachat. RVOL capte les augmentations de volume par rapport à la moyenne récente. Lorsque RVOL est au-dessus d'un seuil, il indique une forte pression d'achat / vente.

La logique de la stratégie est la suivante: aller long lorsque le RSI montre un excédent d'achat (au-dessus du seuil) ET RVOL monte; aller court lorsque le RSI montre un excédent de vente (au-dessous du seuil) ET RVOL monte.

Analyse des avantages

Le plus grand avantage de cette stratégie est de localiser la partie la plus agressive d'une tendance en combinant le signal de surachat/survente du RSI et le signal de volume relatif élevé.

Comparée à l'utilisation de l'indice RSI seul, cette stratégie intègre des informations sur le volume pour éviter d'entrer sur le marché avec une liquidité insuffisante.

Analyse des risques

Le plus grand risque de cette stratégie est la possibilité que le RSI donne de faux signaux. Lorsque le marché varie, le RSI peut fréquemment traverser les zones OB / OS et générer de faux signaux.

Pour atténuer les risques, les paramètres de l'ISR peuvent être ajustés, comme l'augmentation de la période de moyenne ou le relèvement du seuil de RVOL.

Directions d'optimisation

Les optimisations potentielles comprennent:

  1. ajouter des indicateurs de liquidité pour éviter les instruments illiquides;

  2. ajouter des métriques de volatilité aux transactions uniquement lorsque la volatilité augmente;

  3. Mettre en place des mécanismes pour éviter les fausses fuites, par exemple le volume de surveillance;

  4. Rendre le stop loss plus strict, afin de limiter les retraits;

  5. La régulation des paramètres est basée sur des tests antérieurs pour trouver les paramètres optimaux.

Conclusion

La stratégie de volume relatif parvient à localiser des points de volume en hausse dans les zones OB / OS en incorporant RSI et volume relatif, ce qui en fait une stratégie efficace de capture de tendance.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades
//This script is a basic concept to catch breakout moves utilising a spike in relative volume when the RSI is high (for longs) or when the RSI is low (for shorts).
//Drawdown is typically low as it exits out of the trade once the RSI returns back to "normal levels".

//@version=4
strategy(title="Relative Volume & RSI Pop", shorttitle="VOL & RSI Pop", overlay=false, precision=2, margin_long=100, margin_short=100)

//RSI
RSIlength = input(14, title="RSI Period")
RSItop = input(70, title="RSI buy", minval= 69, maxval=100)
RSIbottom = input(35, title="RSI short", minval= 0, maxval=35)
price = close
vrsi = rsi(price, RSIlength)
RSIco = crossover(vrsi, RSItop)
RSIcu = crossunder(vrsi, RSIbottom)
plot(vrsi, "RSI", color=color.purple)
band1 = hline(70, "Upper Band", color=#C0C0C0)
bandm = hline(50, "Middle Band", color=color.new(#C0C0C0, 50))
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=color.purple, transp=90, title="Background")

//RELATIVE VOLUME
RVOLlen = input(14, minval=1, title="RV Period")
av = sma(volume, RVOLlen)
RVOL = volume / av
RVOLthreshold = input(1.5,title="RV Threshold", minval=0.5, maxval=10)

//TRADE TRIGGERS
LongCondition = RSIco and RVOL > RVOLthreshold
CloseLong = vrsi < 69

ShortCondition = RSIcu and RVOL > RVOLthreshold
CloseShort = vrsi > 35

if (LongCondition)
    strategy.entry("Long", strategy.long)
    
strategy.close("Long", when = CloseLong)    

if (ShortCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when = CloseShort)   


Plus de