une stratégie commerciale basée sur la théorie des vagues d'Elliott - page 76

 
Un point important : les objets ne sont-ils pas créés ou dessinés ? Les propriétés des objets non dessinés peuvent-elles être lues ?
 
Voici une nouvelle surprise - le dessin des flèches ne change pas le temps de course, c'est intéressant.
Le temps est de 4 minutes environ, il n'a pas vraiment changé.

2006.07.08 19:35:45 HistoryChannells EURUSD,M30 : deinitialisé<br / translate="no"> 2006.07.08 19:35:45 HistoryChannells EURUSD,M30 : Running deinit()
2006.07.08 19:35:45 PM HistoryChannells EURUSD,M30 : Temps d'algorithme optimisé 261281 ms
2006.07.08 19:31:24 HistoryChannells EURUSD,M30 : initialisé
2006.07.08 19:31:19 HistoryChannells EURUSD,M30 : chargé correctement
2006.07.08 19:31:11 Compilation de "HistoryChannells".
 
Un point important : les objets ne sont-ils pas créés ou dessinés ? Peut-on lire les propriétés des objets non peints ? <br / translate="no">


Les objets sont créés - j'ai vérifié spécifiquement, on peut même voir la propriété de la flèche "invisible". Voici le code :
     centerLR=BestChannels[0][2]*(lastBar-1)+BestChannels[0][3] ; ObjectCreate("up "+UpArrowCounter,OBJ_ARROW,0,Time[lastBar-1],centerLR+BestChannels[0][5]) ;
      ObjectSet("up "+UpArrowCounter,OBJPROP_ARROWCODE,158) ; ObjectSet("up "+UpArrowCounter,OBJPROP_COLOR,Red) ;
      ObjectCreate("down "+DownArrowCounter,OBJ_ARROW,0,Time[lastBar-1],centerLR-BestChannels[0][5]) ; ObjectSet("down"+DownArrowCounter,OBJPROP_ARROWCODE,158) ; ObjectSet("down "+DownArrowCounter,OBJPROP_COLOR,Red) ; UpArrowCounter++ ; DownArrowCounter++ ;



mais voici le dessin :

 
Hmmm... il s'avère que c'est ma faute, je vais devoir vérifier demain. C'est assez pour aujourd'hui.
 
Oui, je l'ai également vérifié avec ce code
 for (i=0 ; i<50000;i++) { obj_name = i ; ObjectCreate(obj_name,OBJ_TREND,0,Time[0],i,Time[1],i) ; ObjectSet(obj_name, OBJPROP_STYLE, DRAW_NONE) ;
    j = ObjectGet(obj_name, OBJPROP_PRICE1) ; Print(j) ; } for (i=0 ; i<50000;i++) { obj_name = i ; ObjectDelete(obj_name) ; }


 
<br / translate="no">
Les images doivent être en caractères latins uniquement et de préférence au format *.png (les gif ne sont pas affichés via un lien dans ce forum).


Tout est fait donc, je dis dans la fenêtre de l'éditeur, il apparaît normal, et dès que j'appuie sur le bouton ajouter ou sauvegarder selon ce que j'ajoute ou modifie le message il disparaît et même disparaît ce que j'ai tapé :(
 
Ok, je suis allé dans l'autre sens (ils ont commencé à me renvoyer pendant 30 secondes, bien qu'attendre 10 minutes n'aide pas :( ) mais de toute façon, je voulais juste montrer qu'en ce moment j'ai un juif, mais ce n'est probablement pas pertinent.
 
Voici une nouvelle surprise : dessiner des flèches ne modifie pas le temps d'exécution, ce qui est intéressant.

J'ai cet effet, selon la façon dont j'exécute l'algorithme discuté ici, le temps d'exécution est soit 0 soit 16 ms. Je suppose que dans certains cas, l'algorithme est exécuté en continu, alors que dans d'autres cas, il est interrompu et le cycle terminal complet est exécuté (parce que les nombres se répètent de manière stable). Par analogie - le tirage au sort ne peut-il pas avoir lieu après la fin des calculs ?
 
Vladislav 02.06.06 11:26 <br / translate="no"> Quant à la mise en œuvre pratique, ou plutôt aux méthodes sous-jacentes, tout est assez simple : il y a des coefficients dans la fonction quadratique, qu'il faut choisir de manière optimale - la régression donne une estimation linéaire, plus précise, de sa construction. Et, en conséquence, vous pourrez estimer jusqu'à quelles limites (écarts d'amplitude) dans l'expansion de Taylor (construction de la forme quadratique) ce coefficient peut être utilisé. Par ailleurs, en ce qui concerne les autres coefficients, réfléchissez par vous-même. Et pour trouver le minimum d'énergie potentielle, vous n'avez pas besoin de connaître la trajectoire du prix, mais ce qui est plus important à connaître - le gradient de potentiel ;). C'est-à-dire l'état dynamique de son potentiel zéro - il faut compter quelque chose pour le potentiel zéro. Et tout ceci est suffisant pour estimer - une différenciation directe n'est pas nécessaire.
Au sens figuré, "sur vos doigts", en appliquant une imagerie géométrique :
Imaginez simplement qu'il y a une balle qui roule sur une surface (analogue à un terrain accidenté) (c'est le prix). Il n'est pas nécessaire de connaître les subtilités de la construction de la balle pour déterminer les zones d'attraction de la trajectoire de la balle. Il est beaucoup plus utile de connaître les propriétés de ce "terrain accidenté".

Vladislav 14.06.06 21:06
Tout à fait exact - j'ai d'ailleurs écrit à ce sujet que le minimum de la fonctionnelle d'énergie potentielle sert d'un des critères de sélection des canaux. Et c'est une propriété de la potentialité du champ de prix, alors que je ne cherche pas la trajectoire elle-même en raison (encore) du fait que toutes les trajectoires qui s'inscrivent dans l'intervalle de confiance doivent être considérées comme équivalentes pour une probabilité donnée. C'est-à-dire que la construction de projections se résume d'abord à la sélection d'échantillons, puis à l'algèbre linéaire.

En continuation du sujet sur lequel j'ai déjà écrit à la page 33, j'ai eu une autre idée sur la recherche d'un canal avec une énergie potentielle minimale dans une série de canaux consécutifs satisfaisant les conditions déjà mentionnées. Qu'obtenons-nous en construisant un canal de régression linéaire ? Nous avons une région limitée par ses frontières, à l'intérieur de laquelle le prix peut se déplacer comme il le souhaite. La seule condition qui a été remplie est la condition que le prix reste à l'intérieur de ce canal. De plus, Vladislav a déclaré que toutes les trajectoires tombant dans l'intervalle de confiance doivent être considérées comme égales pour une probabilité donnée. Nous supposons alors que le prix pourrait évoluer selon une fonction quadratique au cours de son mouvement - c'est-à-dire que nous ne violons pas la déclaration ci-dessus. D'autant plus que cette affirmation part de l'hypothèse que le champ des prix est potentiel. C'est-à-dire que pour tout moment dans le temps (et pour tout échantillon), nous pouvons construire une parabole approximative et dire que, sur la base de cet échantillon, le prix a eu telle trajectoire, autour de laquelle il s'est déplacé dans cet échantillon. Au sens figuré, il s'agit d'une telle auge à pente parabolique et d'une boule présentant de multiples inhomogénéités à sa surface. Maintenant, que pouvons-nous considérer comme l'état dynamique du potentiel du point zéro ? Puisque la balle roule effectivement du début du canal jusqu'à sa fin en se déplaçant le long de notre creux parabolique oblique conditionnel, le minimum d'énergie potentielle pour ce creux sera bien sûr à l'instant présent sur la trajectoire de ce creux et, par conséquent, à l'instant présent la force (gradient de potentiel) tendant à déplacer la balle vers la trajectoire du creux parabolique agira sur la balle (prix). Maintenant, comment trouver la magnitude et la direction de ce gradient ? C'est très simple - trouver la parabole par la méthode de l'ISC et ensuite trouver la différence entre le prix actuel et cette parabole (minimum du potentiel). Bien entendu, cette différence peut être à la fois positive et négative. En outre, étant donné que le canal de régression linéaire choisi doit être le "vrai" pour la prévision, l'échantillon doit présenter à la fois les conditions de convergence connues (RMS<SCO2/3) et toute autre condition confirmant cette convergence. La mention par Vladislav du minimum de l'énergie potentielle fonctionnelle m'a conduit à l'idée que pour cela il est nécessaire que la somme des gradients potentiels soit aussi petite que possible pour le canal dans lequel nous construisons ces auges paraboliques d'approximation sur lesquelles nous avons la balle qui roule et qui sont la meilleure description de notre terrain accidenté. Bien sûr, j'ai immédiatement essayé de vérifier cette hypothèse en pratique et je partage les résultats sur ce lien https://c.mql5.com/mql4/forum/2006/07/min_poten_energy.zip.

Que voyons-nous sur ces graphiques ? Nous pouvons voir le canal d'une régression linéaire dessinée à l'aide de la méthode du minimum RMS dans une série, que j'utilise actuellement dans mon Expert Advisor. Sur un graphique séparé, nous traçons un graphique de la somme algébrique (c'est-à-dire que j'effectue la sommation des gradients en tenant compte de leurs signes (+/-)) de la somme des gradients du potentiel de la boule par rapport à la ligne de parabole construite pour l'échantillon actuel. Pour simplifier la compréhension, je peux dire que l'approche utilisée ici est absolument la même que celle utilisée pour la détermination du coefficient de Hurst, à la différence qu'au lieu d'une approximation du canal de régression linéaire, une parabole (fonction quadratique) est utilisée, et la parabole elle-même est construite pour tous les échantillons actuels, y compris la barre calculée pour laquelle le gradient potentiel est recherché. Au cas où, je vous rappelle que pour trouver le coefficient de Hurst, nous avons pris un échantillon qui ne comprend pas la barre actuelle.
La ligne verticale bleue indique le minimum local pour la somme algébrique des gradients de potentiel pour le canal à partir de cette même barre. Si vous regardez attentivement les graphiques de l'EURUSD et de l'USDCHF, vous pouvez voir que les creux locaux coïncident exactement (+/-1 barre) avec les maximums/minimums locaux du prix. J'attribue l'erreur de 1 bar aux particularités de la préparation des échantillons. Je choisis comme échantillon les valeurs de la barre (O+H+L+C)/4. Probablement, dans ce cas, nous devrions choisir sélectivement soit Haut soit Bas, ce qui éliminerait définitivement une erreur de détermination du canal avec l'énergie potentielle minimale. Et alors les canaux de la série coïncideront exactement avec ceux de l'image montrée précédemment par Vladislav pour l'USDCHF. Eh bien, je vais essayer de mettre en œuvre cette hypothèse dans mon EA. Je pense que c'est vraiment proche de la méthode de sélection des canaux utilisée par Vladislav et partagée par lui.

PS : Le graphique montre le module de la somme algébrique des gradients (pour plus de clarté). Pour calculer le potentiel de gradient sur la barre actuelle, construisez une parabole pour l'échantillon depuis le début du canal jusqu'à la barre actuelle, y compris la barre calculée elle-même. Par exemple, si vous sélectionnez 100 barres, vous devez calculer 97 paraboles, car pour construire une parabole avec la méthode ANC, vous devez avoir au moins 4 échantillons (j'ai découvert cela expérimentalement aujourd'hui ;o)). En conséquence, je prends simplement le gradient du potentiel sur les 3 premières barres comme étant égal à zéro. Rosh, je pense qu'ici vous serez libre d'optimiser les algorithmes de calcul, car le calcul d'une parabole prend quelques fois plus de temps que le calcul d'un canal de régression linéaire ;o))).
 
А вот и новый сюрприз - рисование стрелочек не меняет времени прогона, это интересно.

J'ai cet effet, selon la façon dont j'exécute l'algorithme discuté ici, le temps d'exécution est soit 0 soit 16 ms. Je suppose que dans certains cas, l'algorithme est exécuté en continu, et dans d'autres, il est interrompu et un cycle terminal complet est exécuté (parce que les nombres sont répétés régulièrement). Par analogie - le tirage au sort ne peut-il pas avoir lieu après la fin des calculs ?



Dans ce lien - "MQL4, MQL2, EasyLanguage, Wealth-Lab 3.0 et VC++ : Comparaison de la vitesse" - Renat écrit


Renat 14.01.05 14:18

Simplement, j'ai été confronté au comportement inadéquat de GetTickCount() plus d'une fois ; cependant, si les résultats de nombreuses mesures étaient stables +/- un petit delta, cela confirme la fidélité des tests.


Oui, la précision de GetTickCount() passe de 10 à 16 ms et nous ne pouvons pas mesurer de petites périodes avec elle, mais dans notre cas, son utilisation est raisonnable. Surtout quand il est si facilement accessible depuis presque n'importe quel code.