Stratégie VRSI vs MARSI


Date de création: 2024-02-02 17:21:09 Dernière modification: 2024-02-02 17:21:09
Copier: 0 Nombre de clics: 970
1
Suivre
1617
Abonnés

Stratégie VRSI vs MARSI

Aperçu

La stratégie VRSI et MARSI utilisent les moyennes mobiles pour lisser l’indicateur RSI, réalisant une stratégie à deux indicateurs. Cette stratégie utilise à la fois l’indicateur RSI du prix et l’indicateur RSI du volume de transactions, combiné à sa moyenne mobile pour générer un signal de transaction.

Principe de stratégie

La stratégie commence par calculer le RSI à 9 cycles pour le prix (RSI) et le RSI à 9 cycles pour le volume (VRSI). Ensuite, elle calcule une moyenne mobile simple à 5 cycles pour les deux RSI (MARSI et MAVRSI).

Les signaux de négociation sont générés en fonction de l’indicateur MARSI. En outre, l’indicateur MAVRSI est utilisé pour juger de la force du marché et des changements de tendance possibles.

Par exemple, dans un mouvement à plusieurs têtes, si le prix continue d’augmenter mais que le volume de transactions diminue, cela indique que la force des têtes peut s’affaiblir, il faut se préparer à un placement à zéro. Inversement, dans un mouvement à zéro, si le prix continue de baisser mais que le volume de transactions augmente, ce qui indique une augmentation de la force des têtes vides, il est possible de continuer à détenir des billets.

Analyse des avantages

Cette stratégie, combinée à des moyennes mobiles de deux indices RSI, permet de saisir efficacement les tendances, tout en utilisant les variations du volume de transactions pour juger de la force du marché et éviter d’être piégé. Comparée à un seul indicateur RSI, cette stratégie permet de saisir plus précisément le rythme du marché.

L’utilisation d’une moyenne mobile permet également de filtrer une partie du bruit, ce qui rend le signal plus fiable. De plus, le réglage de différents paramètres tels que la période RSI et la période de la moyenne mobile permet également d’optimiser la stratégie.

Analyse des risques

Le risque le plus important de cette stratégie est qu’il peut y avoir une divergence entre les deux indicateurs. Lorsque la divergence entre le prix et le volume de transactions se produit, les signaux de négociation deviennent moins fiables. Il est alors nécessaire de juger manuellement la relation entre les indicateurs.

Un autre risque est la facilité d’être piégé lors d’une correction. Lorsque les prix sont en correction horizontale, l’indicateur RSI est susceptible de se déplacer de haut en bas, déclenchant des signaux de négociation inutiles. Il faut alors ajuster les paramètres ou juger de la position absolue de l’indicateur.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Ajustez les paramètres de l’indicateur RSI et de la moyenne mobile pour trouver la combinaison optimale

  2. Ajout d’autres jugements conditionnels lors de la génération de signaux de négociation, par exemple, un signal de revers déclenché par l’indicateur RSI dans une zone de survente est plus fiable

  3. Augmentation de la stratégie de stop loss, mise en place d’un stop loss mobile ou d’un stop loss à l’indicateur

  4. Combiné avec d’autres indicateurs, tels que la forme de la ligne K, l’indicateur de volatilité, etc. pour éviter d’être piégé

Résumer

La stratégie VRSI et MARSI combinent avec succès les indicateurs RSI de prix et de volume, et la comparaison et le jugement entre les deux indicateurs permettent d’améliorer l’exactitude du signal et la rentabilité. Des paramètres optimisés et une stratégie de stop-loss permettent également un fonctionnement stable.

Code source de la stratégie
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("VRSI-MARSI Strategy", shorttitle="(V/MA)RSI Str.", overlay=false, default_qty_type=strategy.percent_of_equity, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0, default_qty_value=5, initial_capital=100)

// RSI(close, ="RSI") and RSI(Volume, ="VRSI")
src = close, len = input(9, minval=1, title="Length RSI")
src2 = volume, len2 = input(9, minval=1, title="Length VRSI)")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
up2 = rma(max(change(src2), 0), len2)
down2 = rma(-min(change(src2), 0), len2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

// MA(=Moving Average) of RSI(close, ="MARSI") and RSI(Volume, ="MAVRSI")
len3 = input(5, minval=1, title="Length MARSI")
marsi = sma(rsi, len3)
len4 = input(5, minval=1, title="Length MAVRSI")
marsi2 = sma(rsi2, len4)

// Plot: 
// Default plot of RSI and VRSI: not visible but can be made visible
// Default plot MARSI and MAVRSI: visible
p1 = plot(rsi, linewidth=2, transp=100, color=color.yellow, title="RSI")
p2 = plot(rsi2, linewidth=2, transp=100, color=color.orange, title="VRSI")
m1 = plot(marsi, color=(marsi>=0 ? (marsi[1] < marsi ? color.yellow : color.blue) : (marsi[1] < marsi ? color.yellow : color.blue) ), linewidth = 2, transp = 0, title="MARSI")
m2 = plot(marsi2, color=color.orange, linewidth = 2, transp = 0, title="MAVRSI")

// Color fill:
// Default color fill "RSI - VRSI": not visible but can be made visible
// Default color fill "MARSI - MAVRSI": visible
fill(p1,p2, color = rsi>rsi2 ? color.green : color.red, transp=100, title="BG RSI-VRSI")
fill(m1,m2, color = marsi>marsi2 ? color.green : color.red, transp=75, title="BG MARSI-MAVRSI")

// Lines:
h2=hline(20, color=color.green, linestyle=hline.style_dotted, title="Extreme Oversold Rsi")
h3=hline(30, color=color.black, linestyle=hline.style_dotted, title="Oversold Rsi")
h5=hline(50, color=color.yellow, linestyle=hline.style_dashed, title="Middle line")
h7=hline(70, color=color.black, linestyle=hline.style_dotted, title="Overbought Rsi")
h8=hline(80, color=color.red, linestyle=hline.style_dotted, title="Extreme Overbought Rsi")

// Color fill between Lines "20-30" and "70-80" represents the crossing of "MARSI" and "MAVRSI":
fill(h2, h3, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="20-30 BG color X MARSI/MAVRSI")
fill(h7, h8, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="70-80 BG color X MARSI/MAVRSI")

///Long Entry///
longCondition = marsi > marsi[1] 
if (longCondition)
    strategy.entry("Long", strategy.long)

///Long exit///
Xlong =input(true)
closeConditionLong = marsi < marsi[1] and Xlong
if (closeConditionLong)
    strategy.close("Long")

///Short Entry///
shortCondition = marsi < marsi[1] 
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
///Short exit///
Xshort =input(true)
closeConditionShort = marsi > marsi[1] and Xshort
if (closeConditionShort)
    strategy.close("Short")