Stratégie de négociation à inversion à deux facteurs

Auteur:ChaoZhang est là., Date: 2023-12-27 17h22 et 31h
Les étiquettes:

img

Résumé

Cette stratégie utilise d'abord des signaux d'inversion de prix pour le trading, puis combine des indicateurs de filtrage de tendance pour le dépistage, en mettant en œuvre un système basé sur deux facteurs.

La logique de la stratégie

La partie de l'inversion des prix utilise le système d'inversion 123. Ce système est tiré du livre Comment j'ai triplé mon argent sur le marché des contrats à terme d'Ulf Jensen, page 183.

  1. La clôture précédente est inférieure à la clôture d' il y a 2 jours
  2. La clôture actuelle est supérieure à la clôture précédente
  3. Le stochastique lent de 9 jours est inférieur à 50

Lorsque les conditions ci-dessus sont remplies, un signal d'achat est généré.

  1. La clôture précédente est supérieure à la clôture d' il y a 2 jours.
  2. La clôture actuelle est inférieure à la clôture précédente
  3. Le stochastique rapide de 9 jours est supérieur à 50

Un signal de vente est généré.

L'objectif de ce système de renversement est de capturer les renversements à court terme lorsque les prix forment un renversement temporaire.

La partie de filtrage de tendance utilise le système Extraction de la tendance (ETT). Le système ETT juge la direction de la tendance par une combinaison de filtre et de moyenne mobile. Dans cette stratégie, sa fonction principale est de vérifier les signaux d'inversion de prix, en évitant l'opération d'inversion lorsqu'il n'y a pas de tendance claire.

Cette stratégie combine les signaux de négociation des deux sous-stratégies, réalisant finalement un système de négociation d'inversion à double facteur.

Analyse des avantages

La stratégie de négociation à inversion à deux facteurs intègre les avantages de chaque sous-stratégie par la combinaison:

  1. 123 le système de renversement peut saisir les opportunités de renversement à court terme
  2. Le système ETT peut filtrer efficacement les scénarios sans tendance claire, évitant ainsi le risque d'inversion des transactions
  3. Le double facteur améliore la qualité du signal

Par conséquent, cette stratégie peut filtrer efficacement les signaux d'inversion non valides. Avec un jugement de tendance correct, elle effectue une opération d'inversion, améliorant ainsi la performance globale du système de négociation.

Analyse des risques

La stratégie de négociation à inversion à deux facteurs comporte les principaux risques suivants:

  1. Le risque que les prix poursuivent la tendance initiale après un renversement.
  2. Le risque de l'erreur de jugement du système ETT. Le système ETT lui-même présente également des erreurs de jugement, entraînant des pertes dans le commerce de renversement.
  3. Le risque inhérent au mécanisme à double facteur. Bien que moins probable, il est toujours probable que les deux signaux de trading fassent un mauvais jugement en même temps, ce qui amplifie les pertes.

Pour réduire les risques ci-dessus, les considérations comprennent l'ajustement des paramètres du compilateur, l'optimisation des stratégies d'inversion et d'ETT pour un meilleur jugement, ainsi que l'élargissement approprié de la plage de stop-loss pour le trading d'inversion.

Optimisation

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

  1. Optimiser les paramètres du système d'inversion pour une meilleure combinaison de paramètres
  2. Optimiser les paramètres du système ETT pour une plus grande précision de jugement
  3. Essayez de combiner d'autres stratégies d'inversion des prix avec l'ETT
  4. Ajouter le mécanisme de contrôle de dimensionnement de la position
  5. Conduire avec plus de facteurs

Avec la logique de la stratégie et les signaux de trading clés inchangés, de meilleurs résultats de backtest peuvent être attendus grâce à l'optimisation des paramètres et des combinaisons.

Conclusion

La stratégie de trading de renversement à deux facteurs combine organiquement les signaux de renversement de prix et le filtrage de tendance pour un système de jugement à plusieurs facteurs.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/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
// Extracting The Trend
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// 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


ETT(Length,Delta,Trigger) =>
    pos = 0
    xBandpassFilter = 0.0
    xPrice = hl2
    beta = cos(3.1415 * (360 / Length) / 180)
    gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
    xMean = sma(xBandpassFilter, 2 * Length)
    pos :=iff(xMean > Trigger, 1,
	       iff(xMean < Trigger, -1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthETT = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETT = ETT(LengthETT,Delta,Trigger)
pos = iff(posReversal123 == 1 and posETT == 1 , 1,
	   iff(posReversal123 == -1 and posETT == -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