Bonjour,
A RickenBroc j'adresse un grand coup de chapeau et un grand merci pour son travail remarquable et utile....
A Kwynobe,
Je suppose que tu fais allusion à l'indicateur de force relative comparée (ou externe) et non pas à l'indicateur de force relative interne qui n'est autre que le RSI.
Dans cette hypothèse, il existe déjà un tel indicateur dans GrapheATPro (voir FR dans la liste des indicateurs).
Si tu veux cependant le reprogrammer à titre d'exercice (enrichissant...hum), voici sa définition habituelle sachant qu'il en existe d'autres :
1- Choisir une action à étudier.
2- Choisir une valeur de comparaison, autre action, indice (CAC40, SBF120...) ou encore indice de secteur).
3- Calculer la progression journalière de l'action étudiée.
Elle se définit comme :
progr action(t) = (cours action(t) - cours action(t0))/cours action(t0)
On prend pour t les différents cours de clôture (t étant le jour courant), t0 est le jour début de l'historique commun à l'action et à la valeur de comparaison.
4- Calculer de même la progression journalière de la valeur de comparaison.
progr valeur(t) = (cours valeur(t) - cours valeur(t0))/cours valeur(t0)
progr action(t), cours action(t), cours action(t0) sont notés respectivement: PROACT, Cloture et PA0 dans le programme.
progr valeur(t) , cours valeur(t), cours valeur(t0) sont notés : PROVAL, VAL et PV0.
5- Calculer et tracer la valeur journalière de l'indicateur.
Force Relative Externe(t) = progr action(t) - progr valeur(t)
Force Relative Externe est notée FRE
6- Calculer et tracer la moyenne mobile de l'indicateur.
La moyenne est notée MFRE.
Pour pouvoir utiliser les cotations de la valeur de comparaison dans le programme, il faut d'abord sélectionner cette valeur dans la fenêtre de GrapheATPro sous Options/Indicateurs et dans la fenêtre "Paramètres des indicateurs prédéfinis" choisir la valeur qui t'intéresse dans la ligne Force Relative.
Ceci va te permettre de pouvoir utiliser les valeurs du CAC40, si tu l'as sélectionné par exemple, dans le programme de calcul de la force relative externe de n'importe quelle action. Pour ce faire, MLOG nous fournit un indicateur prédéfini dans la version actuelle de son langage : REFERENCE. Il est utilisable dans n'importe quelle autre règle ...heureusement....
La partie A- du programme recopie les cotations de la valeur de comparaison ainsi sélectionnée dans la liste VAL. En une seule ligne.
Raison d'être de cette liste intermédiaire? Le principal problème à résoudre ici est du au fait que l'action étudiée et la valeur de comparaison
n'ont pas forcément le même nombre de jours de cotation. Pour ce qui me concerne, dans ma base, ACCOR est cotée sur 1667 jours, le CAC40 aussi (et ce sont les mêmes jours qu'ACCOR), mais le SBF120 l'est sur 914, AGF sur 1640!
On a donc trois cas de figure à intégrer selon que l'action étudiée a le même nombre de cotations, un nombre plus petit ou plus grand que celui de la valeur de comparaison.
Il faut aussi bien vérifier que leurs jours de cotations sont identiques, ce qui n'est pas forcément toujours le cas, vérifie ta base et tu verras....
C'est la partie B- du programme qui détermine les bonnes valeurs de PA0 et PV0 dans ces 3 cas.
Il suffit ensuite(partie C-) de calculer PROACT, PROVAL FRE et MFRE.
Tu remarques sans doute que les parties B- et C- sont encadrées par un "
SI RANGHISTO=FINHISTO". Ceci est du au fait qu'il faut attendre que la liste VAL soit remplie avant d'effectuer la recherche de PA0, PV0 et des calculs qui suivent.
Mon programme donne parfois des valeurs légèrement différentes de celles données par l'indicateur FR de MLOG, là je ne sais pas vraiement pourquoi....
Les paramètres :
Le programme possible :
Un exemple :
Cliquez pour agrandir
Il a été remarqué à plusieurs reprises, dans cette file et dans d'autres, que la doc fournie avec GrapheATPro est un peu succincte. Ce travail m'a permis de bien comprendre la façon dont GrapheATPro exécute un programme qu'on lui fournit. En particulier comment fonctionnent les boucles POUR un peu spéciales...
Mais aussi un certain nombre de petites choses comme :
VAL(0) = REFERENCE
crée bien entendu une variable globale de type tableau (ou liste) qu'elle soit indiquée ou non dans la fenêtre "Paramètres". Elle contient un nombre de cotations égales à celles de l'action étudiée. Si la valeur de comparaison en a un nombre inférieur, VAL va commencer des "0" en nombre égal à la différence : dimension de l'action étudiée - dimension de la valeur de comparaison. Si enfin, elle en a plus que l'action étudiée, VAL va contenir uniquement les cotations de la valeur de comparaison en nombre égal au nombre de cotations de l'action étudiée. Oufffff...
Autre exemple. Dans :
SI RANGHISTO=1
ALORS
PA0 = Cloture
FINSI
PAO est une variable locale simple sauf si on la place dans la fenetre "Paramètres" auquel cas elle devient variable de tableau.
Ce qui n'est pas du tout la même chose en terme de comportement du programme!!!
Bon je m'arrete ici pour aujourd'hui.
Merci par avance pour vos remarques éventuelles et bon week end à tous.