Stratégie de RSI stochastique pour le trading de crypto-monnaie

Auteur:ChaoZhang est là., Date: 15 décembre 2023
Les étiquettes:

img

I. Vue d'ensemble de la stratégie

Cette stratégie est appelée Stochastique RSI Stratégie pour le trading de crypto-monnaie. Elle combine l'indice de force relative (RSI) et les indicateurs Stochastique RSI pour identifier les signaux d'achat et de vente pour les crypto-monnaies.

L'idée principale derrière la stratégie est: Calculer d'abord la valeur du RSI, puis construire l'indicateur stochastique RSI basé sur le RSI, à savoir les valeurs K et D. Lorsque la valeur K dépasse la valeur D, un signal d'achat est généré. Lorsque la valeur K dépasse la valeur D, un signal de vente est généré. Pour filtrer les faux signaux, la stratégie introduit également l'indice de taux de changement (RVI) et sa ligne moyenne mobile pour confirmation.

II. Principes détaillés de la stratégie

  1. Calculer la valeur du RSI à 14 périodes.

  2. Construire un indicateur stochastique RSI à 14 périodes basé sur le RSI pour obtenir les valeurs K et D (D est la moyenne mobile à 3 périodes de K).

  3. Calculer le RVI à 5 périodes et sa ligne de signal (moyenne mobile du RVI).

  4. Lorsque K traverse au-dessus de D, si RVI > Signal Line et la dernière périodes RVI < Signal Line, un signal d'achat est généré.

  5. Ouvrir des positions longues ou courtes en fonction des signaux générés.

III. Analyse des avantages

  1. La combinaison du RSI stochastique et de la double confirmation du RVI peut filtrer efficacement les faux signaux.

  2. L'indicateur RVI peut refléter des conditions de surachat/survente à court terme et évite d'ouvrir des positions à des points extrêmes.

  3. L'indicateur RSI stochastique identifie les zones de surachat/survente. Il utilise la croix dorée/mort de l'indicateur KDJ pour déterminer les points d'entrée.

  4. Les résultats des tests en arrière-plan montrent que cette stratégie a obtenu de bonnes performances sur certaines paires de crypto-monnaies (telles que FCT/BTC).

IV. Analyse des risques

  1. La mise en place incorrecte d'un stop loss de stratégies de stop trailing similaires peut entraîner un arrêt prématuré.

  2. Une fréquence de signal élevée peut entraîner des frais de négociation excessifs qui doivent être pris en considération.

  3. Les indicateurs KDJ et RVI peuvent générer de faux signaux, entraînant des pertes inutiles.

  4. Les paramètres de stratégie doivent être optimisés pour les différentes paires de négociation.

V. Directions d'optimisation

  1. L'ATR peut être référencé pour définir des niveaux de stop loss.

  2. Optimiser les paramètres RVI et les paramètres RSI stochastiques pour des signaux plus propres.

  3. Ajouter un contrôle de la taille des transactions pour éviter les commandes uniques trop importantes.

  4. Ajouter des mécanismes de filtrage pour éviter d'ouvrir des positions à des niveaux défavorables.

  5. Testez sur différentes paires de crypto-monnaie pour trouver la meilleure solution.

Résumé de la stratégie

Cette stratégie construit d'abord un RSI stochastique basé sur l'indicateur RSI, puis utilise l'indicateur RVI pour la confirmation, afin de détecter les conditions de surachat/survente à court terme et les positions ouvertes aux points tournants. L'avantage est que la double confirmation peut filtrer les faux signaux. L'inconvénient est le risque de surajustement des paramètres.


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

//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
D = sma(K, smoothD)


rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")

//plot(K,  title="K")
//plot(D,  title="D")
Dn = K <= D  and K > 70 and rvi <= sig  and rvi[1] >= sig[1]
Up= K >= D  and K < 30 and rvi >= sig  and rvi[1] <= sig[1]
ARROW =  Up - Dn
plotarrow(ARROW, title="Down Arrow",  colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime,  transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)


Plus de