Stratégie de retournement quantitatif à double signal


Date de création: 2023-12-01 14:14:46 Dernière modification: 2023-12-01 14:14:46
Copier: 1 Nombre de clics: 631
1
Suivre
1619
Abonnés

Stratégie de retournement quantitatif à double signal

Aperçu

La stratégie d’inversion quantifiée à deux signaux permet d’obtenir un signal de négociation plus précis en combinant la stratégie d’inversion 123 et l’indicateur d’oscillateur d’accélérateur. Cette stratégie est principalement utilisée pour les transactions de courte et moyenne ligne sur les indices boursiers, les devises, les métaux précieux et les variétés énergétiques.

Principe de stratégie

Cette stratégie est composée de deux logiques de code indépendantes.

La première partie est la stratégie de retournement 123, qui détermine le principe du signal de retournement: un signal de tête vide est généré lorsque le prix de clôture est inférieur au prix de clôture précédent pendant deux jours consécutifs et que la ligne K de l’indicateur STOCH du 9e jour est inférieure à la ligne D; un signal de tête vide est généré lorsque le prix de clôture est supérieur au prix de clôture précédent pendant deux jours consécutifs et que la ligne K de l’indicateur STOCH du 9e jour est supérieure à la ligne D.

La deuxième partie est l’indicateur de l’oscillateur d’accélérateur. L’indicateur permet de déterminer à l’avance le point de retournement de la tendance en calculant la différence entre l’oscillateur de prix absolu et sa moyenne mobile à 5 cycles, qui reflète la vitesse de variation de l’oscillateur de prix absolu.

Enfin, la stratégie combine les signaux des deux indicateurs: lorsque les deux indicateurs sont synchronisés, un signal de transaction est émis dans cette direction (double plus ou double vide); lorsque les deux indicateurs ne sont pas cohérents, un signal zéro est émis.

Analyse des avantages

Cette stratégie, combinée à un double indicateur de jugement, permet de filtrer certains faux signaux et de les rendre précis et fiables. En même temps, l’utilisation de l’oscillateur de prix absolu, qui reflète la caractéristique de l’accélération des changements, permet de capturer à l’avance les points de revers potentiels de la tendance et ainsi de gagner plus de marge de profit.

Analyse des risques

Le plus grand risque de cette stratégie réside dans le fait que le prix a déjà fait un revirement évident avant que l’indicateur n’envoie un signal, ce qui a conduit à la perte du meilleur point d’entrée. De plus, les paramètres de l’indicateur doivent être ajustés de manière optimale lorsque le marché fluctue fortement.

Pour le risque de point d’entrée, il est possible de combiner plus d’indicateurs de retournement pour assurer la fiabilité du signal. Pour les problèmes d’optimisation des paramètres, un mécanisme d’ajustement dynamique peut être créé pour assurer la rationalité des paramètres.

Direction d’optimisation

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

  1. Augmentation des conditions de filtrage pour éviter de produire des signaux erronés pendant les phases de haute onde

  2. Un mécanisme de multi-vérification combiné à plus d’indicateurs de retour en arrière

  3. Mise en place d’un mécanisme d’adaptation des paramètres et d’ajustement dynamique des paramètres des indicateurs

  4. Optimiser les stratégies de stop-loss pour contrôler les pertes ponctuelles

Résumer

Les stratégies d’inversion quantifiée à deux signaux améliorent l’exactitude des signaux grâce à la double vérification, ce qui permet de saisir les points de retournement clés du marché. Il est également nécessaire de prêter attention au risque de retard des indicateurs et de défaillance des paramètres, de vérifier et d’optimiser en permanence la stratégie afin qu’elle puisse s’adapter à un environnement de marché changeant.

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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Accelerator Oscillator has been developed by Bill Williams 
// as the development of the Awesome Oscillator. It represents the 
// difference between the Awesome Oscillator and the 5-period moving 
// average, and as such it shows the speed of change of the Awesome 
// Oscillator, which can be useful to find trend reversals before the 
// Awesome Oscillator does.
//
// 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

AcceleratorOscillator(nLengthSlow, nLengthFast) =>
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    cClr = nRes > nRes[1] ? blue : red
    pos = 0.0
    pos := iff(nRes > 0, 1,
             iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal and Accelerator Oscillator (AC)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posAcceleratorOscillator = AcceleratorOscillator(nLengthSlow, nLengthFast)
pos = iff(posReversal123 == 1 and posAcceleratorOscillator == 1 , 1,
	   iff(posReversal123 == -1 and posAcceleratorOscillator == -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 ? red: possig == 1 ? green : blue )