Stratégie de cassure par inversion de la moyenne mobile double


Date de création: 2023-12-18 10:24:08 Dernière modification: 2023-12-18 10:24:08
Copier: 0 Nombre de clics: 598
1
Suivre
1621
Abonnés

Stratégie de cassure par inversion de la moyenne mobile double

Aperçu

La stratégie de rupture de double inversion de la ligne de parité est une stratégie combinée qui combine la stratégie de 123 inversions et la stratégie d’écart entre les prix et la ligne de parité. L’idée principale de cette stratégie est de générer un signal de transaction lorsque le prix et l’écart entre les prix et la ligne de parité d’une période donnée forment un signal correspondant en même temps que le 123 inversions.

Principe de stratégie

La stratégie de rupture par inversion de la double ligne d’équilibre se compose de deux parties:

  1. 123 stratégies de retour

Les signaux de négociation de la stratégie de retournement 123 sont les suivants: retournement de prix de clôture pendant deux jours consécutifs (c’est-à-dire, prix de clôture élevé le jour précédent, prix de clôture faible le lendemain; ou prix de clôture faible le jour précédent, prix de clôture élevé le lendemain), tandis que la ligne K de l’indicateur aléatoire du 9e jour est en dessous d’un certain niveau (par défaut 50), ce qui forme un signal d’achat; retournement de prix de clôture pendant deux jours consécutifs, tandis que la ligne K de l’indicateur aléatoire du 9e jour est au-dessus d’un certain niveau (par défaut 50), ce qui forme un signal de vente.

  1. Stratégie d’écart entre le prix et la moyenne

La stratégie d’écart entre le prix et la moyenne est le pourcentage de l’écart entre le prix et la moyenne de la période spécifiée (par défaut 14 jours). Un signal d’achat est généré lorsque l’écart est inférieur à un certain niveau (par défaut 3%) et un signal de vente lorsque l’écart est supérieur à un certain niveau (par défaut 0,54%)

La stratégie de rupture de la paire d’équilibre inverse ne génère un signal de transaction réel que lorsque les signaux de négociation des deux stratégies ci-dessus sont alignés, soit à la fois pour acheter ou à la fois pour vendre.

Analyse des avantages

Les stratégies de rupture de revers à double équilibre combinent les avantages des stratégies de revers et des stratégies de tendance.

La stratégie de revers est une stratégie de revers qui permet de saisir les opportunités de revers lorsque le prix se retourne. La stratégie de suivi de la tendance du prix et de l’écart de la ligne moyenne permet de saisir les tendances sur les lignes plus longues.

En outre, en demandant la synchronisation des signaux des deux stratégies, il est possible de réduire efficacement le nombre de transactions invalides et d’améliorer le rapport de bruit.

Analyse des risques

La stratégie de rupture par inversion à deux lignes, bien que combinant les avantages des deux stratégies, hérite également de leurs risques respectifs.

Pour la section 123 inverse, un inversion de deux jours consécutifs ne garantit pas une inversion complète du prix, mais peut être une fausse inversion causée par une révision à court terme. De plus, un mauvais réglage des paramètres de l’indicateur aléatoire peut également entraîner une baisse de la qualité du signal.

Pour la partie de l’écart entre le prix et la moyenne, un paramètre d’écart incorrect peut entraîner un retard de signal. De plus, l’écart entre le prix et la moyenne ne permet pas de déterminer la direction de la tendance et ne génère que des signaux mécaniques.

En résumé, les principaux risques de cette stratégie résident dans la mauvaise configuration des paramètres et les erreurs de jugement. Les risques peuvent être évités par l’optimisation des paramètres, la définition d’un stop-loss, ou la négociation d’une intervention artificielle.

Direction d’optimisation

Les stratégies d’inversion de rupture à double équilibre peuvent être optimisées dans les domaines suivants:

  1. Optimisation de la moyenne et des paramètres aléatoires pour améliorer la qualité du signal
  2. Ajout de filtres sur d’autres indicateurs pour une meilleure fiabilité des signaux de trading
  3. Ajout de paramètres d’arrêt de perte
  4. Ajout d’un module de jugement de tendance pour éviter les transactions inappropriées
  5. Intervention humaine et adaptation des paramètres

La combinaison de plusieurs outils devrait permettre d’améliorer encore la stabilité et la rentabilité de la stratégie.

Résumer

La stratégie de rupture d’inversion bi-linéaire a l’avantage d’utiliser une stratégie de rupture d’inversion et une stratégie de tendance en combinaison, produisant un signal de négociation réel en même temps que les deux signaux de stratégie. Elle permet de capturer les occasions de reprise de prix à court terme et de suivre les tendances à long terme pour éviter d’être piégé.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/04/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
// Percent difference between price and MA
//
// 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


DBP_MA(Length,SellZone,BuyZone) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = abs(close - xSMA) * 100 / close
    pos:= iff(nRes < BuyZone, 1,
           iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Difference between price and MA", 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, "---- Difference between price and MA ----")
LengthDBP = input(14, minval=1)
SellZone = input(0.54, minval=0.01, step = 0.01)
BuyZone = input(0.03, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDBP_MA = DBP_MA(LengthDBP,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posDBP_MA == 1 , 1,
	   iff(posReversal123 == -1 and posDBP_MA == -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 )