Stratégie combinée de l'inversion et de l'indice de risque lissé

Auteur:ChaoZhang est là., Date: 2023-10-16 16h27: 32
Les étiquettes:

img

Résumé

Cette stratégie combine le modèle d'inversion 123 et l'indicateur RSI lissé pour capturer plus précisément les points d'inversion de tendance pour un taux de gain plus élevé.

La logique de la stratégie

  1. Identification du modèle de renversement: signal de renversement inférieur lorsque les prix de clôture des deux jours précédents forment un point bas-haut et que la clôture du troisième jour est supérieure à celle du jour précédent.

  2. Indicateur RSI lissé: L'indicateur RSI lissé réduit le décalage de l'indicateur RSI normal en utilisant une moyenne mobile pondérée.

  3. Signal de stratégie: Le signal de trading n'est généré que lorsque le modèle de renversement 123 et les signaux RSI lissés s'accordent. Acheter lorsque le renversement 123 montre un bas et que le RSI franchit un niveau élevé. Vendre lorsque le renversement 123 forme un haut et que le RSI franchit un niveau bas.

Les avantages

  1. La combinaison de l'indicateur de tendance RSI et du schéma d'inversion permet d'identifier avec précision les points d'inversion de tendance.

  2. L'indice de résistance lissé réduit le retard de l'indice de résistance normal.

  3. Le schéma d'inversion est simple et facile à identifier.

  4. Les paramètres flexibles peuvent être ajustés pour différents instruments et délais.

  5. Facile à optimiser et à améliorer avec une grande extensibilité.

Les risques

  1. Un simple renversement peut provoquer de faux signaux lors de retraitements mineurs.

  2. L'optimisation de l'indice de résistance à la corrosion est insuffisante et sujette à un surajustement.

  3. Une double confirmation entraîne moins de signaux commerciaux.

  4. Les coûts de négociation sont ignorés, ce qui peut empêcher les petits comptes de réaliser des profits.

  5. Aucun mécanisme de stop-loss pour limiter la baisse.

Amélioration

  1. Optimiser les paramètres de l'indicateur RSI afin de trouver la meilleure combinaison.

  2. Ajouter d'autres indicateurs ou modèles pour le filtrage du signal.

  3. Mettre en œuvre un stop loss pour contrôler les pertes d'une seule transaction.

  4. Considérez les coûts de négociation, ajustez les paramètres pour les différentes tailles de capital.

  5. Paramètres d'essai sur différents instruments et délais pour obtenir des paramètres optimaux.

  6. Ajouter une fonctionnalité pour optimiser les paramètres automatiques.

Résumé

La stratégie a une logique claire et simple, utilisant un modèle d'inversion combiné à un indicateur de tendance pour identifier les inversions de tendance potentielles. Elle présente l'avantage d'une large applicabilité et d'une optimisation facile, mais présente également certains risques à noter et à améliorer.


/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/07/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 is new version of RSI oscillator indicator, developed by John Ehlers. 
// The main advantage of his way of enhancing the RSI indicator is smoothing 
// with minimum of lag penalty. 
//
// 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


SRSI(Length, TopBand,LowBand) =>
    pos = 0.0
    xValue = (close + 2 * close[1] + 2 * close[2] + close[3] ) / 6
    CU23 = sum(iff(xValue > xValue[1], xValue - xValue[1], 0), Length)
    CD23 = sum(iff(xValue < xValue[1], xValue[1] - xValue, 0), Length)
    nRes = iff(CU23 + CD23 != 0, CU23/(CU23 + CD23), 0)
    pos:= iff(nRes > TopBand, 1,
    	   iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed RSI", 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, "---- Smoothed RSI ----")
LengthRSI = input(10, minval=1)
TopBand = input(0.8, step=0.01)
LowBand = input(0.2, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(LengthRSI, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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