Overblog Suivre ce blog
Administration Créer mon blog
15 février 2012 3 15 /02 /février /2012 15:25

Pour finir avec le Fisher Transform ,voici la version normale.

 

 

CODE PRT

////////////////////////////////////////////////////////////

 

///////FISHER TRANSFORM NORNAL V2
//////By sohocool 15/02/2011

////variable P = période canal donchian -défaut = 11,22,33,44,55 etc pour journalier.
/////////////////P1 = période du filtre exponentielle de stochastique --défaut entre 3 et 5.
////////////////P2= période du filtre exponentielle de fisher --défaut entre 3 et 5.

/////////////A1 = choix du prix : close , median price, typical price -----défaut =medianprice

a1= customclose

b1= highest[p](a1)
b2=lowest[p](a1)

if barindex > p+2 then
 
 
 vb=(a1-b2)/(b1-b2)
 
 
 v1 =exponentialaverage[p1](2*(vb - 0.5))
 
 
 f1 =exponentialaverage[p2]( 0.50*log((1+v1)/(1-v1) ))
 
endif


return f1 as "Fisher" , f1[1] as "trigger",0 as"Zero"

 ///////////////////////////////////////fin ////end

 

FTSE-MIB-FISHERV2.png

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
12 février 2012 7 12 /02 /février /2012 18:39

Bonsoir à tous,

 

Je vous propose la version V2 du Fisher Transform.

 

Maintenant on peut modifier :

 

-La période de la stochastique .

 

-La période du filtre moyenne exponetielle de la stochastique.

 

-La période du filtre moyenne exponentielle de la fonction fisher.

 

-Les niveaux bas et haut sont réglables "automatiquement."

 

Autre lien pour le Fisher Transform :

 

http://www.mesasoftware.com/Seminars/TradeStation%20World%2004.pdf

 

 

Bons trades à tous .

 

 

Code Prorealtime :

 

///////FISHER TRANSFORM HISTO V2
//////By sohocool 18/11/2011
////variable P = période canal donchian -défaut = 11,22,33,44,55 etc pour journalier.
/////////////////P1 = période du filtre exponentielle de stochastique --défaut entre 3 et 5.
////////////////P2= période du filtre exponentielle de fisher --défaut entre 3 et 5.
////////////////Nb = niveau bas -- défaut 20,25,30,33 etc......
/////////////A1 = choix du prix : close , median price, typical price -----défaut =medianprice

a1= customclose

b1= highest[p](a1)
b2=lowest[p](a1)

if barindex > p+2 then
 
 
 
 vb=(a1-b2)/(b1-b2)
 
 
 
 
 v1 =exponentialaverage[p1](2*(vb - 0.5))
 
 
 f1 =exponentialaverage[p2]( 0.50*log((1+v1)/(1-v1) ))
 
endif

 


if f1 >=f1[1] then
 hh= 100
else
 hh=0
endif

if f1 < f1[1] then
 hh1= 100
else
 hh1=0
endif

sto = exponentialaverage[p1](100*vb)

return hh coloured(0,255,0) as "Histo up",hh1 coloured(255,0,0) as "Histo down",sto coloured(0,0,255) as "Stochastique",nb as "Niveau bas",100-nb as "Niveau haut",50 as "50 %"

 

///////////////////////////////////////////FIN ////////////END

 

ARCELORFISV201.png

 

 

 

 

 

 

 

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
3 janvier 2012 2 03 /01 /janvier /2012 14:34

Bonjour à tous ,

Bonne Année 2012,

 

J'ai progammé l'histogramme ,avec la valeur 100,pour pouvoir mettre

 

un pourcentage indicateur à l'interieur.

 

Vu que la base de calcul du Ehlers Fisher Transform est une stochastique(vb),

 

pour la version V1 ,on va mettre la stochastique filtrée par une moyenne

 

exponentielle de période = 5 (soit exponentialaverage[5](100*vb).

 

CODE PROREALTIME :

 

///////////FISHER TRASFORM HITOGRAM_V1

//////By sohocool 18/11/2011

////variable P = periode canal donchian -défaut = 10


a1= customclose


b1= highest[p](a1)

b2=lowest[p](a1)


if barindex > p+2 then

vb=(a1-b2)/(b1-b2)

v1 =0.66*((vb )- 0.5)   + 0.67*v1[1]

f1 = 0.5*log((1+v1)/(1-v1) )+0.5*f1[1]

endif





if f1 >=f1[1] then

hh= 100

else

hh=0

endif


if f1 < f1[1] then

hh1= 100

else

hh1=0

endif


sto = exponentialaverage[5](100*vb)


return hh coloured(0,255,0) as "histo up",hh1 coloured(255,0,0) as "histo down",sto coloured(0,0,255) as "Stochastique",20 as "20",80 as "80"


/////////////////////fin ///end //code

 

 

USD-histo_v1.png

 CAC-40-histov1.png


Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
28 décembre 2011 3 28 /12 /décembre /2011 20:07

Bonsoir,

 

Je vous propose une version Fisher transform Histogramme ,pour PRT.

 

 

La couleur de l'Histogramme est déterminé par le croissement de la

 

 

ligne Fisher et de la ligne Trigger (Fisher[1]).

 

 

La lecture est facile ,quand l'histogramme est :

 

Vert = achat

 

Rouge = vente.

 

 

L'avantage quand nous avons programmé l'histogramme ,90% de la

 

programmation du Back-test est faite.

 

 

Bons trades.

 

 

Lien PDF Fisher Transform :

 

http://www.mesasoftware.com/Papers/USING%20THE%20FISHER%20TRANSFORM.pdf

 

Code Prorealtime :

 

 

///////////FISHER TRASFORM HITOGRAM
//////By sohocool 18/11/2011
////variable P = periode canal donchian -défaut = 10

 

////a1= prix --- défaut = medianprice (H+L)/2

 

a1= customclose

b1= highest[p](a1)
b2=lowest[p](a1)

if barindex > p+2 then
 
 
 
 vb=(a1-b2)/(b1-b2)
 
 
 
 
 v1 =0.66*((vb )- 0.5)   + 0.67*v1[1]
 
 
 f1 = 0.5*log((1+v1)/(1-v1) )+0.5*f1[1]
 
endif

 


if f1 >=f1[1] then
 hh= 100
else
 hh=0
endif

if f1 < f1[1] then
 hh1= 100
else
 hh1=0
endif


return hh coloured(0,255,0),hh1 coloured(255,0,0)

 

////////////////////////////fin ///end ///code

 

CAC-40-fisher-histo-copie-1.png

 

USD-fisherhisto-copie-1.png

 

 

 

 

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
20 novembre 2011 7 20 /11 /novembre /2011 16:56

Bonjour,

 

Voici une version modifiée et simplifiée ,par rapport à l'originale.

 

En effet la moyenne "rainbow" proposée est très proche de la moyenne pondérée

 

 de périodes 4  ou 5 . 

 

CODE PRT :

 

 //SVE RSI INVERSE FISHER_V1
// VERSION modifiée et simplifiée

//by SOHOCOOL le 18 /11/2011


//Variables :
//weightedperiod = période de moyenne pondérée / par défaut 4 ou 5
//rsiperiod = période du rsi / par défaut = 4
//demaperiod = période de moyenne zero lag (dema) /  par défaut =4
//levelup = niveau haut / par défaut =88
//leveldown = niveau bas / par défaut =12

//calculate rainbow

wma0= weightedaverage[weightedperiod](CUSTOMclose)

//---- calculate rsi from rainbow smoothed price curve

rainrsi = 0.1 * (RSI[rsiperiod](WMA0) - 50)

//---- smooth the rsi with Vervoort zero lag MA

srsi= dema[demaperiod](rainrsi)
//---- do the fish
fish = 50*((Exp(2 * srsi) - 1) / (EXP(2 * srsi) + 1) + 1)

//----

return fish as "SVE Rsi I Fish V1",leveldown as "niveau bas",levelup as "niveau haut"

///////////////FIN DE CODE ///END

 

Gold-SpotSVE.png

 

 S-P-500-INDEXSVE.png

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
19 novembre 2011 6 19 /11 /novembre /2011 22:12

Bonjour,

 

Je vous propose le code du Rsi Inverse Fisher de Sylvain Vervoort,vu sur Metatrader.

 

Le principe d'utilisation est simple :

 

Quand le Rsi inverse croise à la baisse le niveau haut ,on vend.

 

Quand le Rsi inverse croise à la hausse le niveau bas ,on achète .

 

Bon trades.

 

 

CODE PROREALTIME:

 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

//SVE RSI INVERSE FISHER
//by SOHOCOOL le 18 /11/2011


//Variables :
//rsiperiod = période du rsi / par défaut = 4
//emaperiod = période de moyenne zero lag (dema) /  par défaut =4
//levelup = niveau haut / par défaut =88
//leveldown = niveau bas / par défaut =12

//calculate rainbow

wma0= weightedaverage[2](close)

wma1 = weightedaverage[2](wma0)
wma2 = weightedaverage[2](wma1)
wma3= weightedaverage[2](wma2)
wma4 = weightedaverage[2](wma3)
wma5 = weightedaverage[2](wma4)
wma6 = weightedaverage[2](wma5)
wma7 = weightedaverage[2](wma6)
wma8 = weightedaverage[2](wma7)
wma9 = weightedaverage[2](wma8)


rainbow = (5 * wma0 + 4 * wma1 + 3 * wma2 + 2 * wma3 + wma4 + wma5 + wma6+ wma7 + wma8+ wma9) / 20

//---- calculate rsi from rainbow smoothed price curve

rainrsi = 0.1 * (RSI[rsiperiod](rainbow) - 50)

//---- smooth the rsi with Vervoort zero lag MA
ema0 = exponentialaverage[emaperiod](rainrsi)
ema1 = exponentialaverage[emaperiod](ema0)
srsi= 2*ema0- ema1
//---- do the fish
fish = 50*((Exp(2 * srsi) - 1) / (EXP(2 * srsi) + 1) + 1)


//----

return fish as "SVE Rsi I Fisher",leveldown as "niveau bas",levelup as "niveau haut"
///////////////////////FIN DU CODE ////END

 

 

 

 

Code pour Metatrader :

 

http://codebase.mql4.com/7651

 

CAC-40-sve.png

USD-Spotsve.png

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
17 juillet 2011 7 17 /07 /juillet /2011 20:08

Dans l'élan , je poste le Cybercycle que j'ai en magasin.  

 

Pour Metatrader ,beaucoup indicateurs J.Ehlers ici:  

 

http://www.forex-tsd.com/indicators-metatrader-4/3479-all-john-ehlers-indicators.html

 

Code Prorealtime :

 

  //ehlers  cyber cycle
//by sohocool
//   Dec  2008

//variable b1 = alpha ---  décimale  défaut= 0.07

 

a1 = customclose  //   défaut = medianprice


if barindex > 7 then
 s1 = (a1 + 2*a1[1]+2*a1[2] + a1[3])/6
 
 c1 = SQUARE(1-(0.5*b1))*(s1-2*s1[1]+s1[2])
 
 c2=2*(1-b1)*cyc[1]
 
 c3= square(1-b1)*cyc[2]
 
 cyc = c1 + c2-c3
 
else
 cyc = (a1-a1[1]*2 + a1[2])/4
 
endif

return cyc as "cybercycle",cyc[1] as "trigger",0 as"zero"

 

//////////////////////////FIN - END /////////////// 

 

 

USD-cycycle.png

 

CAC-40-cycy.png

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
17 juillet 2011 7 17 /07 /juillet /2011 12:37

 

 

Bonsoir ou Boujour à tous,

 

Vous trouvez un Pdf ci-dessous :

 

http://www.mesasoftware.com/Papers/THE%20INVERSE%20FISHER%20TRANSFORM.pdf

 

 

C'est un code facile à traduire en Prorealtime ,très semblable au Easy language.

 

 

Metatrader code :

 

  http://codebase.mql4.com/ru/5612

 

Une variante :

 

http://codebase.mql4.com/7651

 

 

 

 

CODE PROREALTIME : 

 

 

////////////////////////////////////////////////////////

 

// Sohocool le 17 juillet 2010

 

Value1 = 0.1*(RSI[5](Close) - 50)

Value2 = WeightedAverage[9](Value1)


IFish = (Exp(2*Value2) - 1) / (Exp(2*Value2) + 1)

 

Return  Ifish as "Inverse Fisher Rsi",0.5 as "0.5",-0.5 as "-0.5"

 

/////////////////////////////////////fin / end

 

 

 

 

CAC-40-Invfisherrsi.png

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
16 juin 2009 2 16 /06 /juin /2009 20:07

 

Bonsoir ,

 

 

Suite à la relecture du paragraphe,  concernant la  transformée de fisher , dans livre de J Ehlers.

“Cybernetic  analysis for stocks and futures”, je vous propose un indicateur fisher transform RSI

 

Dans ce code ,en plus de programmer la période du RSI ,et la période de la stochastic,

Vous pourrez sélectionner le type de lissage (moyenne mobile ) ainsi que la période

du lissage-filtrage-- ( par défaut weighted average avec période 5).

 

@+

PS: LE CODE FISHER TRANSFORM HIGH/LOW EST MODIFIE

http://sohocool.over-blog.com/article-29557149.html


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////Début du code fisher transform RSI vu par sohocool

////VARIABLE / r= péride du RSI -- défaut = 14
//  p= période de la stochastic--défaut = 10

//aa= période moyenne lissage --défaut =5
//s = type moyenne mobile  --défaut = weighted(pondérée)


a= customclose

a11= rsi[r](a)


///////////stoschastic

b1= highest[p](a11)
b2=lowest[p](a11)


if b1 - b2 <>0 then
 
 v =(((a11 -b2) / (b1 - b2) )- 0.5)*2
 
else
 v= -0.5*2
endif
////////////////////////////


//////////////lissage stoschastic

v1=average[aa,s](v)  /// moyenne lissage

/////////////////////////////////////////


///////////////////fisher transform

v11 = min(0.999,max(v1,-0.999))

if barindex > p then
 
 f1 = 0.5*0.5*log((1+v11)/(1-v11) ) +0.5*f1[1]  /// exponentialaverage[3]
endif

/////////////////////////////////////////////////////////////////////


return  f1 as" fisher RSI" ,f1[1] as " Trigger",0 as " zero"

//////////fin du code

 

 

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article
8 mai 2009 5 08 /05 /mai /2009 08:48



l'oscillateur CG centre de gravité de John Ehlers.

http://translate.google.be/translate?prev=hp&hl=fr&js=n&u=http%3A%2F%2Fwww.jamesgoulding.com%2FResearch_II%2FEhlers%2FEhlers%2520%28CG%2520Oscillator%29.doc&sl=en&tl=fr

http://www.jamesgoulding.com/Research_II/Ehlers/Ehlers%20(CG%20Oscillator).doc


De toutes façons   NO STRESS



////////////////centre gravité John Ehlers
/////////////////

// variable = n - par défaut =10

sum = 0
wgt = 0

b=(customclose)  // défaut =medianprice

FOR i = 0 TO n - 1
 sum = sum + (1 + i) * b[i]
 wgt = wgt + b[i]
NEXT

IF wgt <> 0 THEN
 cG =( - sum / wgt)  + ( (n+1)/2)
 
 
ENDIF


RETURN cg as"centre gravité",cg[1] as "trigger",0 as "zero"

/////////////////////////fin

Repost 0
Published by SOHOCOOL - dans John Ehlers
commenter cet article