Stratégie de suivi de l'inversion à double facteur


Date de création: 2023-12-19 11:09:20 Dernière modification: 2023-12-19 11:09:20
Copier: 2 Nombre de clics: 545
1
Suivre
1621
Abonnés

Stratégie de suivi de l’inversion à double facteur

Aperçu

Cette stratégie fait partie de la stratégie de suivi de retournement à deux facteurs dans le domaine du trading quantitatif. Elle intègre les deux facteurs de la stratégie de retournement 123 et de la stratégie de canal Keltner, dans le but de détecter les signaux de retournement et de réaliser des idées de trading à bas prix et à bas prix.

Principe de stratégie

La stratégie est composée de deux sous-stratégies. La première sous-stratégie est la stratégie de 123 inversion, qui détermine si le marché est en position de revers en calculant les variations du prix de clôture des deux jours de négociation précédents, en combinaison avec l’indicateur stochastique. Plus précisément, un signal d’achat est émis lorsque le prix de clôture augmente pendant deux jours consécutifs et que l’indicateur stochastique est inférieur à 50; un signal de vente est émis lorsque le prix de clôture baisse pendant deux jours consécutifs et que l’indicateur stochastique est supérieur à 50.

La deuxième sous-stratégie est la stratégie des canaux de Keltner. Cette stratégie calcule la moyenne typique et la gamme de fluctuations des prix des n derniers jours de négociation. Elle émet un signal de reprise lorsque le prix est proche de la trajectoire ascendante et descendante.

Enfin, la stratégie calcule le signal de détention final en déterminant la direction des signaux des deux sous-stratégies. Lorsque les signaux des deux sous-stratégies sont identiques, un véritable ordre de transaction est émis, sinon aucune transaction n’est effectuée, dans le but de réaliser la vérification à deux facteurs.

Analyse des avantages

Le plus grand avantage de cette stratégie de suivi inversé à deux facteurs réside dans la possibilité de saisir les opportunités en temps opportun lorsque le marché se retourne et de réaliser une stratégie de négociation à bas prix. En même temps, grâce au mécanisme de confirmation à deux facteurs, il est possible de réduire les faux signaux et d’améliorer la qualité des signaux.

Plus précisément, le paramètre de l’indicateur stochastique de la stratégie de retournement 123 est plus conservateur, ce qui permet de filtrer efficacement les faux retournements en cas de choc. La voie Keltner suit les idées de la bande de Bryn et peut également saisir les occasions de retournement lors de la percée de la descente.

Analyse des risques

Le risque principal de cette stratégie est que le choix du moment où le signal de revers se produit est très important. Si une série de faux revers se produisent, ou si le moment où le signal de revers se produit est mal choisi, cela peut entraîner une incapacité à maintenir une tendance complète, ce qui affecte les gains finaux.

En outre, les stratégies à deux facteurs ont plus de difficulté à choisir et à optimiser les paramètres qu’une seule stratégie. Les paramètres des deux sous-stratégies doivent être testés et évalués en profondeur, sinon ils peuvent facilement échouer.

Enfin, le taux de gain et de perte de la transaction inverse est souvent très élevé et il est facile de faire faillite en cas de situation anormale. Cela doit être évité par des arrêts de perte stricts.

Direction d’optimisation

D’après l’analyse des risques ci-dessus, la stratégie peut être optimisée dans les domaines suivants:

  1. Tester différents paramètres de l’indicateur de retournement pour trouver des combinaisons avec une plus grande tolérance à l’erreur et moins de faux signaux
  2. Essayez des paramètres de différentes longueurs de cycle pour trouver des valeurs qui captent plus précisément
  3. Augmentation des modules de stop loss et contrôle strict des pertes maximales pour une transaction
  4. Tester l’efficacité de différentes périodes de détention pour trouver des points de départ qui correspondent mieux à la logique de la stratégie
  5. Augmentation du nombre d’ouvertures de position ou de modules de contrôle de position pour un ratio de profit/perte plus raisonnable

Résumer

Cette stratégie est un type typique de stratégie de suivi de retournement à deux facteurs, qui intègre les deux sous-stratégies de 123 retournement et de canal Keltner. L’objectif est de saisir plus précisément le moment où le marché est en train de basculer.

Code source de la stratégie
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/12/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
// The Keltner Channel, a classic indicator 
// of technical analysis developed by Chester Keltner in 1960. 
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// 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

KeltnerChn(nPeriod) =>
    pos = 0.0
    xPrice = sma(hlc3, nPeriod)
    xMove = sma(high - low, nPeriod)
    reverse = input(false, title="Trade reverse")
    xUpper = xPrice + xMove
    xLower = xPrice - xMove
    pos := iff(close < xLower, -1,
             iff(close > xUpper, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Keltner Channel", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nPeriod = input(title="Period", defval=10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKeltnerChn = KeltnerChn(nPeriod)
pos = iff(posReversal123 == 1 and posKeltnerChn == 1 , 1,
	   iff(posReversal123 == -1 and posKeltnerChn == -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 )