Annonce
Réduire
Aucune annonce.
Ads
Réduire
S' entrainer avec les Outils d'Eric Lefort
Réduire
X
-
heureusement que j'avais sauvegardé le post sur l'indicateur de force relative de E.Lefort
qui date d'un ancien site
j'ai aussi trouvé par chance la notice du code whs pdf sans lequel je n'arrivais pas à comprendre le code
Citation de : Eric_Lefort (au 11-10-2012 10:36:58)
Si intéressés, voici le code de la force relative pour la nano de WHS.
Express E_Indice_de_force
// Ecrit par Eric Lefort pour Mogalef
Vars
Input $Longueur(1,50,10); // longueur sur laquelle est examinée la force
input $Compare_Study(0,1,0); //Donner juste la Force (0) ou comparer les forces (1)
series haut1,bas1,haut2,bas2;
series Force,Force2; /Force du principal (CAC?) et force de l'indice comparé (DAX?)
series null,CP,CP2,N,N2;
series CLO(Study.close),HI(Study.high),LO(Study.low); // on va chercher les valeurs de l'indice que l'on va comparer au CAC
Calculation
CalculateAtEveryTick(false);
// *********************** Calcul de la Force du CAC : ceci est le meilleur algorythme que j'ai trouvé.
Haut1=Highest(h,$longueur);
Bas1=Lowest(l,$longueur);
N=(h+l+c)/3;
//if IsFinalBar() then
ExpMovingAverage(N,CP,3);
Force=((cp-haut1[5]) / (haut1[5]-bas1[5])) + ((cp-bas1[5]) / (haut1[5]-bas1[5]))
+ ((cp-haut1[5+($longueur/2)]) / (haut1[5+($longueur/2)]-bas1[5+($longueur/2)])) + ((cp-bas1[5+($longueur/2)]) / (haut1[5+($longueur/2)]-bas1[5+($longueur/2)]))
+ ((cp-haut1[5+$longueur]) / (haut1[5+$longueur]-bas1[5+$longueur])) + ((cp-bas1[5+$longueur]) / (haut1[5+$longueur]-bas1[5+$longueur])) ;
// ************************ Calcul de la force de l'indice comparé
If $compare_study =1 then begin
haut2=Highest(hi,$longueur);
bas2=Lowest(lo,$longueur);
N2=(hi+lo+clo)/3;
ExpMovingAverage(N2,cp2,3);
Force2=((cp2-haut2[5]) / (haut2[5]-bas2[5])) + ((cp2-bas2[5]) / (haut2[5]-bas2[5]))
+ ((cp2-haut2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)])) + ((cp2-bas2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)]))
+ ((cp2-haut2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) + ((cp2-bas2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) ;
end
// ************************
if $compare_study>1 then begin
haut2=Highest(hi,$longueur);
bas2=Lowest(lo,$longueur);
N2=(hi+lo+clo)/3;
ExpMovingAverage(N2,cp2,3);
Force2=((cp2-haut2[5]) / (haut2[5]-bas2[5])) + ((cp2-bas2[5]) / (haut2[5]-bas2[5]))
+ ((cp2-haut2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)])) + ((cp2-bas2[5+($longueur/2)]) / (haut2[5+($longueur/2)]-bas2[5+($longueur/2)]))
+ ((cp2-haut2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) + ((cp2-bas2[5+$longueur]) / (haut2[5+$longueur]-bas2[5+$longueur])) ;
Force=Force-Force2;
Force2=0;
end
Interpretation
begin
end
Plot (Force2,red,1);
Plot (Force,black,2);
Plot (null,black,1);
il me semble que le code pour un seul sous-jacent, pour prorealtime devrait ressembler à cela :
sans oublier de créer la variable integer ou entier "longueur"
N=(High+Low+Close)/3
CP=ExponentialAverage[3](N)
demiL=ROUND(longueur/2)
H5=highest[5](High)
L5=lowest[5](Low)
HdL=highest[demiL](High)
LdL=lowest[demiL](Low)
HL=highest[longueur](High)
LL=lowest[longueur](Low)
Force=( (CP-H5) / (H5-L5) ) + ( (CP-L5) / (H5-L5) ) + ( (CP-HdL) / (HdL-LdL) ) + ( (CP-LdL) / (HdL-LdL) ) + ( (CP-HL) / (HL-LL) ) + ( (CP-LL) / (HL-LL) )
return force as"force",0 as "0"
ça je ne sais pas le faire en programmation prt
peut être est il possible "en chargeant" les valeurs comparées et indicateurs
Commentaire
-
Bonjour Raptor
Les lignes de code copiées depuis le post de ci-dessus
N=(High+Low+Close)/3
CP=ExponentialAverage[3](N)
demiL=ROUND(longueur/2)
H5=highest[5](High)
L5=lowest[5](Low)
HdL=highest[demiL](High)
LdL=lowest[demiL](Low)
HL=highest[longueur](High)
LL=lowest[longueur](Low)
Force=( (CP-H5) / (H5-L5) ) + ( (CP-L5) / (H5-L5) ) + ( (CP-HdL) / (HdL-LdL) ) + ( (CP-LdL) / (HdL-LdL) ) + ( (CP-HL) / (HL-LL) ) + ( (CP-LL) / (HL-LL) )
return force as"force",0 as "0"
QUE SONT LES VARIABLES A CREER : INTEGER ou ENTIER "LONGUEUR" ?
"sans oublier de créer la variable integer ou entier "longueur""
Merci à toi
Commentaire
-
Commentaire
-
Bonjour Raptor
Merci pour le code : ma petite contribution
J'ai compris qu'Eric regarde les 5 dernières bougies par rapport au 15 et 30 bougies qui précèdent ces 5 dernières bougies : donc je rajouterais un 5 devant demiL et longueur ( c'est ce que semble faire Eric dans son code )
Pour aller au bout de la comparaison faite par Eric , il faudrait avoir sur le ratio valeur/cac mais ça je crois que PRT ne sait pas gérer sur un indicateur autre que les force relative version PRT
Commentaire
-
Envoyé par ririprems Voir le messageBonjour Raptor
Merci pour le code : ma petite contribution
J'ai compris qu'Eric regarde les 5 dernières bougies par rapport au 15 et 30 bougies qui précèdent ces 5 dernières bougies : donc je rajouterais un 5 devant demiL et longueur ( c'est ce que semble faire Eric dans son code )
Pour aller au bout de la comparaison faite par Eric , il faudrait avoir sur le ratio valeur/cac mais ça je crois que PRT ne sait pas gérer sur un indicateur autre que les force relative version PRT
comme je ne connais rien en programmation, la modification que tu proposes donne quoi en termes de lignes de code ?
Désolée de demander cette précision, mais un indicateur mal programmé peut mener à la cata !!!
Merci par avance et belle journée à toi aussi
Commentaire
-
A maryeva: ça donne ça . En tous cas ça à l'aire de correspondre a ce que fait Eric sur Nano . C'est un peu different de ce qu'il decrit dans le webi car la par exemple j'ai l'impresion que ça regarde les 5 dernieres bougies par rapport aux 35 dernieres alors que dans le webi , il regardent les 5 dernieres par rapport aux 30 bougies qui précèdent . ce qui se coderait un peu differemment ...
N=(High+Low+Close)/3
CP=ExponentialAverage[3](N)
demiL=ROUND(longueur/2)
H5=highest[5](High)
L5=lowest[5](Low)
HdL=highest[5+demiL](High)
LdL=lowest[5+demiL](Low)
HL=highest[5+longueur](High)
LL=lowest[5+ longueur](Low)
Force=( (CP-H5) / (H5-L5) ) + ( (CP-L5) / (H5-L5) ) + ( (CP-HdL) / (HdL-LdL) ) + ( (CP-LdL) / (HdL-LdL) ) + ( (CP-HL) / (HL-LL) ) + ( (CP-LL) / (HL-LL) )
return force as"force",0 as "0"
Commentaire
Commentaire