Bonsoir,
Voici l'avant-projet d'un programme qui permet de détecter des figures en canaux et en triangles.
Il est perfectible sur bien des points. Néanmoins je vous le propose tel quel afin que, si vous êtes intéressé, vous me disiez ce que vous souhaiteriez y voir introduire comme amélioration(s).
Programme :
<pre>//Détection de canaux et de figures triangulaires
//le 04/10/2005 v2.1
//Avant-projet à modifier éventuellement
//
SI RANGHISTO=FINHISTO ALORS
//On explore les P2 dernières périodes de l'historique
I=0
TANTQUE I<=P2 FAIRE
//On cherche le plus haut et le plus bas des P1 périodes
//situées avant la période actuelle (à gauche)
HG=Haut(I+P1+1)
BG=Bas(I+P1+1)
J=I+P1+2
TANTQUE J<=I+2*P1 FAIRE
SI HAUT(J)>HG ALORS HG=HAUT(J)
SI BAS(J)<BG ALORS BG=BAS(J)
J=J+1
FINTANTQUE
//On cherche le plus haut et le plus bas des P1 périodes
//situées après de la période actuelle (à droite)
HD=HAUT(I+P1-1)
BD=BAS(I+P1-1)
K=I+P1-2
TANTQUE K>=I FAIRE
SI HAUT(K)>HD ALORS HD=HAUT(K)
SI BAS(K)<BD ALORS BD=BAS(K)
K=K-1
FINTANTQUE
//On compare les extremas précédents
//à ceux de la période actuelle
COND_H=(HAUT(I+P1)>HG) ET (HAUT(I+P1)>HD)
COND_B=(BAS(I+P1)<BG) ET (BAS(I+P1)<BD)
//On mémorise les dernier et avant-dernier
//plus hauts locaux valides et leurs positions
SI COND_H ET CPTH<=1
ALORS
HL(I+P1)=HAUT(I+P1) //On les visualise sur les cours
H2=H1 //On mémorise l'avant-dernier
H1=HAUT(I+P1) //On mémorise le dernier
RH2=RH1 //On fait de même avec leurs positions
RH1=RANGHISTO-I-P1
CPTH=CPTH+1
//Facultatif, pour vérification seulement
//SI CPTH=2
//ALORS
//Afficher "dernier plus haut local H2 : " & ctxt$(H2,2)
//Afficher "date RH2 = " & ctxt$(RH2,0)
//Afficher "avant-dernier plus haut local H1 : " & ctxt$(H1,2)
//Afficher "date RH1 = " & ctxt$(RH1,0)
//FINSI
FINSI
//On mémorise les dernier et avant-dernier
//plus bas locaux valides et leurs positions
SI COND_B ET CPTB<=1
ALORS
BL(I+P1)=-BAS(I+P1)
B2=B1
B1=BAS(I+P1)
RB2=RB1
RB1=Ranghisto-I-P1
CPTB=CPTB+1
//Facultatif, pour vérification seulement
//SI CPTB=2
//ALORS
//Afficher "dernier plus bas local B2: " & ctxt$(B2,2)
//Afficher "date = " & ctxt$(RB2,0)
//Afficher "avant-dernier plus bas local B1: " & ctxt$(B1,2)
//Afficher "date = " & ctxt$(RB1,0)
//FINSI
FINSI
I=I+1
FINTANTQUE
//On trace les droites de support et résistances
//si c'est possible
SI CPTH<2 OU CPTB<2 ALORS
Afficher "Nombre insuffisant de barres"
SINON
PS=(B2-B1)/(RB2-RB1) //Pente du support
PR=(H2-H1)/(RH2-RH1) //Pente de la résistance
POUR FINHISTO-MINVAL(RH1,RB1)+1 COURS
SUP=PS*(RANGHISTO-RB2)+B2 //Equation du support
RES=PR*(RANGHISTO-RH2)+H2 //Equation de la résistance
FINPOUR
FINSI
FINSI</pre>
Propriétés :
<center><img src='http://images.pro-at.com/200510/b/proprietes_regle.gif' alt='' /></center>
Comme vous le voyez, on utilise pour l'instant 2 paramètres.
Le premier, P1, définit à combien de barres précédentes et suivantes un plus haut (ou un plus bas local) doit être supérieur (ou inférieur). Je m'inspire pour ce faire d'une méthode de détection de plus hauts et plus bas locaux due à T. DeMark qui est présentée par Fredcom dans sa file : "Implémenter l'A T D M F® (nom déposé par P Cahen)...et plus" du forum "Indicateurs et systèmes".
Le second paramètre, P2, définit le nombre de barres à explorer avant la fin de l'historique.
Quelques exemples obtenus :
CANAL ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/eads_k=5_ca.gif' alt='' /></center>
CANAL DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/thomson_k=7_cd.gif' alt='' /></center>
TRIANGLE SYMETRIQUE :
<center><img src='http://images.pro-at.com/200510/b/schneider_k=5_ts.gif' alt='' /></center>
TRIANGLE ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/societe_genarale_k=5_ta1.gif' alt='' /></center>
La droite de résistance devrait occuper la position rouge (voir améliorations possibles plus bas).
TRIANGLE DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/alcan_k=5_td.gif' alt='' /></center>
Idem pour Alcan, la ligne de résistance devrait être la ligne rouge.
BISEAU ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/bnp_paribas_k=5_ba.gif' alt='' /></center>
BISEAU DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/accor_k=5_bd.gif' alt='' /></center>
BROADENING TOP (divergent en "porte-voix"
<center><img src='http://images.pro-at.com/200510/b/axa_k=3_tpv.gif' alt='' /></center>
L'avant-dernier bas est bien présent mais la flèche qui le pointe n'est pas visible (bug de GrapheAT Pro...).
BROADENING BOTTOM
<center><img src='http://images.pro-at.com/200510/b/saint_gobain_k=5_bb.gif' alt='' /></center>
Ces exemples correspondent à des figures qui ne sont pas toutes validées au sens AT du terme...
Pennants et flags sont détectés également.
Les améliorations auxquelles je travaille encore concernent :
- la prise en compte de plus hauts de même valeur, placés de façon adjacente ou dans les P1 cours qui précèdent ou qui suivent (voir à ce sujet une solution proposée par Fredcom à : ) à l'image d'Alcan et de Société Générale présentés plus haut dont les avant-derniers plus hauts doivent être modifiés en conséquence ;
- le tracé de la figure des triangles ascendants et descendants qui sera prolongé jusqu'à leur sommet ;
- l'écriture d'une règle statistique qui valide chacune des figures...ce n'est pas encore gagné là !
A vous de me proposer d'autres améliorations ... si vous le souhaitez...
Cordialement.
Voici l'avant-projet d'un programme qui permet de détecter des figures en canaux et en triangles.
Il est perfectible sur bien des points. Néanmoins je vous le propose tel quel afin que, si vous êtes intéressé, vous me disiez ce que vous souhaiteriez y voir introduire comme amélioration(s).
Programme :
<pre>//Détection de canaux et de figures triangulaires
//le 04/10/2005 v2.1
//Avant-projet à modifier éventuellement
//
SI RANGHISTO=FINHISTO ALORS
//On explore les P2 dernières périodes de l'historique
I=0
TANTQUE I<=P2 FAIRE
//On cherche le plus haut et le plus bas des P1 périodes
//situées avant la période actuelle (à gauche)
HG=Haut(I+P1+1)
BG=Bas(I+P1+1)
J=I+P1+2
TANTQUE J<=I+2*P1 FAIRE
SI HAUT(J)>HG ALORS HG=HAUT(J)
SI BAS(J)<BG ALORS BG=BAS(J)
J=J+1
FINTANTQUE
//On cherche le plus haut et le plus bas des P1 périodes
//situées après de la période actuelle (à droite)
HD=HAUT(I+P1-1)
BD=BAS(I+P1-1)
K=I+P1-2
TANTQUE K>=I FAIRE
SI HAUT(K)>HD ALORS HD=HAUT(K)
SI BAS(K)<BD ALORS BD=BAS(K)
K=K-1
FINTANTQUE
//On compare les extremas précédents
//à ceux de la période actuelle
COND_H=(HAUT(I+P1)>HG) ET (HAUT(I+P1)>HD)
COND_B=(BAS(I+P1)<BG) ET (BAS(I+P1)<BD)
//On mémorise les dernier et avant-dernier
//plus hauts locaux valides et leurs positions
SI COND_H ET CPTH<=1
ALORS
HL(I+P1)=HAUT(I+P1) //On les visualise sur les cours
H2=H1 //On mémorise l'avant-dernier
H1=HAUT(I+P1) //On mémorise le dernier
RH2=RH1 //On fait de même avec leurs positions
RH1=RANGHISTO-I-P1
CPTH=CPTH+1
//Facultatif, pour vérification seulement
//SI CPTH=2
//ALORS
//Afficher "dernier plus haut local H2 : " & ctxt$(H2,2)
//Afficher "date RH2 = " & ctxt$(RH2,0)
//Afficher "avant-dernier plus haut local H1 : " & ctxt$(H1,2)
//Afficher "date RH1 = " & ctxt$(RH1,0)
//FINSI
FINSI
//On mémorise les dernier et avant-dernier
//plus bas locaux valides et leurs positions
SI COND_B ET CPTB<=1
ALORS
BL(I+P1)=-BAS(I+P1)
B2=B1
B1=BAS(I+P1)
RB2=RB1
RB1=Ranghisto-I-P1
CPTB=CPTB+1
//Facultatif, pour vérification seulement
//SI CPTB=2
//ALORS
//Afficher "dernier plus bas local B2: " & ctxt$(B2,2)
//Afficher "date = " & ctxt$(RB2,0)
//Afficher "avant-dernier plus bas local B1: " & ctxt$(B1,2)
//Afficher "date = " & ctxt$(RB1,0)
//FINSI
FINSI
I=I+1
FINTANTQUE
//On trace les droites de support et résistances
//si c'est possible
SI CPTH<2 OU CPTB<2 ALORS
Afficher "Nombre insuffisant de barres"
SINON
PS=(B2-B1)/(RB2-RB1) //Pente du support
PR=(H2-H1)/(RH2-RH1) //Pente de la résistance
POUR FINHISTO-MINVAL(RH1,RB1)+1 COURS
SUP=PS*(RANGHISTO-RB2)+B2 //Equation du support
RES=PR*(RANGHISTO-RH2)+H2 //Equation de la résistance
FINPOUR
FINSI
FINSI</pre>
Propriétés :
<center><img src='http://images.pro-at.com/200510/b/proprietes_regle.gif' alt='' /></center>
Comme vous le voyez, on utilise pour l'instant 2 paramètres.
Le premier, P1, définit à combien de barres précédentes et suivantes un plus haut (ou un plus bas local) doit être supérieur (ou inférieur). Je m'inspire pour ce faire d'une méthode de détection de plus hauts et plus bas locaux due à T. DeMark qui est présentée par Fredcom dans sa file : "Implémenter l'A T D M F® (nom déposé par P Cahen)...et plus" du forum "Indicateurs et systèmes".
Le second paramètre, P2, définit le nombre de barres à explorer avant la fin de l'historique.
Quelques exemples obtenus :
CANAL ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/eads_k=5_ca.gif' alt='' /></center>
CANAL DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/thomson_k=7_cd.gif' alt='' /></center>
TRIANGLE SYMETRIQUE :
<center><img src='http://images.pro-at.com/200510/b/schneider_k=5_ts.gif' alt='' /></center>
TRIANGLE ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/societe_genarale_k=5_ta1.gif' alt='' /></center>
La droite de résistance devrait occuper la position rouge (voir améliorations possibles plus bas).
TRIANGLE DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/alcan_k=5_td.gif' alt='' /></center>
Idem pour Alcan, la ligne de résistance devrait être la ligne rouge.
BISEAU ASCENDANT
<center><img src='http://images.pro-at.com/200510/b/bnp_paribas_k=5_ba.gif' alt='' /></center>
BISEAU DESCENDANT
<center><img src='http://images.pro-at.com/200510/b/accor_k=5_bd.gif' alt='' /></center>
BROADENING TOP (divergent en "porte-voix"
<center><img src='http://images.pro-at.com/200510/b/axa_k=3_tpv.gif' alt='' /></center>
L'avant-dernier bas est bien présent mais la flèche qui le pointe n'est pas visible (bug de GrapheAT Pro...).
BROADENING BOTTOM
<center><img src='http://images.pro-at.com/200510/b/saint_gobain_k=5_bb.gif' alt='' /></center>
Ces exemples correspondent à des figures qui ne sont pas toutes validées au sens AT du terme...
Pennants et flags sont détectés également.
Les améliorations auxquelles je travaille encore concernent :
- la prise en compte de plus hauts de même valeur, placés de façon adjacente ou dans les P1 cours qui précèdent ou qui suivent (voir à ce sujet une solution proposée par Fredcom à : ) à l'image d'Alcan et de Société Générale présentés plus haut dont les avant-derniers plus hauts doivent être modifiés en conséquence ;
- le tracé de la figure des triangles ascendants et descendants qui sera prolongé jusqu'à leur sommet ;
- l'écriture d'une règle statistique qui valide chacune des figures...ce n'est pas encore gagné là !
A vous de me proposer d'autres améliorations ... si vous le souhaitez...
Cordialement.
Commentaire