smallcaps90 ![]() (1022 msg)
Bonjour Katenake,
Il existe 2 types de boucles dans GrapheAT Pro : la boucle POUR et la boucle TANTQUE. Solution avec la boucle POUR : count=41 La boucle POUR N COURS remonte de N cours dans l'historique à la période où elle est exécutée. Lors de la première boucle RANGPOUR, son compteur interne, = 1. Après chaque exécution le compteur RANGPOUR est automatiquement incrémenté d'une unité pour atteindre la valeur RANGPOUR = N à la dernière boucle. La boucle est donc exécutée de la période (N-1) en amont à la période (0) actuelle. C'est la raison pour laquelle il faut initialiser count à 41. De plus, comme de toute façon la boucle est exécutée des périodes les plus anciennes vers la période actuelle, pour respecter la logique Easy Language : l'indice = (RANGPOUR-1), permet d'accéder malgré tout aux différentes valeurs de la plus récente vers la plus ancienne. Une dernière chose : à chaque exécution de la boucle, on se trouve réellement à l'endroit qu'elle "pointe" dans l'historique. De ce fait, si tu tolères que la boucle accède aux valeurs qu'elle doit traiter des plus anciennes à la plus récente, le programme s'écrira : count=41 Le DP de la 3ème ligne est celui du jour où la boucle s'exécute, donc pas besoin d'en préciser l'indice. Solution avec la boucle TANTQUE : Contrairement à la boucle POUR, la boucle TANTQUE maintient le programme au jour de l'historique où elle est exécutée. Pour accéder aux valeurs qui nous intéressent il faut donc utiliser un indice explicite, ton count par exemple, et en gèrer l'évolution. Cette boucle peut être exécutée comme la boucle POUR sur les valeurs auxquelles on accède soit dans le sens des dates croissantes soit dans le sens des dates décroissantes. Pour un parcours dans le sens : dates récentes ----> datesanciennes : count=0 Comme tu le constates, elle est du même type que la boucle FOR du Easy language, hormis le fait qu'il faut incrémenter le compteur ici. Pour un parcours dans le sens inverse : count=40 Le test peut s'écrire sur plusieurs lignes. Dans ce cas il faut le clore par un FINSI : SI value4>360 ET IP=40-count Cordialement.
édité le : 22-09-2005 22:14:52
smallcaps90 ![]() (1022 msg)
Bonsoir FOKI,
Pour te répondre je reprends un extrait du post que j'avais adressé le 05/09 dernier à Michka et qui reste d'actualité quant à sa proposition finale : "........Pour ce qui concerne ta dernière question, je ne crois pas que des programmes de reconnaissance automatique des figures chartistes telles que : doubles sommets/creux, ETE directes/inverses, triangles, biseaux, diamants...aient déjà été postées dans la présente file. Il s'agit de problèmes difficiles à programmer avec un langage classique tel que celui de GrapheAT Pro. Pierre Orphelin présente dans son bouquin, p.177 et suivantes, un exemple de programme de détection d'ETE associé à un système de trading écrit en Easy Language. Il emploie pour ce faire la fonction ZigZag à partir de laquelle il reconnait la structure géométrique de l'ETE. Les résultats obtenus dépendent évidemment du paramètre d'amplitude choisi pour définir le ZigZag. Nous disposons dans la présente file de cette fonction ZigZag, il ne reste plus qu'à faire! On pourrait très bien employer la même approche que celle que nous avions mise en oeuvre pour concevoir les programmes sur les divergences...s'il y a des utilisateurs de GrapheAT Pro intéressés..." Par conséquent, si tu es intéressé par la détection des triangles, on peut tenter de démarrer une étude pour voir s'il est possible de le faire avec GrapheAT Pro. Il faut écrire un cahier de s charges... On peut trouver également les formules décrivant les figures chartistes dans le document de Ben Omrane et Van Oppens suivant : http://www.isys.ucl.ac.be/working_papers/documents... - Cordialement.
ketenake ![]() (37 msg) ketenake' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonsoir Edge, merci pour le renvoi aux explications de la page 55.
Bonsoir Smallcaps, merci pour les precieuses explications sur les diverses fonctions de graphat et les différentes traductions proposées. Ta maitrise de la programmation est epoustouflante ! A bientot, Cordialemnt, Ketenake.
FOKI ![]() (2011 msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonjour Smallcaps
Je connaissais ce document et c'est d'ailleurs une des raisons pour laquelle j'en suis venu à parler de la détection des figures triangles ![]() Je vais voir dans la journée si je peux poser la base d'un "cahier des charges"
Laisser au marché, nous donner la direction...
FOKI ![]() (2011 msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonsoir Smallcaps
J'ai passé ma journée de vendredi à faire le ![]() Si tu le veux bien on peut commencer par la détection d'un canal qui me semble à priori plus facile (pas de problème d'angle). A mon avis la formation d'un canal se fait au minimum avec une détection des 2 derniers sommets sur les cours et des 2 derniers creux (S'inspirer du prog de détection de divergences??). ![]() Pour confirmer que nous sommes dans un canal on pourrait chercher à valider les parallèles par la soustraction des cours sur les sommets et creux détectés comme 1-2 = 3-4 = 3-2 On pourrait accepter via un paramètre P un écart max tolérable dans ce calcul. Pour valider encore plus le canal on pourrait ajouter la présence d'un 5ème voir 6ème points ect ... ![]() Le problème c'est qu'il faut identifier 3 sommets ou (et) creux sur les cours (est ce possible ??) On peut penser que le calcul de validation d'un canal par la soustraction des creux et sommets soit encore acceptable avec un paramètre de tolérance. Pour les paramètres on pourrait reprendre en parti ceux dans le prog de divergence : //PARAMETRES P1 à P+n : // // //LE 1ER CREUX DU CANAL DEVRA SE TROUVER //DANS LES P1 PERIODES PRECEDANT FINHISTO-P4. // //LE 2EME CREUX DU CANAL DEVRA SE TROUVER //DANS LES P2 PERIODES PRECEDANT LE 1ER. // //CHAQUE CREUX SUR LES COURS POURRA SE TROUVER //DANS LES P3 PERIODES PRECEDANT LES SOMMETS // // //P5=TOLERANCE SUR ECART SOMMET/CREUX DES POINTS 1.2.3.4... // // //PARAMETRES OPTIONNELS // //SEV : DEGRE DE SEVERITE POUR ADMETTRE UN CANAL //SEV=1 : IMPOSE AU DERNIER CREUX /SOMMET QUE LE STOCHASTIQUE A CROISE SON SIGNAL (SA/SV) //SEV=2 : IDEM S1 ...MAIS AVEC LE MACD //SEV=3 : N'IMPOSE RIEN Question peut t'on utiliser ce principe pour la détection de ces formes de triangles ?? ![]() ![]() Voili voilo
édité le : 25-09-2005 11:08:33Laisser au marché, nous donner la direction...
sphinx ![]() (91 msg)
merci à tous, je me suis penché sur la stat multiple, ben c'est pas évident déjà dans la sélection des stats que l'on veut brasser puisqu'on est limité avec le nombre de colonnes. Bref , faut que ça murisse
smallcaps90 ![]() (1022 msg)
Bonsoir FOKI,
Merci pour ton cahier des charges. Je suppose qu'il doit être tout à fait envisageable de traiter les canaux // (horizontaux et obliques) ainsi que toutes les figures en triangles dans la même approche. Pour ce faire, je pense utiliser la fonction "ZigZag"...si cela s'avère possible bien sûr. Je vais regarder çà de plus près prochainement. Cordialement.
lego ![]() (21 msg) lego' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonsoir tout le monde,
Bonjour SMALLCAPS ET SPHINX , Voir page 63 où smallcaps explique le programme J'ai corrigé un peu le programme pour pouvoir mettre beaucoup plus d'indicateurs (6 ici pour le test) L'inconvénient c'est que les indicateurs sont un peu mélangé pour chaque action Pour ajouter un indicateur ou une règle d'indicateur il suffit de voir ci-dessous et de dupliquer les lignes 9 colonnes à déclarer pour les propriétés les 8 premiers colonnes à déclarer comme texte le 9 ème colonne est à déclarer comme nombre , ne pas oublier de mettre tri=décroissant pour la 9ème colonne en faites, on peut mettre une quinzaine d'indicateurs je crois ou plus , parce à chaque test il y a une partie d'indicateurs qui sont sélectionnés seulement. j'ai essayer d'autres solutions pour écrire un peu plus simple mais j'arrive pas. COL(0)=0 RADX=0 RMACD=0 RCCI=0 RKST=0 RMACD_HEMEL=0 VHULL=0 cpt=0 // ******* (ne vient pas des règles indicateurs) // Début de tendance // SI ADX > 20 ET ADX <30 ALORS RADX = 1 N=1 FINSI // Croisement de la MACD avec sa moyenne mobile // SI CROISE(MACD,MMACD)>0 ALORS SI MACD(1) < MACD(0) ALORS RMACD=1 N=N+1 FINSI FINSI // Cloture en dessous de LBOLL SI CLOTURE<LBOLL ALORS RBOLL= 1 N=N+1 FINSI // SI CROISE(CCI,0)> 0 ALORS SI CCI(1)< CCI(0) ALORS RCCI=1 N=N+1 FINSI FINSI // ******* vient des règles indicateurs // Ca ressemble un peu au indicateur Macd_Hemel // souvent Kst Ct déctecte 1 ou 2 jours avant Macd_Hemel SI CROISE(KSTCT.KST,KSTCT.MKST)> 0 ALORS SI KSTCT.KST(1) < KSTCT.MKST(0) ALORS SI KSTCT.KST(0) < -1 ALORS RKST=1 N=N+1 FINSI FINSI FINSI SI CROISE(MACD_HEMEL.MACD_HEMEL,MACD_HEMEL.MMACD_HEMEL)> 0 ALORS SI MACD_HEMEL.MACD_HEMEL(1) < MACD_HEMEL.MMACD_HEMEL(0) ALORS SI MACD_HEMEL.MACD_HEMEL(0) < 0 ALORS RMACD_HEMEL=1 N=N+1 FINSI FINSI FINSI // SI M_HULL.FLECHE ALORS VHULL=1 N=N+1 FINSI // 2- N = nombre de tests réussis par chaque action //Utilisé pour trier les résultats par ordre décroissant // COLONNE9 = N tantque cpt < 8 faire cpt=cpt+1 SI COL(CPT) = 0 ALORS SI RADX = 1 ALORS afficher "RADX = " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "ADX" FINSI SI CPT = 2 ALORS COLONNE2= "ADX" FINSI SI CPT = 3 ALORS COLONNE3= "ADX" FINSI SI CPT = 4 ALORS COLONNE4= "ADX" FINSI SI CPT = 5 ALORS COLONNE5= "ADX" FINSI SI CPT = 6 ALORS COLONNE6= "ADX" FINSI SI CPT = 7 ALORS COLONNE7= "ADX" FINSI SI CPT = 8 ALORS COLONNE8= "ADX" FINSI RADX=0 FINSI FINSI SI COL(CPT) = 0 ALORS SI RMACD = 1 ALORS afficher "RMACD = " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "MACD" FINSI SI CPT = 2 ALORS COLONNE2= "MACD" FINSI SI CPT = 3 ALORS COLONNE3= "MACD" FINSI SI CPT = 4 ALORS COLONNE4= "MACD" FINSI SI CPT = 5 ALORS COLONNE5= "MACD" FINSI SI CPT = 6 ALORS COLONNE6= "MACD" FINSI SI CPT = 7 ALORS COLONNE7= "MACD" FINSI SI CPT = 8 ALORS COLONNE8= "MACD" FINSI RMACD=0 FINSI FINSI SI COL(CPT) = 0 ALORS SI RCCI = 1 ALORS afficher "RCCI = " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "CCI" FINSI SI CPT = 2 ALORS COLONNE2= "CCI" FINSI SI CPT = 3 ALORS COLONNE3= "CCI" FINSI SI CPT = 4 ALORS COLONNE4= "CCI" FINSI SI CPT = 5 ALORS COLONNE5= "CCI" FINSI SI CPT = 6 ALORS COLONNE6= "CCI" FINSI SI CPT = 7 ALORS COLONNE7= "CCI" FINSI SI CPT = 8 ALORS COLONNE8= "CCI" FINSI RCCI=0 FINSI FINSI // ********* vient des règles indicateurs SI COL(CPT) = 0 ALORS SI RKST = 1 ALORS afficher "RSKT= " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "KST" FINSI SI CPT = 2 ALORS COLONNE2= "KST" FINSI SI CPT = 3 ALORS COLONNE3= "KST" FINSI SI CPT = 4 ALORS COLONNE4= "KST" FINSI SI CPT = 5 ALORS COLONNE5= "KST" FINSI SI CPT = 6 ALORS COLONNE6= "KST" FINSI SI CPT = 7 ALORS COLONNE7= "KST" FINSI SI CPT = 8 ALORS COLONNE8= "KST" FINSI RKST=0 FINSI FINSI SI COL(CPT) = 0 ALORS SI RMACD_HEMEL = 1 ALORS afficher "RMACD_HEMEL= " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "M_HEMEL" FINSI SI CPT = 2 ALORS COLONNE2= "M_HEMEL" FINSI SI CPT = 3 ALORS COLONNE3= "M_HEMEL" FINSI SI CPT = 4 ALORS COLONNE4= "M_HEMEL" FINSI SI CPT = 5 ALORS COLONNE5= "M_HEMEL" FINSI SI CPT = 6 ALORS COLONNE6= "M_HEMEL" FINSI SI CPT = 7 ALORS COLONNE7= "M_HEMEL" FINSI SI CPT = 8 ALORS COLONNE8= "M_HEMEL" FINSI RMACD_HEMEL=0 FINSI FINSI SI COL(CPT) = 0 ALORS SI VHULL = 1 ALORS afficher "M_HULL= " & CPT COL(cpt)=CPT SI CPT = 1 ALORS COLONNE1= "M_HULL" FINSI SI CPT = 2 ALORS COLONNE2= "M_HULL" FINSI SI CPT = 3 ALORS COLONNE3= "M_HULL" FINSI SI CPT = 4 ALORS COLONNE4= "M_HULL" FINSI SI CPT = 5 ALORS COLONNE5= "M_HULL" FINSI SI CPT = 6 ALORS COLONNE6= "M_HULL" FINSI SI CPT = 7 ALORS COLONNE7= "M_HULL" FINSI SI CPT = 8 ALORS COLONNE8= "M_HULL" FINSI VHULL=0 FINSI FINSI FINtantque SI N > 0 ALORS SELECTION FINSI Exemple : Groupe : cac40 Date : 27/09/2005 MACD CCI KST M_HEMEL 4,0 Lagardere ADX MACD KST 3,0 Accor ADX M_HULL 2,0 France Telecom MACD KST 2,0 Suez Lyonnaise des Eaux MACD 1,0 Air Liquide ADX 1,0 Arcelor M_HULL 1,0 BNP ADX 1,0 Credit agricole ADX 1,0 EADS ADX 1,0 Pernod Ricard ADX 1,0 Pinault Printemps Redoute ADX 1,0 Saint Gobain ADX 1,0 Sanofi Synthelabo ADX 1,0 Sodexho Alliance ADX 1,0 Vinci Cordialement
lego ![]() (21 msg) lego' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
j'ai oublié de préciser c'est un programme qui selectionne les achats seulement
Pour la vente écrire le meme programme en changeant les tests c'est plus simple pour moi de diviser en deux programmes (achat et vente) cordialement
sphinx ![]() (91 msg)
très sympa, je regarderai ça ce WE. J'ai commencé à plancher sur vos posts précédents et j'ai été confronté à 2 difficultés: la première, le choix des indicateurs.
Tu apportes une réponse: faire un test vente et un test achat et un tri de tout ça. la 2ème, le paramétrage avec Rindic, la programmation, c'est pas mon truc et encore moins quand je suis claqué:-)) merci à toi. cordialement Sphinx
lego ![]() (21 msg) lego' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonsoir tout le monde,
Disons sans tes idées sphinx et celui de smallcaps , je n'arriverai pas, je trouve la programmation sur graphe at vraiment ardu .Quand j'aurai un peu d'argent, j'essaierai d'acheter aussi Wealth-Lab Developer 3.0 (environ 650 euros) , la programmation a l'air beaucoup plus facile (c'est en pascal) , je connais un peu le langage pascal. Une question sur graphe at : lorsque j'affiche les mm150 sur graphe at en journalier ou en hedbomadaire, en regardant j'ai l'impression il affiche la meme chose ? en journalier c'est pas 150 jours en hedbo c'est pas 150/5 = 30 semaines ? si quelqu'un connait la réponse merci de m'expliquer. cordialement
FOKI ![]() (2011 msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonjour Lego
Merci pour tes prog ![]() Sur le graph jour = 150 jours (car une bougie = 1 jour sur le graph jour) Sur le graph Semaine = 150 semaines (car une bougie = 1 semaine sur le graph semaine) Donc sur le graph mois = 150 mois ect... FOKI
Laisser au marché, nous donner la direction...
lego ![]() (21 msg) lego' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ
Bonsoir Foki,
merci pour tes explications cordialement
![]() LONGWAY' - ![]() (38 msg)
Bonjour,
J’ai créé un tableau Excel une sorte de table des matières qui reprend l’intégralité Indicateurs et des Statistiques de Graphe AT qui ont traités avec les différents post les ayant fait évoluer avec un lien amenant directement à ceux-ci. Désormais, je mets à jour régulièrement ce tableau. Il est à disposition pour toutes personnes intéressées.
sphinx ![]() (91 msg)
suis bien évidemment intéressé. Merci pour cette initiative.
65
|