Bonjour à tous,
Voici ,la traduction en language PRT du code de Elder's fait par José Silva ,c'est une
interpretation.
Le lien : http://trader-online.tk/MSZ/e-w-Elders_AutoEnvelope.html
Code Prorealtime.
//////////////////////SOHOCOOL
///////////////////////ELDER 'S AUTO ENVELOPES PROREALTIME
///////////////////////28 AOUT 2011
{Elder's AutoEnvelope by Jose Silva
{Dr A. Elder's AutoEnvelope interpretation v1.0
Differs from the original in that it avoids
the use of the hindsight-based LastValue()
MetaStock function.
www.elder.com/MetaStock/AutoEnvelope.htm
http://www.metastocktools.com }
{ User inputs }
{pds:=Input("EMA periods",1,252,21);
pdsBak:=Input("lookback periods",1,252,42);
x:=Input("use: Open=1, High=2, Low=3, Close=4, WClose=5",1,5,4);
plot:=Input("[1]AutoEnvelope, [2]Long signals, [3]All signals",1,3,1);
delay:=Input("Entry/Exit signals delay",0,5,0);
{ Price field }
{x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,WC(),C))));
{ Envelope bands
Avg:=Mov(x,pds,E);
hiAvg:=HHV(H,pdsBak);
loAvg:=LLV(L,pdsBak);
shift:=
Mov(If(hiAvg>Avg,hiAvg-Avg,Avg-loAvg),pds,E);
UpperBand:=Avg+shift;
LowerBand:=Avg-shift;}
///variable pds = périodes de la moyenne exponentielle (défaut =22)
///variable pdsback = période du canal donchian (défaut = 44) (le double).
//price field
x = customclose
{ Envelope bands }
Avg= ExponentialAverage[pds](x)
hiAvg=Highest[pdsback](high)
loAvg=Lowest[pdsback](low)
////////////////////////////////////////////////////////////////////////////////////
if hiavg >=avg then
shift= exponentialaverage[pds](hiavg -avg)
else
shift=exponentialaverage[pds](avg-loavg)
endif
////////////////////////////////////////////////////////////////////////////
UpperBand=Avg+shift
LowerBand=Avg-shift
/////////////////////////////////////////////////////////////
return avg as "exponentielle",upperband as "bande haute",lowerband as" bande basse"
////////////////////////////////////////////fin///end ///code