![]() chzame' - ![]() (384
msg) .
édité le : 14-09-2005
00:28:29
![]() chzame' - ![]() (384
msg) Bon voilà, je viens de recevoir
une nouvelle clé par mlog. Tout est rentré dans l'ordre, ![]() Pour Répondre à sphinx, je pense que de mettre le repertoire d'installation sur un dd différent que celui du systéme evite tout désagrément lors d'un formatage. Par contre, il ne faut pas changer de support au logiciel. Donc si le DD est défectueux même si tu arrive à récupérer des données, le code aura changé car le logiciel aura changé de support. Cordialement. (Je rends la parole à la programmation désolé pour cette interméde et encore bravo à smallcaps90, RickenBroc et les autres.) Cordialement édité
le : 14-09-2005 00:54:00
smallcaps90 ![]() (1022
msg) Bonjour Michka, Difficile d'exprimer ce que l'on veut faire en général, on est bien plus à l'aise en expliquant comment on veut le faire... Tu souhaiterais visiblement repèrer les + hauts et + bas des cours et leur positions temporelles en vue de tracer ultérieurement des lignes de tendance haussières et baissières. A la lecture de ton programme je remarque un certain nombre de choses. 1- Suivant les valeurs de vp1 et vp2, tu sélectionnes : BAS et HAUT si vp1 et vp2=0, BAS et CLOTURE si vp1=0 et vp2=1, HAUT et CLOTURE si vp1=1 et vp2=0, CLOTURE et CLOTURE si vp1=vp2=1. Ok... Est-ce vraiment utile de recopier ces cours dans des variables intermédiaires en vue de tests ultérieurs? On pourrait effectuer ces tests sur les cours directement... 2- Tu mets donc en place une boucle POUR dans laquelle tu réalises en premier lieu ces recopies. Lorsque la boucle atteint le dernier jour de l'historique (lorsque dec_fh=0, ce qui sera la cas le plus courant...), les valeurs de bas(-1), haut(-1) et cloture(-1) sont encore inconnues. En fait GrapheAT Pro leur donne les valeurs qu'il trouve le premier jour de l'historique. Avec mon historique il affecte 56.05 à ce + bas et 56.90 au + haut ...dur pour la suite (!)... Regarde le graphe suivant de Novartis N sur lequel j'ai tracé tes variables VAR_B2 en rouge épais, VAR_B en rouge fin, VAR_B1 en rouge pointillé, VAR_H2 en bleu épais, VAR_H en bleu fin et VAR_H1 en bleu pointillé : ![]() Pour éviter ce cas de figure, on pourrait effectuer directement la comparaison : SI BAS(2)>BAS(1) ET BAS(1)<BAS(0) ALORS .... et c'est alors BAS(1) qui sera le mini local si la condition est satisfaite et non plus BAS. ![]() Idem pour les hauts et les clôtures. Mais quid du cas dans lequel BAS(2)=BAS(1) alors que BAS(3)>BAS(2) et BAS(1)<BAS(0)? BAS(1) pourrait toujours être considéré comme un mini local. Ce cas existe sur Novartis N ci-dessus...J'en tiendrai compte dans le programme proposé plus bas. ![]() On pourait tenir compte d'autres cas de figures, mais ne compliquons pas... 3- Pour gèrer la suite, le principal souci que tu rencontres, comme je te l'avais signalé dans mon précédent post, est que tu utilises dans la boucle POUR l'indice "rang" que tu incrémentes si tu as trouvé un + bas (ou un + haut) sur les cours. L'indice "rang" fait double emploi avec l'indice naturel de la boucle POUR (RANGPOUR dont on dispose dans GrapheAT Pro) et les valeurs trouvées se placent dans les tableaux suivant la valeur de cet indice, mais aussi en fonction de l'état d'avancement de la boucle POUR. Si rang=1 par exemple, elles se placeront le jour qui précède celui que traite actuellement la boucle POUR... Voici ce qu'on obtient pour la même action Novartis N avec nb_je=30 (juste pour limiter la taille des tableaux à afficher) : ![]() Si on s'intéresse au + bas local =59.25 de l'action trouvé le 29/08/05, on constate qu'il est d'abord stocké en date du 24/08/2005. Cela est normal puisque l'indice rang est égal à 3 au moment où la boucle POUR pointe sur les cours du 29/08/05. Ensuite cette valeur est redéplacée au 29/08/05 par ton algorithme. Le 29 est la bonne date (voir les flèches inclinées bleues épaisses dans le tableau ci-dessus). J'ai indiqué les autres valeurs de l'indice rang sous le tableau. On voit bien que rang est incrémenté avec une période qui ne dépend que de la position des + bas locaux... Ne vaudrait-il mieux pas repèrer directement ces + bas en recopiant leur valeur dans un tableau ad-hoc aux dates où ils se produisent par exemple? Les valeurs autres que celles de ces minima locaux seraient mises à 0. On pourrait opérer de la façon suivante : ------------------
------------------ Ne sois pas surpris par l'allure inhabituelle des instructions dans la boucle POUR : il s'agit de conditions écrites sous forme logique qui remplacent simplement des SI ALORS... SINON...mais de façon plus concise. Par exemple l'instruction : COND_BAS = (VP1=0) ET ((BAS(2)>BAS(1) ET BAS(1)<BAS) OU (BAS(3)>BAS(2) ET BAS(2)=BAS(1) ET BAS(1)<BAS)) crée une condition logique COND_BAS qui vaudra 1 si VP1=0 et si les conditions sur les BAS sont satisfaites. COND_BAS vaudra 0 sinon. On reprend cette condition ensuite pour affecter le + bas trouvé : BAS(1) au MINI_LOCAL(1) sous la forme : MINI_LOCAL(1) = BAS(1)*COND_BAS + CLOTURE(1)*COND_CLOTURE_B La 2ème partie du 2ème membre est relative aux + bas des clôtures si elles sont sélectionnées par VP1=1 (voir COND_CLOTURE_B plus haut dans le programme). On opère de même avec les autres extrema compte tenu des valeurs affectées à VP1 et VP2. Exemples avec Novartis N: ![]() Voici un extrait du tableau qu'affiche GrapheAT Pro pour le cas où VP1=0 et VP2=0 en date d'hier. ![]() ![]() ![]() ![]() Propriétés : ![]() 4- Boucle TANTQUE. Attention, au contraire de la boucle POUR, celle-ci ne modifie pas automatiquement l'emplacement qu'elle pointe. Il faut y gèrer explicitement un indice et y faire référence pour accéder à des périodes autres que celle sur laquelle on se trouve lors du lancement de la boucle et qui demeure constante. Ranghisto reste donc constant pendant toute la durée d'exécution de ce type de boucle. Il te reste maintenant à développer une façon de procéder pour sélectionner parmi les mini/maxi_locaux trouvés ceux qui permettront de tracer les lignes de tendance souhaitées. Je te souhaite bon courage... Cordialement. édité
le : 14-09-2005 19:11:33
michka ![]() (26
msg) michka' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Bonsoir Smallcaps, Je viens de voir ta réponse et te remercie pour tout ce que tu as écris, Tu es vraiment super sympa. Je regarde tout cela et essaie de finir mon programme. Encore mille mercis Cordialement
michka ![]() (26
msg) michka' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Bonjour Smallcaps, Encore merci pour ta réponse qui est dès plus complète. Comme tu le dis dans ton post, "on est plus à l’aise en expliquant comment on veut le faire". De ce côté, tu es champion, car tes explications sont claires. Je m’aperçois que toutes valeurs mémorisées dans Graphe AT Pro sont historisées, et qu’il n’est pas possible de créer un tableau indépendant (vieux reste de programmation sous Basic). Ce serai bien que Mlog complète son produit déjà très agréable par ce type de tableau ou matrice, car il est plus facile de travailler avec les valeurs qui nous intéressent et qui ont été mises dans un tableau et qu’elles se suivent. Je vais revenir sur quelques points pour préciser mon ébauche de programme : - Les variables vp1 et vp2 ne servent qu’à choisir sur quelle valeur on veut travailler, soit les +haut le les +bas ou sur la clôture. C’est pourquoi j’utilise les variables intermédiaires var_, cela évite de faire les tests à chaque fois. - Dans ton premier tableau de Novartis, on voit bien le décalage qui est créé par la variable rang. Pour moi elle me permettait de créer mon tableau indépendant comme je l’ai écrit plus haut.. Nous nous apercevons qu’il est parfois utile de bien connaître le principe de compilation. Cela explique que dans ma boucle tantque je n’arrivais pas à retrouver mes valeurs. Il faut donc que je retravaille le structure du programme pour essayer d’écrire se programme des tendances. Encore merci Cordialement
smallcaps90 ![]() (1022
msg) Bonjour Michka, C'est bien çà, on ne peut utiliser actuellement que des variables "historisées" pour simuler des tableaux. Une nouvelle version du logiciel incluant cette fonctionnalité serait évidemment la bienvenue. Patience... Comme je te l'affirmais, la difficulté est de bien gèrer les indices définissant les positions des valeurs contenues dans ces tableaux. Que ce soit avec une boucle POUR ou une boucle TANTQUE, dont les principes de fonctionnement sont très différents ici, il est quand-même assez aisé de les calculer. On peut donc s'en sortir sans trop de peine. Alors au boulot ma foi... Cordialement.
smallcaps90 ![]() (1022
msg) Bonjour à toutes et à tous, Si la statistique de recherche des divergences positives potentielles entre Cours de clôture et le Répulse vous intéresse, c'est ici... Programme : -----------------------
![]() Résultats en date d'hier sur le CAC40 avec les valeurs indiquées des paramètres ( P1 à P5 se règlent dans le programme indicateur DIV_POS_REPULSE, alors que CHOIX, EI, EC se règlent dans la statistique) : P1=10 P2=20 P3=2 P4=0 P5=1 CHOIX=1 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences positives potentielles entre cours et le REPULSE DIV POSITIVE POTENTIELLE SUR : AGF DIV POSITIVE POTENTIELLE SUR : Michelin DIV POSITIVE POTENTIELLE SUR : Publicis Group DIV POSITIVE POTENTIELLE SUR : STMicroelectronics P1=10 P2=20 P3=2 P4=0 P5=1 EI=0.01 EC=0.01 CHOIX=2 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences positives potentielles entre cours et le REPULSE DIV POSITIVE VALIDEE SUR : Michelin DIV POSITIVE VALIDEE SUR : STMicroelectronics P1=10 P2=20 P3=2 P4=0 P5=0 CHOIX=1 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences positives potentielles entre cours et le REPULSE DIV POSITIVE POTENTIELLE SUR : AGF DIV POSITIVE POTENTIELLE SUR : Dexia DIV POSITIVE POTENTIELLE SUR : France Telecom DIV POSITIVE POTENTIELLE SUR : L'Oreal DIV POSITIVE POTENTIELLE SUR : Lagardere DIV POSITIVE POTENTIELLE SUR : Michelin DIV POSITIVE POTENTIELLE SUR : Peugeot DIV POSITIVE POTENTIELLE SUR : Publicis Group DIV POSITIVE POTENTIELLE SUR : Renault DIV POSITIVE POTENTIELLE SUR : STMicroelectronics DIV POSITIVE POTENTIELLE SUR : TF1 DIV POSITIVE POTENTIELLE SUR : Vivendi universal P1=10 P2=20 P3=2 P4=0 P5=0 EI=0.01 EC=0.01 CHOIX=2 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences positives potentielles entre cours et le REPULSE DIV POSITIVE VALIDEE SUR : France Telecom DIV POSITIVE VALIDEE SUR : L'Oreal DIV POSITIVE VALIDEE SUR : Michelin DIV POSITIVE VALIDEE SUR : Renault DIV POSITIVE VALIDEE SUR : STMicroelectronics DIV POSITIVE VALIDEE SUR : TF1 Exemple avec ST Micro : ![]() Pour la recherche des divergences négatives potentielles maintenant : Programme : -----------------------
![]() Résultats en date d'hier sur le CAC40 avec les valeurs indiquées des paramètres : P1=5 P2=20 P3=2 P4=0 P5=1 CHOIX=1 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences négatives potentielles entre cours et le REPULSE DIV NEGATIVE POTENTIELLE SUR : Alcatel DIV NEGATIVE POTENTIELLE SUR : Casino Guichard DIV NEGATIVE POTENTIELLE SUR : Danone DIV NEGATIVE POTENTIELLE SUR : Essilor International DIV NEGATIVE POTENTIELLE SUR : Renault DIV NEGATIVE POTENTIELLE SUR : Schneider DIV NEGATIVE POTENTIELLE SUR : Suez DIV NEGATIVE POTENTIELLE SUR : Thales DIV NEGATIVE POTENTIELLE SUR : Vivendi universal P1=5 P2=20 P3=2 P4=0 P5=1 EI=0.01 EC=0.01 CHOIX=2 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences négatives potentielles entre cours et le REPULSE DIV NEGATIVE VALIDEE SUR : Alcatel DIV NEGATIVE VALIDEE SUR : Casino Guichard DIV NEGATIVE VALIDEE SUR : Danone DIV NEGATIVE VALIDEE SUR : Essilor International DIV NEGATIVE VALIDEE SUR : Suez DIV NEGATIVE VALIDEE SUR : Thales DIV NEGATIVE VALIDEE SUR : Vivendi universal P1=5 P2=20 P3=2 P4=0 P5=0 CHOIX=1 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences négatives potentielles entre cours et le REPULSE DIV NEGATIVE POTENTIELLE SUR : Alcatel DIV NEGATIVE POTENTIELLE SUR : Casino Guichard DIV NEGATIVE POTENTIELLE SUR : Danone DIV NEGATIVE POTENTIELLE SUR : Essilor International DIV NEGATIVE POTENTIELLE SUR : Renault DIV NEGATIVE POTENTIELLE SUR : Schneider DIV NEGATIVE POTENTIELLE SUR : Suez DIV NEGATIVE POTENTIELLE SUR : Thales DIV NEGATIVE POTENTIELLE SUR : Vivendi universal P1=5 P2=20 P3=2 P4=0 P5=0 EI=0.01 EC=0.01 CHOIX=2 Groupe : cac40 Date : 16/09/2005 Validation/Confirmation des divergences négatives potentielles entre cours et le REPULSE DIV NEGATIVE VALIDEE SUR : Alcatel DIV NEGATIVE VALIDEE SUR : Casino Guichard DIV NEGATIVE VALIDEE SUR : Danone DIV NEGATIVE VALIDEE SUR : Essilor International DIV NEGATIVE VALIDEE SUR : Suez DIV NEGATIVE VALIDEE SUR : Thales DIV NEGATIVE VALIDEE SUR : Vivendi universal Un exemple avec Casino-Guichard : ![]() Cordialement.
sphinx ![]() (91
msg) j'arrive pas à programmer deux
stats très simples , c'est pourqoi je sollicite de l'aide. 1) stat pour détecter les valeurs qui se situent à l'intérieur des bandes de bollinger ET dont l'ecartement de ces bandes ne dépasse pas 3% sur 5 jours. En clair, que la valeur se situe pendant 5 jours à l'intérieur de bandes de bollinger hyperserrées. La variable 5 jours pouvant être modifiée à l'envie. 2) détection de figure chandeliers: je souhaiterai pouvoir identifier 2 types de figure apparaissant sur une valeur: 1)un marteau suivi d'un marteau inversé 2)un marteau inversé suivi d'un marteau Avec mes remerciements
FOKI ![]() (2011
msg) FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ Merci Smallcaps ![]() ![]() Je vais de ce pas, mettre ce nouveau prog de divergence ... qui va bien compléter ceux déjà existants et que j'utilise ... journalièrement. FOKI Laisser au marché,
nous donner la direction...
smallcaps90 ![]() (1022
msg) Merci pour tes encouragements FOKI... ![]() Sphinx voici 2 stats qui peuvent résoudre tes problèmes. 1- BB resserrées. Programme ;
![]() Résultats sur le CAC40 : Groupe : cac40 Date : 16/09/2005 Statistique de recherche des valeurs dont les cours sont situés à l'intérieur des BB et dont la variation des BB reste <= 3% sur 5 jours. Variation maxi entre les BB : 0,0264 Publicis Group Variation maxi entre les BB : 0,0231 Saint Gobain ![]() 2- Détection des figures en marteaux. Programme :
![]() Essai sur le SRD avec CHOIX=1 et la boucle POUR réactivée : (attention mon SRD n'est pas forcément à jour ds ma base...) Groupe : SRD Date : 16/09/2005 Statistique de reconnaissance de marteaux et marteaux inversés ou de l'inverse Marteau puis Marteau inversé le : 16/05/2005 Bollore Marteau puis Marteau inversé le : 03/05/2005 GFI informatique Marteau puis Marteau inversé le : 13/09/2005 Hermes intl Marteau puis Marteau inversé le : 06/07/2005 Merck and Co Marteau puis Marteau inversé le : 22/06/2005 Neopost Marteau puis Marteau inversé le : 10/08/2005 Oberthur card syst Marteau puis Marteau inversé le : 21/07/2005 Pinguely-haulotte Marteau puis Marteau inversé le : 01/06/2005 Provimi Marteau puis Marteau inversé le : 18/07/2005 Sony Corp. Marteau puis Marteau inversé le : 28/07/2005 Trader classif.med Marteau puis Marteau inversé le : 02/06/2005 Unilog Marteau puis Marteau inversé le : 26/05/2005 Wendel Investissement Puis avec CHOIX=2 : Groupe : SRD Date : 16/09/2005 Statistique de reconnaissance de marteaux et marteaux inversés ou de l'inverse Marteau inversé puis Marteau le : 22/07/2005 Allianz Marteau inversé puis Marteau le : 09/06/2005 Alten Marteau inversé puis Marteau le : 11/08/2005 Canal+ Marteau inversé puis Marteau le : 09/06/2005 Dassault Systemes Marteau inversé puis Marteau le : 02/09/2005 Deutsche bank Marteau inversé puis Marteau le : 18/07/2005 Hermes intl Marteau inversé puis Marteau le : 02/05/2005 Hsbc holdings plc Marteau inversé puis Marteau le : 09/08/2005 Oberthur card syst Marteau inversé puis Marteau le : 13/07/2005 Penauille Polyservices Marteau inversé puis Marteau le : 16/09/2005 Sony Corp. Marteau inversé puis Marteau le : 09/08/2005 Telefonica Marteau inversé puis Marteau le : 29/07/2005 Trader classif.med ![]() Cordialement. édité
le : 18-09-2005 11:47:00
sphinx ![]() (91
msg) grand merci Smallcaps. Mais j'ai juste un soucis, il ne détecte que le marteau inversé et le marteau de Sony du 16/9. Je n'ai aucune autre valeur du SRD qui s'affiche ( dans la liste que tu proposes pour les 2 choix). j'ai fait la modif à " CHOIX =1" par CHOIX=2 pour le 2éme choix , c'est pas ça?
smallcaps90 ![]() (1022
msg) Bonsoir Sphinx, C'est normal : - si tu cherches les figures qui peuvent apparaître lors de la dernière période seulement (avec CHOIX=1 ou CHOIX=2 peu importe) , tu n'actives pas la boucle POUR. Ainsi la stat s'appliquera uniquement au dernier jour de ton historique (fais quand-même attention à la date qui se trouve en haut dans la fenêtre Statistiques dans laquelle tu lances le programme). Dans ce cas, pour le SRD, seul Sony apparaît avec le CHOIX=2 et aucune valeur n'apparaît avec le CHOIX=1. - par contre, si comme je l'ai fait, tu veux explorer plus de périodes que la dernière, il faut que tu actives la boucle POUR en enlevant les 2 barres de commentaires devant le POUR et le FINPOUR, et que tu choisisses le nombre de périodes dont tu veux remonter dans ton historique. Bien cordialement. édité
le : 18-09-2005 17:27:48
sphinx ![]() (91
msg) génial , tout baigne. Je ne connaissais
pas cette astuce d'activation de boucle. J'ai collé le programme pour le weekly
et ça fonctionne aussi. Avec tous mes remerciements et mon amitié. Sphinx
smallcaps90 ![]() (1022
msg) OK Sphinx... Bien sûr tu peux utiliser le même programme en Weekly ou en Monthly, çà marche également. Mais pas sur les 3 types de périodes simultanément dans le cas présent. Une petite nouveauté en passant pour ceux de nos amis que cela intéresserait... Il s'agit d'un nouvel indicateur que présente J. Ehlers, toujours aussi créatif, dans la livraison de TASC d'octobre 2005. Ehlers le nomme FRAMA ce qui signifie : FRactal Adaptive Moving Average. Ce n'est ni plus ni moins qu'une moyenne exponentielle dont on fait varier le paramètre de calcul en fonction de considérations de géométrie fractale sur les cours. Programme : ----------------------------
Propriétés de la règle : ![]() Un exemple avec TF1 et un paramètre de recul du calcul P1=20 : ![]() Bien que paraissant un peu plus éloignée des cours que d'autres moyennes mobiles adaptatives déjà présentées dans cette file, la FRAMA aurait 2 avantages sur celles-là. Le premier avantage, et non des moindres, est qu'elle est relativement "plate" dans les périodes de trading range horizontal. Elle pourrait par conséquent être utilisée pour éviter les nombreux faux-signaux lorsqu'on souhaite utiliser une technique du type croisements de moyennes mobiles. On peut montrer que le momentum à 5 jours (ROC) de la FRAMA est lui aussi évidemment beaucoup plus plat que le même momentum calculé sur le prix tel qu'il est utilisé dans cette nouvelle moyenne. C'est ce que montre le graphe ci-dessous pour TF1. ![]() On constate bien la platitude plus importante du momentum de la FRAMA (courbe bleue sous les cours) dans la zone de trading range horizontal AB, comparativement au momentum classique (courbe rouge). Le deuxième avantage de la FRAMA est sa plus grande réactivité aux changements de tendances : une augmentation de moins de 1% de son momentum à 5 jours traduirait un changement de tendance. On prendrait ainsi position beaucoup plus tôt que sur un breakout du canal horizontal. Je n'ai pas encore eu le temps d'examiner la véracité de tout ceci, mais je livre ce nouvel indicateur à votre jugement... Qu'en pensez-vous? Si vous êtes intéressés également par le tracé des momentums, en voici le programme très simple que j'ai défini comme règle dérivée de la précédente pour pouvoir récupérer les valeurs de la variable FRAMA :
![]() Cordialement. édité
le : 18-09-2005 20:27:09
sphinx ![]() (91
msg) très surprenant le ROC Frama, il
ressemble comme 2 gouttes d'eau à l'indice coppock déjà développé ici. La ressemblance
est frappante avec les pics et les creux. Par contre , il est plus lissé dans
la phase "sans tendance" car il est posé sur la ligne du zéro., donc plus simple
(à première vue )d'éviter les fausses sorties, ce que n'excluait pas le coppock.
Merci Smallcaps.
63
|