Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Que voulez-vous en retirer ? Pour être honnête, je ne comprends pas. J'ai d'abord pensé qu'un cadre de travail était prévu, mais non, pas de classes enveloppantes pour les indicateurs, les ordres, les algorithmes standard de prise de décision, rien. Bien que la construction suivante soit beaucoup plus lisible : fast.Get(2)>=slow.Get(1) ; (c'est juste pour l'exemple), mais la déclaration :
CMA fast=new CMA(NULL,0,12,...) ;
CMA slow=new CMA(NULL,0,100,...) ;
Maintenant, nous pouvons en discuter, tandis que vous, IMHO, piétinez sur place.
par exemple, au lieu de fast.Get(2)>=slow.Get(1) ; c'est un code tout à fait légal et fonctionnel :
table[FAST_MA][1] >=table[SLOW_MA][2]
il fonctionne comme une feuille de calcul, avec excel. Elle est résumée dans un tableau, et non par poignées individuelles, car les données (formules) peuvent être interdépendantes.
C'est possible (je ne l'ai pas encore fait dans une bibliothèque spécifique) :
fast=table[FAST_MA]; slow=table[SLOW_MA];
et puis fast[2]>slow[1] est encore plus facile à lire
et tous les calculs internes seront effectués "à la demande".
également par exemple, au lieu de fast.Get(2)>=slow.Get(1) ; code tout à fait légal et fonctionnel :
table[FAST_MA][1] >=table[SLOW_MA][2]
ça fonctionne comme avec une feuille de calcul, avec Excel. Elle est résumée dans un tableau, et non par poignées individuelles, car les données (formules) peuvent être interdépendantes.
C'est possible (je ne l'ai pas encore fait dans une bibliothèque spécifique) :
fast=table[FAST_MA]; slow=table[SLOW_MA];
et puis fast[2]>slow[1] se lit encore plus facilement
et tous les calculs internes seront effectués "à la demande".
Je suis d'accord, il est très difficile de lire votre code, même si vous connaissez le langage.
En fait, cette règle fonctionne pour tout code tiers. La seule question est de savoir quel code n'est pas difficile mais plus facile à lire.
Et ici, il est plus facile de lire et de modifier presque toujours le code MQL4. Les développeurs l'ont deviné une fois.
En fait, cette règle fonctionne pour tout code tiers. La seule question est de savoir quel code n'est pas difficile mais plus facile à lire.
Et il est plus facile de lire et de modifier presque toujours le code MQL4. Les développeurs l'ont deviné une fois.
Mais laissez-moi vous poser une question. Quelle était la supposition ? Le C/C++ standard, sauf pour les requêtes spécifiques liées au trading et aux graphiques, peut être considéré comme "windows.h" en C++.
Donc, respect aux développeurs pour ne pas réinventer la roue, bien qu'interdire les liens soit un moins sans équivoque, quand je suis tombé dans le C/C++ après mql, je ne pouvais pas me réjouir. C'est pourquoi, si un miracle se produit, vous devriez peut-être envisager, comme alternative, comme C# usafe, surtout pour les gens comme moi, comme si vous voulez frapper le mur, tuez-vous, nous vous avons prévenu.
Laissez-moi vous poser une question. Quelle est l'hypothèse ?
Kodobase est rempli d'EAs MT5 qui sont des remakes d'EAs MT4. Comparez le code de l'original et du remake.
Évidemment, il est beaucoup plus facile de comprendre la logique de l'original MT4. Mais c'est encore plus facile lorsqu'il s'agit de corriger quelque chose en TS. Ce n'est pas pour rien que MQL4 est un standard pour la discussion des algorithmes de trading sur les forums du monde entier. Aucun autre langage, mais MQL4. Et il a joué un grand rôle dans la popularité de MT4, et non l'inverse.
Et si nous parlons des conversions MT5, elles sont tordues - elles ne fonctionnent pas toujours. Un exemple simple. Vous envoyez une demande de clôture d'une position mais recevez un ordre de transaction au lieu de la clôturer. Il y a beaucoup d'astuces à résoudre pour accéder au compte réel. Avec MT4, c'est simple et fiable.
La base de données Kodobase est pleine de MT5 EAs qui sont des remakes de MT4 EAs. Comparez le code de l'original et du remake.
Il est évidemment beaucoup plus facile de comprendre la logique de l'original MT4. Mais c'est encore plus facile lorsqu'il s'agit de corriger quelque chose en TS. Ce n'est pas pour rien que MQL4 est un standard pour la discussion des algorithmes de trading sur les forums du monde entier. Aucun autre langage, mais MQL4. Et il a joué un grand rôle dans la popularité de MT4, et non l'inverse.
Et si nous parlons des conversions MT5, elles sont tordues - elles ne fonctionnent pas toujours. Un exemple simple. Vous envoyez une demande de clôture d'une position mais recevez un ordre de transaction au lieu de la clôturer. Il y a beaucoup d'astuces à gérer pour accéder au compte réel. Avec MT4, c'est simple et fiable.
C'est donc un non-sens de travailler avec les ordres/positions par analogie. J'ai une classe wrapper pour cela dans mql4 et deux différentes dans mql5 parce que c'est une entité dans mt4 et deux différentes dans mt5. Maintenant je prévois d'implémenter une classe wrapper pour eux et d'oublier de travailler avec les commandes comme je l'ai fait pendant six mois dans mql4.
Vous savez, mt5 aussi a été créé pour travailler en bourse et là ils ont un autre principe de travail avec les ordres/positions, donc apprenez les maths et ne râlez pas, tout est bon et fonctionne bien là, mais d'abord nous devons apprendre les mécanismes de trading de la bourse et du forex et prendre en compte leurs différences. Tout ce qui est nécessaire pour ce faire, les développeurs l'ont donné et décrit dans les docks, et ensuite c'est à vous de jouer.
Essayez d'élargir vos horizons car ce que vous avez écrit est vraiment une plainte.
Il semble que ce soit une béquille. Outre les tampons d'essuyage, que le terminal créera de toute façon, nous ajoutons également des tableaux doubles. Je comprends que vous allez leur réserver de la mémoire jusqu'à la profondeur totale de l'historique (pour M1 USHORT_MAX, si je me souviens bien *8 octets) ou prévoyez-vous d'utiliser régulièrement le coûteux ArrayResize en cours d'opération ?
Je leur alloue de la mémoire, bien sûr. A une profondeur ne dépassant pas celle nécessaire aux calculs et au débogage. Dans le fragment donné, il est de 30, ce qui est plus que suffisant. Si quelque part il sera nécessaire de calculer par exemple l'écart-type de la profondeur 50, alors le cache doit être augmenté. Et ce, uniquement pour accélérer les calculs.
Essayez d'élargir vos horizons car ce que vous avez écrit est vraiment une plainte.
Je suis d'accord avec l'esprit, mais c'est ainsi que la connexion entre la position et l'ordre est implémentée dans mql5 (dans le cadre du dernier travail, en principe, il ira déjà dans la bibliothèque pour les comptes de couverture sous cette forme).