Stratégie d'alarme HistoAlert à double inversion de l'indicateur RSI

Auteur:ChaoZhang est là., Date: 2024-01-04 17:17:24 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie HistoAlert du RSI à double inversion génère des signaux de trading plus précis en combinant la stratégie 123 Reversion et la stratégie RSI HistoAlert.

La logique de la stratégie

123 Stratégie de renversement

La stratégie 123 Reversion est basée sur l'hypothèse que: les signaux d'inversion des prix apparaissent souvent 2 jours avant l'inversion réelle des prix.

Les règles spécifiques sont les suivantes:

  • Signaux d' achat: clôture précédente < 2 jours auparavant CLOSE ET clôture actuelle > clôture précédente CLOSE ET ligne K lente de 9 jours inférieure à 50
  • Signal de vente: clôture précédente > clôture il y a 2 jours ET clôture actuelle < clôture précédente ET K-line rapide de 9 jours supérieure à 50

Il utilise la relation de prix 2 jours avant l'inversion pour juger des points d'inversion potentiels.

RSI Stratégie d'alerte à l'histo

La stratégie HistoAlert du RSI modifie l'indicateur RSI:

  • Étalonner les valeurs de l'indicateur RSI à -100 à 100
  • Générer des signaux de négociation lorsque le RSI dépasse les lignes d'alerte d'achat/de vente prédéfinies

Il utilise la valeur absolue du RSI pour indiquer les états de surachat/survente et déclenche des signaux.

Les avantages

Cette stratégie combine deux idées stratégiques différentes pour compléter les points forts et générer des signaux plus fiables:

  1. 123 La stratégie d'inversion est bonne pour capturer les points d'inversion des prix. La stratégie RSI HistoAlert est bonne pour capturer les points de surachat/survente.
  2. Les deux stratégies utilisent des indicateurs d'entrée différents, ce qui réduit la probabilité de faux signaux et améliore la fiabilité.
  3. Les deux stratégies disposent elles-mêmes d'un espace d'optimisation.

Les risques

Les principaux risques sont les suivants:

  1. L'inversion des prix n'est pas garantie. Les prix peuvent poursuivre la tendance même si les règles du signal d'inversion sont respectées.
  2. L'indicateur RSI peut avoir un taux élevé de faux signaux.
  3. Les deux stratégies peuvent émettre des signaux erronés simultanément.

Les solutions sont les suivantes:

  1. Paramètres d'inversion afin d'assurer des signaux uniquement sur des points d'inversion à forte probabilité.
  2. Ajustez les positions de la ligne d'alerte RSI HistoAlert pour diminuer les taux de faux signaux.
  3. Ajouter d'autres confirmations d'indicateurs pour éviter des risques excessifs de mauvaise direction.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Testez différentes combinaisons de paramètres des deux stratégies pour trouver des valeurs optimales.
  2. Introduire plus de facteurs comme MA, des indicateurs de volatilité pour la vérification multifactorielle pour filtrer plus de faux signaux.
  3. Testez différents schémas de périodes de détention. La stratégie actuelle utilise la détention d'élan. La tendance suivante la détention peut être évaluée.
  4. Des paramètres distincts pour le long terme et le court terme.

Conclusion

La stratégie HistoAlert du double renversement du RSI combine des stratégies d'inversion de prix et de jugement suracheté / survendu pour des signaux de trading plus fiables par rapport à l'utilisation d'une seule stratégie.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This simple indicator modified RSI
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify) =>
    pos = 0.0
    xPrice = close
    RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
    pos:= iff(RSIMain > BuyAlertLevel, 1,
    	     iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & RSI HistoAlert", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI HistoAlert ----")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_Hist = RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify)
pos = iff(posReversal123 == 1 and posRSI_Hist == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_Hist == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Plus de