Ajouter AaZ Systeme à vos favoris Me connecter | Plan du site | Liens partenaires | Mon panier
Rechercher : Site | Code valeur | Boutique | Forums
 Logiciel boursier AvaFX  Waldata 


 


Créer un nouveau message
 Tous les forums : Systèmes de Trading
Sujet Sujet: problème de math, problème de programmati RépondreNouveau sujet
Message<< Sujet précédent | Prochain Sujet >> Ordre
Envoyé par alphaval le 08 Juillet 2007 à 13:28 Citer alphaval

Bonjour à tous,

Petit problème de math, de programmation…

Une moyenne mobile simple, donc arithmétique admettons à 5 jours basée sur le cours de clôture donne en programmation la chose suivante :

MM = ( close + close [1] + close [2] + close [3] + close [4] + close [5] ) / 5

Mais une moyenne mobile exponentielle ?
Qu’elle est le programme pour une MM exponentielle ?

MME = ?

Je pense qu’il faut pondérer et ajouter un pourcentage à chaque valeur close, mais en programme je ne sais pas ce que cela peut donner…

Mon problème je pense est autant un problème de math que de programmation…

Bien à vous.
Alexandre
Voir alphaval's Profil Chercher des autres messages par alphaval Haut de la page
 
 
Envoyé par scoubidoo le 08 Juillet 2007 à 14:56 Citer scoubidoo

Pourcentage exponentiel pe = 2 / (periodes + 1)

MME = (CLO du jour * pe) + (MME veille * (1-pe))



__________________

"shake your ass, baby...shake your ass...I'm a scoobidoo, scoobidoo, scoobidoo, bidoo!"
Voir scoubidoo's Profil Chercher des autres messages par scoubidoo Haut de la page
 
Envoyé par alphaval le 08 Juillet 2007 à 18:39 Citer alphaval

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 !

alexandre
Voir alphaval's Profil Chercher des autres messages par alphaval Haut de la page
 
Envoyé par scoubidoo le 08 Juillet 2007 à 19:19 Citer scoubidoo

Rebonjour,

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!"
Voir scoubidoo's Profil Chercher des autres messages par scoubidoo Haut de la page
 
Envoyé par alphaval le 08 Juillet 2007 à 20:18 Citer alphaval

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 –

Alexandre
Voir alphaval's Profil Chercher des autres messages par alphaval Haut de la page
 
Envoyé par Paca le 09 Juillet 2007 à 04:10 Citer Paca

.

Editer par Paca sur 06 Janvier 2008 à 20:25
Voir Paca's Profil Chercher des autres messages par Paca Haut de la page
 
Envoyé par Martin Fabre le 09 Juillet 2007 à 19:34 Citer Martin Fabre

J'y ajoute une petyite démo, si ça peut aider:

Une moyenne mobile exponentielle donne plus de poids aux données récentes et moins de poids aux données anciennes.

Coefficient pour 5 jours = 2/ (5+1) = 0.3333

Jour        valeur       MME
1           ;25 x           ;           ;        
2           ;26 x           ;26.20           (*)      
3           ;28 x           ;26.80     (28 – 26.20 ) x 0.3333 + 26.20         & nbsp;    
4           ;25 x           ;26.20     (25 – 26.80 ) x 0.3333 + 26.80         & nbsp;    
5           ;29 x           ;27.13     (29 – 26.20 ) x 0.3333 + 26.20         & nbsp;    
6           ;27 x           ;27.09     (27 – 27.13 ) x 0.3333 + 27.13         & nbsp;    
7           ;  28 x        27.39     (28 – 27.09 ) x 0.3333 + 27.09         & nbsp;    
8           ;  26 x        26.93     (26 – 27.39 ) x 0.3333 + 27.39         & nbsp;    
9           ;  25 x        26.29     (25 – 26.93 ) x 0.3333 + 26.93         & nbsp;    

(*) Pour le premier calcul il faut utiliser la valeur 0. Compte tenu du grand nombre de séances le résultat tendra rapidement vers la valeur exacte.


__________________
Cordialement
Martin
www.win-trading.com
Voir Martin Fabre's Profil Chercher des autres messages par Martin Fabre Haut de la page
 


 Envoyer cette page Envoyer cette page  Version imprimable Version imprimable

Si vous voulez poster une réponse à ce Sujet, vous devez vous connecter
Si pas encore enregistré, vous devez vous enregistrer

RépondreNouveau sujet
This text is replaced by the Flash movie.


Version imprimable Version imprimable

Aller au Forum
Autres sujets de discussions
Problème tradestation
problèmes de rupture de flux
Help: programmation en auto réel
Problème avec Mod()
problème programmation PRT
PRT programmation STOP
Problème accès trades depuis 2002
problème de timing
Programmation mt4
Help Programmation TS
problème de sauvegarde
Programmation, mm, forex
Problème avec la constante Intraday

Powered by Web Wiz Forums version 7.9
Copyright ©2001-2004 Web Wiz Guide
Identifiant:
Mot de passe:


S'enregistrer
Mot de passe oublié?
 
This text is replaced by the Flash movie.

Gagnez de 80 à 90% grâce avec ce vieil indicateur! Ce sont des stratégies de Long Terme. Elles ont été testées sur les 20 dernières années pour les principaux marches: CAC 40, Futures US, DAX, etc
Les "turtles" représentent encore aujourd'hui la plus grande expérience de trading jamais réalisée. Cette expérience a permis à ses participants de gagner 200 millions de dollars.
Extrapolée par Samuel Rondot auprès d'un trader devenu millionnaire en quatre ans, cette technique de day trading 'type break out' fonctionne sur les indices boursiers.
Pas un seul jour ne se passe sans lire la description de méthodes de trading plus miraculeuses les unes que les autres. Il suffit d’y penser pour voir son compte en banque progresser.
Avec une performance de 380% sur 5 ans et 45% pour le seul mois de janvier 2008 , MCI est une méthode de Swing Trading qui fait ses preuves quotidiennement.
C'est LA technique de Day Trading. Le Docteur vous permettra de prendre position plusieurs fois par jour sur n'importe quel support (Actions, Futures, Forex) et sur tous les marchés (CAC, DAX, NASDAQ, SP500 etc.)
Day trading bourse en ligne