merci Scoubidoo,
mais justement, si se fut aussi simple je m'en serai sorti...
reprennons.
Pourcentage exponentiel pe = 2 / (periodes + 1)
MME = (CLO du jour * pe) + (MME veille * (1-pe))
je suis parfaitement d'accord, cela est juste.
Or, MME veille, comment la trouve t on, qu'elle est elle ?
en fait, ce qu'il faudrait c'est la chose encore plus fondamentale et originelle !
pour reprendre l'exemple d'une MME sur 5 jour, comme pour une MM simple il faudrait quelque chose qui ressemble à ceci :
MM = ( close + close [1] + close [2] + close [3] + close [4] + close [5] ) / 5
la base de la base en somme afin de pouvoir retoucher chaque parametre independament.
comme il s'agit d'une MME, il y a pondération.
il faudrait donc je pense que se trouve joint à chaque "close" une pondération indépendament pour obtenir la MME.
ainsi la MME devrait surement ressembler à ceci :
MME = ( (close[+5%]) + (close[1]+3%) + (close[2]+1%) + close[3] + close [4] + close [5] ) / 5
je pense que brut de brut cela doit ressembler un peut pret à cela !
mais je seche. j'ai beau parcourir google, parcourir les forums, je pense que c'est autant un probleme de math que de programmation.
l'objectif c'est de pouvoir faire deux choses et lorsque on y pense sa a de quoi être tres utile !
O1 : pouvoir changer chaque variable close ! par exemple on garde close1 + close 2 + close 3 + close 4 + close 5 mais on remplace close, soit la derniere cloture par x, qui peut être un autre indicateur, une valeur arbitraire, ou le résultat pondéré d'une autre MM !
O2 : pouvoir changer la pondération juste de une seule valeur !
O3 : pouvoir créer une nouvelle sorte de MACD et pas des moindre ! puisque cela permet de créer un MACD spécial backtest ! en gros on pourrait savoir à quel niveau était le MACD non pas à la cloture de la période, mais sur le prix ou on est entrée ou sortie !
Je n'ai pas tout compris où tu veux en venir ? Calculer une MME ou trouver une nouvelle sorte de MM avec des pondérations variables et des valeurs de clotures variables (auquel cas je ne sais pas comment faire) ?
Pour le calcul d'une MME, les pondérations ne changent pas :
C'est toujours pe et 1-pe
Reprennons ta MME à 5 periodes :
pe = 2 / (5+1) = 0.3333 et 1-pe = 0.6667
Il faut donc faire une boucle for next pour calculer, en initialisant le premier jour de calcul par la valeur de la cloture precedente :
exemple :
MME(6) = CLOSE(6);
for (var i= 5;i>=0; i--){
MME(i) = MME(i+1) * 0.6667 + CLO(i) * 0.3333
}
return MME(0)
Ce code doit (sans doute...) fonctionner
Mais pour les MME tous les logiciels font le calcul...
En esperant t'avoir aidé
__________________ "shake your ass, baby...shake your ass...I'm a scoobidoo, scoobidoo, scoobidoo, bidoo!"
Merci,
La boucle for next est je pense ce qui me manque, je vais essayer...
En fait, ce que je désir est juste, enfin le "juste" s’avère finalement ne pas être rien, est un MACD dont on puisse remplacer la dernier période considérée, par un cours arbitraire et cela à des fins de backtests.
Pour développer un backtests qui sache exactement qu’elle était le niveau de l’histogramme du MACD, lorsque le cours à tel moment fut à tel prix.
Exemple :
Achat lorsque prix > que l’ouverture du jour et que l’histogramme du MACD > que la valeur 0.0
Ceci est une stratégie d’exemple simplement.
Or, cela ne peut pas être back testé en l’état, puisque le MACD dont nous disposons est uniquement basé sur le cours de clôture de chaque période, le MACD se composant juste de moyennes mobiles exponentielles !
Admettons qu’en backtests tel jour à tel heure le prix devienne > que l’ouverture du jour à admettons 6 000 points. Ceci est un signal d’achat d’après la stratégie. Or, selon cette stratégie la condition d’un histogramme de MACD > que 0.0 doit aussi être remplie.
Or, le MACD sur lequel on backtests la stratégie est basé sur la clôture de chaque période uniquement ! Le backtests ne peut donc savoir à quel niveau se trouvait l’histogramme de MACD lorsque au moment du signal le prix fut à 6 000 points, puisque l’histogramme n’est basé que sur la clôture !
Lorsque ces mêmes 6 000 points > que l’ouverture du jour sont atteint, peut être de fait que l’histogramme du MACD fut < que la valeur 0.0 ce qui annule le signal d’achat à 6 000 points la condition d’un histogramme de MACD > que la valeur 0.0 n’étant pas remplie.
Or, le backtests lui va sûrement valider un signal d’achat sur ces mêmes 6 000 points car il notera un histogramme de MACD sûrement > que la valeur 0.0, puisque ce même MACD pour ce backtests est le résultat non pas de ce qu’il fut lorsque le prix était alors à 6 000 points, mais est le résultat sur la clôture de la période ou le prix fut à 6 000 points !
Admettons un chandelier qui ouvre à 5 990 points avec un histogramme de MACD négatif.
Admettons un chandelier qui passe à 6 000 points avec un histogramme de MACD toujours négatif.
Admettons ce chandelier qui passe à 6010 points mais cette fois avec un histogramme de MACD positif.
Admettons ce chandelier qui clôture à 6020 point avec un histogramme de nouveau positif.
L’ordinateur pour effectuer son backtests va considérer le résultat du MACD sur la clôture.
Donc pour le backtests il y aura selon la stratégie un achat à 6 000 points car on se trouve au dessus de l’ouverture du jour et que d’après la clôture de la période à 6 020 points l’histogramme du MACD était positif.
Or, d’après la stratégie, à 6 000 points l’histogramme de MACD était négatif, le signal d’achat n’aurai donc du intervenir sur backtests non pas à 6 000, mais à 6 010 points lorsque l’histogramme de MACD fut enfin positif, chose que le backtests n’eu pas vu, puisque le MACD usé pour le backtests est uniquement basé sur le cours de clôture de toutes périodes.
D’où l’idée maîtresse, créer un MACD ou l’on puisse remplacer la toute dernière période considérée, par un prix arbitraire.
Pour reprendre cette exemple, ou l’on puisse remplacer les 6 020 points de clôture de la dernière période considéré par le MACD, par 6 000, soit le prix d’entrée, pour savoir lorsque le prix fut à 6 000 si le MACD indiquait la même chose ou non que sur la clôture à 6 020 !
Tu vois et vous voyez qu’en définitive et fondamentalement, c’est très bête et très simple comme demande, du moins en apparence !
D’où l’idée de disposer du code complète des MME afin d’en changer juste la dernière valeur considérée de telles sorte qu’il soit possible de reconstituer un MACD utilisable uniquement pour backtests.
Cela semble anodin, mais en vérité le problème est le même pour tous les indicateurs ou presque, que l’on backtests !
Un backtests est toujours faussé si on ne parvient pas à savoir se qu’indiquaient, tels ou tels indicateurs non pas sur clôture, ouverture ou autre, mais lorsque le prix fut à tel cours précis, au moment de l’entrée et de la sortie !
De quoi changer des positions gagnantes en pertes et vise vers sa.
Ne nombreux backtests fascinant de réussite sont ainsi présenté ici et la, sans qu’à cause de cette simple subtilité, on ne s’aperçoive qu’ils sont des stratégies qui en vérité ne fonctionnent pas !
La plus part des indicateurs sont facile à modifier en ce sens, pour savoir ce qu’ils indiquaient lorsque le prix était à tel ou tel cours, mais sur le MACD je bloque.
Voila, j’espère que mes questions et les éventuelles réponses qu’elles pourraient recevoir vous aiderons et vous apporteront autant qu’à moi.
Dans tous les cas je vous remercie et j’accepterai même toute intervention ici de Marc – néanmoins il est actuellement en vacance pour 2 semaines le veinard –