Réversion des prix avec stratégie de capture croisée

Auteur:ChaoZhang est là., Date: 2024-01-17 16h29 et 13h
Les étiquettes:

img

Résumé

L'inversion de prix avec stratégie de capture de croisement est une stratégie composée qui combine des techniques de négociation de renversement de prix et des croisements d'indicateurs. Elle génère d'abord des signaux de négociation en utilisant des modèles d'inversion de prix, puis filtre les signaux avec des croisements de surachat / survente d'un oscillateur stochastique, afin de capturer les renversements à court terme sur le marché.

La logique de la stratégie

La stratégie est composée de deux sous-stratégies:

  1. 123 Stratégie d'inversion
  • Lorsque le prix de clôture passe d'un niveau plus élevé à un niveau plus bas en deux jours, et que l'indicateur stochastique à 9 jours se trouve à une bande inférieure (en dessous d'un seuil), un signal d'achat est généré.
  • Lorsque le prix de clôture passe de plus bas à plus élevé en deux jours et que l'indicateur stochastique à 9 jours est à la bande supérieure (au-dessus d'un seuil), un signal de vente est généré
  1. Stratégie de croisement stochastique
  • Lorsque la ligne %K traverse en dessous de la ligne %D, alors que les deux lignes sont surachetées, un signal de vente est généré
  • Lorsque la ligne %K traverse au-dessus de la ligne %D, alors que les deux lignes sont en survente, un signal d'achat est généré

La stratégie composée vérifie les signaux des deux sous-stratégies et ne déclenche les transactions réelles que lorsque les signaux s'alignent dans la même direction.

Les avantages

La stratégie combine des modèles d'inversion des prix et des croisements d'indicateurs pour évaluer à la fois l'action des prix et les informations sur les indicateurs, ce qui aide à filtrer les faux signaux et à détecter les opportunités d'inversion pour améliorer la rentabilité.

Les avantages spécifiques sont les suivants:

  1. Capturer rapidement les revers du marché sans longues attentes de consolidation
  2. Augmentation de la précision du signal grâce à la double validation des deux sous-stratégies
  3. Un meilleur taux de réussite combinant l'analyse de l'action des prix et des indicateurs

Les risques

Cette stratégie comporte également certains risques:

  1. Le prix peut s'inverser brusquement pendant une forte volatilité, provoquant des signaux incorrects
  2. Un mauvais réglage des paramètres de l'indicateur affecte la qualité du signal
  3. Pas sûr du moment de l'inversion, il y a un risque de temps

Ces risques peuvent être gérés en ajustant les paramètres, en utilisant des stop-loss, etc.

Des possibilités d'amélioration

Certaines façons d'améliorer la stratégie:

  1. Optimiser les paramètres des indicateurs
  2. Ajouter d' autres filtres comme le volume
  3. Personnaliser les paramètres en fonction du symbole et des conditions du marché
  4. Incorporer le stop loss pour la maîtrise des risques
  5. Utiliser l'apprentissage automatique pour l'identification des signaux

Conclusion

L'inversion des prix avec la stratégie de capture croisée combine plusieurs stratégies complémentaires pour réaliser des profits tout en contrôlant les risques.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// 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


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", 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, "---- Stochastic Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -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