Sujet : Graphe AT PRo : programmation
Premiere Page   Page précédente   Page : sur 171   Page suivante   Derniere Page
Page N°  63   Sommaire des pages établi par LONGWAY et adapté par max-et-min   
Ce sommaire ne couvre pas la totalité des pages



chzame' -

(384 msg)

Plusieurs semaines De 1 à 3 ans Technique et fondamentale Actions françaises

#409459Posté le : le 13-09-2005 23:58:14 chzame - chzame -   Voir le page de chzame      
====================================================

.
édité le : 14-09-2005 00:28:29 
  Retourner en haut de page



chzame' -

(384 msg)

Plusieurs semaines De 1 à 3 ans Technique et fondamentale Actions françaises

#409465Posté le : le 14-09-2005 00:27:38 chzame - chzame -   Voir le page de chzame      
====================================================

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 
  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#409748Posté le : le 14-09-2005 19:05:11    
====================================================

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 :

------------------
 
//Proto pour Michka
//Détection des plus hauts et des plus bas sur
//les bas, les hauts ou les clôtures au choix
//V.1.0 le 14/09/05
//

// Init des variables
SI RANGHISTO=1
ALORS
DEC_FH=0 //décalage avant finhisto
NB_JE=50 //nombre de jour etude du suivi des +haut et +bas par rapport à finhisto
VP1=0 //paramètre pour +bas, vp1=0 -> bas, vp1=1 -> cloture
VP2=0 //paramètre pour +haut, vp2=0 -> haut, vp2=1 -> cloture
FINSI

//recherhce des mini et maxi locaux
SI RANGHISTO=FINHISTO-DEC_FH
ALORS

POUR NB_JE COURS

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))

COND_HAUT = (VP2=0) ET ((HAUT(2)<HAUT(1) ET HAUT(1)>HAUT) OU
(HAUT(3)<HAUT(2) ET HAUT(2)=HAUT(1) ET HAUT(1)>HAUT))

COND_CLOTURE_B = (VP1=1) ET ((CLOTURE(2)>CLOTURE(1) ET CLOTURE(1)<CLOTURE) OU
(CLOTURE(3)>CLOTURE(2) ET CLOTURE(2)=CLOTURE(1) ET CLOTURE(1)<CLOTURE))

COND_CLOTURE_H = (VP2=1) ET ((CLOTURE(2)<CLOTURE(1) ET CLOTURE(1)>CLOTURE) OU
(CLOTURE(3)<CLOTURE(2) ET CLOTURE(2)=CLOTURE(1) ET CLOTURE(1)>CLOTURE))

MINI_LOCAL(1) = BAS(1)*COND_BAS + CLOTURE(1)*COND_CLOTURE_B
MAXI_LOCAL(1) = HAUT(1)*COND_HAUT + CLOTURE(1)*COND_CLOTURE_H

FINPOUR

FINSI

------------------

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 
  Retourner en haut de page

michka

(26 msg)

michka' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ

#409751Posté le : le 14-09-2005 19:16:25 michka - michka -      
====================================================

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



  Retourner en haut de page

michka

(26 msg)

michka' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ

#410466Posté le : le 16-09-2005 13:18:31 michka - michka -      
====================================================

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



  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#410489Posté le : le 16-09-2005 14:32:22    
====================================================

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.

  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#410747Posté le : le 17-09-2005 12:52:15    
====================================================

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 :
-----------------------
 
//STATISTIQUE DE VALIDATION/CONFIRMATION
//DES DIVERGENCES POSITIVES POTENTIELLES
//DETECTEES PAR LE PROGRAMME : DIV_POS_REPULSE
//V1.0 du 15/09/2005
//

//--------------------------------------------------------------
//PARAMETRES A DEFINIR CI-DESSOUS
//
//EI : SEUIL RELATIF MINI DES ECARTS ENTRE CREUX SUR LE REPULSE
//EC : SEUIL RELATIF MINI DES ECARTS ENTRE CREUX SUR LES COURS
//
//CHOIX=1 : SELECTIONNE LES DIVERGENCES POSITIVES POTENTIELLES
// CE SONT CELLES QUI SONT DETECTEES PAR "DIV_POS_REPULSE".
//
//CHOIX=2 : SELECTIONNE LES DIVERGENCES POSITIVES VALIDEES
// CE SONT LES DIVERGENCES POSITIVES POTENTIELLES
// QUI RESPECTENT LES ECARTS IMPOSES : EI ET EC.
//
//--------------------------------------------------------------

EI=0.01
EC=0.01
CHOIX=1
//Attention, la valeur suivante doit être >= à la somme des paramètres
//P1,P2,P4 du programme indicateur "DIV_POS_REPULSE"
N=100

POUR N COURS

//RECUPERER LA VALEUR DU REPULSE AU CREUX LE PLUS RECENT
//
SI DIV_POS_REPULSE.SEG_P_I(1)<>0 ET DIV_POS_REPULSE.SEG_P_I=0
ALORS
C1_INDIC=DIV_POS_REPULSE.SEG_P_I(1)
REPULSE_C1=DIV_POS_REPULSE.INDIC(1)
FINSI

//RECUPERER LA VALEUR DU COURS AU CREUX LE PLUS RECENT
//
SI DIV_POS_REPULSE.SEG_P_C(1)<>0 ET DIV_POS_REPULSE.SEG_P_C=0
ALORS
C1_COURS=DIV_POS_REPULSE.SEG_P_C(1)
FINSI

//RECUPERER LA VALEUR DU REPULSE AU CREUX LE PLUS ANCIEN
//
SI DIV_POS_REPULSE.SEG_P_I(1)=0 ET DIV_POS_REPULSE.SEG_P_I<>0
ALORS
C2_INDIC=DIV_POS_REPULSE.SEG_P_I
FINSI

//RECUPERER LA VALEUR DU COURS AU CREUX LE PLUS ANCIEN
//
SI DIV_POS_REPULSE.SEG_P_C(1)=0 ET DIV_POS_REPULSE.SEG_P_C<>0
ALORS
C2_COURS=DIV_POS_REPULSE.SEG_P_C
FINSI

//
//CHERCHER LES DIVERGENCES POSITIVES POTENTIELLES EVENTUELLES
//
SI C1_INDIC<>0 ET C1_COURS<>0 ET C2_INDIC<>0 ET C2_COURS<>0
ALORS
SI CHOIX = 1
ALORS
COLONNE1 = "DIV POSITIVE POTENTIELLE SUR :"
VARSELECT = 1
BREAK
FINSI

//SELECTIONNER LES DIVERGENCES POSITIVES VALIDEES
//
SI ((C2_INDIC-C1_INDIC)/C2_INDIC)>=EI ET ((C2_COURS-C1_COURS)/C2_COURS)>=EC
ALORS
SI CHOIX = 2
ALORS
COLONNE1 = "DIV POSITIVE VALIDEE SUR :"
VARSELECT = 1
BREAK
FINSI
FINSI
FINSI

FINPOUR

SI VARSELECT=1
ALORS
SELECTION
FINSI
-----------------------


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 :
-----------------------
 
//STATISTIQUE DE VALIDATION/CONFIRMATION
//DES DIVERGENCES NEGATIVES POTENTIELLES
//DETECTEES PAR LE PROGRAMME : DIV_NEG_REPULSE
//V1.0 du 15/09/2005
//

//--------------------------------------------------------------
//PARAMETRES A DEFINIR CI-DESSOUS
//
//EI : SEUIL RELATIF MINI DES ECARTS ENTRE SOMMETS SUR LE REPULSE
//EC : SEUIL RELATIF MINI DES ECARTS ENTRE SOMMETS SUR LES COURS
//
//CHOIX=1 : SELECTIONNE LES DIVERGENCES NEGATIVES POTENTIELLES
// CE SONT CELLES QUI SONT DETECTEES PAR "DIV_NEG_REPULSE".
//
//CHOIX=2 : SELECTIONNE LES DIVERGENCES POSITIVES VALIDEES
// CE SONT LES DIVERGENCES NEGATIVES POTENTIELLES
// QUI RESPECTENT LES ECARTS IMPOSES : EI ET EC.
//--------------------------------------------------------------

EI=0.01
EC=0.01
CHOIX=2
//Attention, la valeur suivante doit être >= à la somme des paramètres
//P1,P2,P4 du programme indicateur "DIV_NEG_REPULSE"
N=100

POUR N COURS

//RECUPERER LA VALEUR DU REPULSE AU SOMMET LE PLUS RECENT
//
SI DIV_NEG_REPULSE.SEG_N_I(1)<>0 ET DIV_NEG_REPULSE.SEG_N_I=0
ALORS
S1_INDIC=DIV_NEG_REPULSE.SEG_N_I(1)
MACD_S1=DIV_NEG_REPULSE.INDIC(1)
FINSI

//RECUPERER LA VALEUR DU COURS AU SOMMET LE PLUS RECENT
//
SI DIV_NEG_REPULSE.SEG_N_C(1)<>0 ET DIV_NEG_REPULSE.SEG_N_C=0
ALORS
S1_COURS=DIV_NEG_REPULSE.SEG_N_C(1)
FINSI

//RECUPERER LA VALEUR DU REPULSE AU SOMMET LE PLUS ANCIEN
//
SI DIV_NEG_REPULSE.SEG_N_I(1)=0 ET DIV_NEG_REPULSE.SEG_N_I<>0
ALORS
S2_INDIC=DIV_NEG_REPULSE.SEG_N_I
FINSI

//RECUPERER LA VALEUR DU COURS AU SOMMET LE PLUS ANCIEN
//
SI DIV_NEG_REPULSE.SEG_N_C(1)=0 ET DIV_NEG_REPULSE.SEG_N_C<>0
ALORS
S2_COURS=DIV_NEG_REPULSE.SEG_N_C
FINSI


//CHERCHER LES DIVERGENCES NEGATIVES POTENTIELLES EVENTUELLES
//
SI S1_INDIC<>0 ET S1_COURS<>0 ET S2_INDIC<>0 ET S2_COURS<>0
ALORS
SI CHOIX = 1
ALORS
COLONNE1 = "DIV NEGATIVE POTENTIELLE SUR :"
VARSELECT = 1
BREAK
FINSI

//SELECTIONNER LES DIVERGENCES NEGATIVES VALIDEES
//
SI ((S2_INDIC-S1_INDIC)/S2_INDIC)>=EI ET ((S1_COURS-S2_COURS)/S1_COURS)>=EC
ALORS
SI CHOIX = 2
ALORS
COLONNE1 = "DIV NEGATIVE VALIDEE SUR :"
VARSELECT = 1
BREAK
FINSI
FINSI
FINSI
FINPOUR

SI VARSELECT=1
ALORS
SELECTION
FINSI
-----------------------



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.
  Retourner en haut de page

sphinx

(91 msg)

Plusieurs jours Plus de 3 ans Technique et fondamentale Actions françaises

#410774Posté le : le 17-09-2005 16:56:04 sphinx - sphinx -      
====================================================

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
  Retourner en haut de page

FOKI

(2011 msg)

FOKI' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ

#410782Posté le : le 17-09-2005 17:59:02 FOKI - FOKI -      
====================================================

Merci Smallcaps pour tout ce que tu nous apportes dans Graph AT

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...
  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#410866Posté le : le 18-09-2005 11:32:37    
====================================================

Merci pour tes encouragements FOKI......

Sphinx voici 2 stats qui peuvent résoudre tes problèmes.

1- BB resserrées.

Programme ;
 
// 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.
//

//PARAMETRES
//
NB_PERIODES=5 // à modifier éventuellement
LIMITE=0.03

POUR NB_PERIODES COURS
SI HAUT<UBOLL ET BAS>LBOLL // cours dans les BB
ALORS
DANS_BB=1 // flag pour autoriser la sélection
VAR_BB(0)=(UBOLL-LBOLL)/UBOLL // variations relatives des BB sur les derniers 5 jours
SINON
BREAK // on passe à une autre valeur si cours sort des BB
FINSI
FINPOUR

SI DANS_BB=1 ET
MAX(VAR_BB,NB_PERIODES)<LIMITE
ALORS
COLONNE1="Variation maxi entre les BB : " & ctxt$(MAX(VAR_BB,NB_PERIODES),4)
SELECTION
FINSI


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 :
 

// Statistique de reconnaissance de marteaux et marteaux inversés
// ou de l'inverse

//PARAMETRES :

// Rapport maxi tolérable entre ombre haute du marteau
// (et de l'ombre basse du marteau inversé) et le chandelier complet
T=0

// Rapport mini entre ombre basse et hauteur du corps plein
// pour marteau et entre ombre haute et corps plein pour marteau inversé
R=2

//CHOIX = 1 détection de la figure marteau + marteau inversé
//CHOIX = 2 détection de la figure marteau inversé + marteau

CHOIX = 1

I = (CHOIX=1)
J = (CHOIX=2)


//POUR 50 COURS

MARTEAU =
Corps(I)<>0 ET
OmbreBas(I)>R*Corps(I) ET
BasCorps(I)<=Cloture(I) ET
OmbreHaut(I)=T

MARTEAU_INVERSE =
Corps(J)<>0 ET
OmbreHaut(J)>R*Corps(J) ET
BasCorps(J)<=Cloture(J) ET
OmbreBAS(J)=T

SI MARTEAU ET MARTEAU_INVERSE ALORS
SI CHOIX=1 ALORS
COLONNE1 = "Marteau puis Marteau inversé le : " & datehisto$
SELECTION
FINSI

SI CHOIX=2 ALORS
COLONNE1 = "Marteau inversé puis Marteau le : " & datehisto$
SELECTION
FINSI
FINSI

//FINPOUR



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 
  Retourner en haut de page

sphinx

(91 msg)

Plusieurs jours Plus de 3 ans Technique et fondamentale Actions françaises

#410884Posté le : le 18-09-2005 14:03:46 sphinx - sphinx -      
====================================================

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?


  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#410944Posté le : le 18-09-2005 17:26:24    
====================================================

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 
  Retourner en haut de page

sphinx

(91 msg)

Plusieurs jours Plus de 3 ans Technique et fondamentale Actions françaises

#410976Posté le : le 18-09-2005 18:36:37 sphinx - sphinx -      
====================================================

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
  Retourner en haut de page

smallcaps90

(1022 msg)

Plusieurs semaines Plus de 3 ans Uniquement technique Actions françaises

#410996Posté le : le 18-09-2005 20:19:58    
====================================================

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 :
----------------------------
 
//FRAMA (Fractal Adaptive Moving Average) de J. Ehlers
//d'après TASC oct 2005
//le 18/09/2005
//

PRIX=(HAUT+BAS)/2

N3=(MAX(HAUT,P1)-MIN(BAS,P1))/P1

H1=HAUT
B1=BAS
I=0
TANTQUE I<=0.5*P1-1 FAIRE
SI HAUT(I)>H1 ALORS H1=HAUT(I)
SI BAS(I)<B1 ALORS B1=BAS(I)
I=I+1
FINTANTQUE
N1=(H1-B1)/(0.5*P1)

H2=HAUT(P1/2)
B2=BAS(P1/2)
I=0.5*P1
TANTQUE I<=P1-1 FAIRE
SI HAUT(I)>H2 ALORS H2=HAUT(I)
SI BAS(I)<B2 ALORS B2=BAS(I)
I=I+1
FINTANTQUE
N2=(H2-B2)/(0.5*P1)

SI (N1>0 ET N2>0 ET N3>0) ALORS D=(LOG(N1+N2)-LOG(N3))/LOG(2)

ALPHA=EXP(-4.6*(D-1))

SI ALPHA<0.01
ALORS
ALPHA=0.01
SINON
SI ALPHA>1
ALORS
ALPHA=1
FINSI
FINSI

FRAMA=ALPHA*PRIX+(1-ALPHA)*FRAMA(1)

SI RANGHISTO<P1+1 ALORS FRAMA=PRIX
----------------------------

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 :
 
//Calcul du ROC à P1 périodes de la FRAMA
//le 18/09/2005
//

ROC_FRAMA=100*(FRAMA/FRAMA(P1)-1)

//Et uniquement à des fins de comparaison :
ROC_CLASSIQUE = 100*((HAUT+BAS)/(HAUT(P1)+BAS(P1))-1)



Cordialement.
édité le : 18-09-2005 20:27:09 
  Retourner en haut de page

sphinx

(91 msg)

Plusieurs jours Plus de 3 ans Technique et fondamentale Actions françaises

#410999Posté le : le 18-09-2005 20:54:17 sphinx - sphinx -      
====================================================

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.

  Retourner en haut de page


63
Sujet : Graphe AT PRo : programmation
Premiere Page   Page précédente   Page : sur 171   Page suivante   Derniere Page
63Sat, 25 Apr 2009 20:42:05