123 Stratégie de combinaison d'indicateurs d'inversion et de transformation de Fisher


Date de création: 2023-09-13 17:35:36 Dernière modification: 2023-09-13 17:35:36
Copier: 0 Nombre de clics: 856
1
Suivre
1617
Abonnés

Cette stratégie est connue sous le nom de stratégie combinée de la rétrogradation 123 et de la conversion de Fischer. Elle intègre la détermination de la forme inverse 123 et la conversion de Fischer pour acheter ou vendre lorsque les deux émettent un signal commun.

La forme de 123 inversion désigne la forme de la tendance des deux jours précédant la fermeture du troisième jour. Selon les statistiques, les transactions de 123 inversions génèrent des taux de profit plus élevés.

L’indicateur de conversion de Fisher traite les prix de manière positive, permettant d’identifier efficacement les points de retournement des prix lorsque la courbe de conversion atteint un point de rupture.

La logique de la transaction est la suivante:

  1. 123 est une forme inversée qui indique un signal d’achat ou de vente.

  2. La courbe de conversion de Fisher indique un signal d’achat ou de vente.

  3. Lorsqu’ils émettent des signaux de synchronisation, ils effectuent une transaction d’achat ou de vente correspondante.

  4. Lorsque les deux lancent un signal de recul, gardez votre position vide.

L’avantage de cette stratégie réside dans le fait que la combinaison d’indicateurs peut améliorer l’exactitude de la décision sur le moment du retournement des prix. Cependant, l’optimisation des paramètres reste essentielle et nécessite une gestion rigoureuse des fonds.

Dans l’ensemble, l’application de l’intégration des indicateurs permet d’obtenir une perspective analytique plus complète. Cependant, les traders doivent rester suffisamment flexibles pour adapter leur stratégie en fonction de la situation du marché.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/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
// 	Market prices do not have a Gaussian probability density function
// 	as many traders think. Their probability curve is not bell-shaped.
// 	But trader can create a nearly Gaussian PDF for prices by normalizing
// 	them or creating a normalized indicator such as the relative strength
// 	index and applying the Fisher transform. Such a transformed output 
// 	creates the peak swings as relatively rare events.
// 	Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// 	The sharp turning points of these peak swings clearly and unambiguously
// 	identify price reversals in a timely manner. 
//
// 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


FTI(Length) =>
    pos = 0
    nValue1 =0.0
    nFish = 0.0
    xHL2 = hl2
    xMaxH = highest(xHL2, Length)
    xMinL = lowest(xHL2,Length)
    nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
    nValue2 = iff(nValue1 > .99,  .999,
	             iff(nValue1 < -.99, -.999, nValue1))
    nFish := 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
    pos := iff(nFish > nz(nFish[1]), 1,
     	     iff(nFish < nz(nFish[1]), -1, nz(pos[1], 0)))  
    pos

strategy(title="Combo Backtest 123 Reversal & Fisher Transform Indicator", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthFTI = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFTI = FTI(LengthFTI)
pos = iff(posReversal123 == 1 and posFTI == 1 , 1,
	   iff(posReversal123 == -1 and posFTI == -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 )