Stratégie de négociation quantitative à inversion bidirectionnelle

Auteur:ChaoZhang est là., Date: le 22 février 2024
Les étiquettes:

img

Cette stratégie utilise un mécanisme de suivi bidirectionnel, combiné avec des signaux de renversement de prix et des indicateurs de volume, pour réaliser un trading quantitatif automatisé. Son plus grand avantage réside dans le contrôle fiable des risques en suivant le stop loss pour verrouiller les profits et éviter l'expansion des pertes.

Principes de stratégie

Cette stratégie se compose de deux sous-stratégies. La première sous-stratégie utilise des indicateurs stochastiques pour déterminer les signaux d'inversion des prix.

Si le prix de clôture augmente pendant deux jours consécutifs et que la ligne Slow K de 9 jours est inférieure à 50, passez long; si le prix de clôture chute pendant deux jours consécutifs et que la ligne Fast K de 9 jours est supérieure à 50, passez court.

La deuxième sous-stratégie combine des indicateurs de volume de négociation pour juger de la force de l'élan. Plus précisément, le volume de négociation actuel est comparé au volume de négociation moyen de 40 jours. Si le volume de négociation actuel est supérieur à la moyenne, il est considéré comme un volume en hausse agressif, qui appartient au signal de renversement pour le short. Si le volume de négociation actuel est inférieur à la moyenne, il est considéré comme un volume en baisse, qui appartient au signal de renversement pour le long.

Le signal de trading final est l'intersection des signaux des deux sous-stratégies. C'est-à-dire qu'une position ne sera ouverte que lorsque les deux sous-stratégies émettent des signaux simultanément.

Les avantages de la stratégie

  1. Amélioration de la qualité du signal par double confirmation à l'aide de deux indicateurs
  2. Un certain avantage en termes de calendrier avec un modèle de négociation inversé
  3. Jugez les mouvements de prix futurs combinés à l'analyse du volume
  4. Mécanisme fiable d'arrêt des pertes pour contrôler efficacement les pertes uniques

Risques liés à la stratégie

  1. Échec des signaux d'inversion à filtrer complètement le bruit du marché
  2. Volume de négociation anormal conduisant à un jugement invalide de l'élan du volume
  3. Réglage incorrect du stop loss, provoquant un stop loss prématuré ou un stop loss surdimensionné
  4. L'absence de mécanisme de contrôle de l'utilisation, qui pourrait raccourcir la durée de vie de la stratégie

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

  1. Ajouter des règles de jugement des tendances pour éviter les transactions contre tendances
  2. Optimiser la logique d'arrêt de perte pour réaliser le suivi de l'arrêt de perte et l'arrêt de perte en étapes
  3. Ajouter une limite maximale de retrait à la stratégie de clôture pour éviter d' énormes pertes
  4. Combiner des algorithmes d'apprentissage automatique pour construire des modèles dynamiques de contrôle de la perte et de la position

En résumé, cette stratégie est basée principalement sur le suivi bidirectionnel et l'inversion des prix, plus l'analyse de la dynamique du volume pour améliorer la qualité du signal par double confirmation. Dans l'application réelle, des tests et une optimisation supplémentaires sont encore nécessaires, en particulier pour se prémunir contre les risques de stop loss et de gestion de capital, pour éviter des retraits excessifs conduisant à des éliminations. Mais en général, cette stratégie utilise une variété de techniques de trading quantitatives avec une logique claire, et mérite une recherche approfondie.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/11/2020
// 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
// Volume and SMA
//
// 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

    
VSAVol(Length) =>
    pos = 0.0
    xSMA_vol = sma(volume, Length)
    pos := iff(volume > xSMA_vol, -1,
    	     iff(volume < xSMA_vol, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MAVol = input(40, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posVSAVol = VSAVol(Length_MAVol)
pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1,
	   iff(posReversal123 == -1 and posVSAVol == -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