Le problème du transfert de MT4 à MT5. Ou, plus précisément, l'impossibilité d'exécuter certains algorithmes dans MT5 sans "err". - page 10
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
C'est étrange, mais je n'avais pas pensé à le faire avant :
Cela permettrait de se débarrasser d'une masse de contrôles d'erreurs, comme l'allocation de mémoire.
pas d'option, l'EA sera supprimé du graphique, et vous n'aurez qu'à "quitter le système d'exploitation" avant le prochain tick à partir de n'importe quel endroit du programme.
Très probablement, il est possible d'envelopper élégamment tout dans une macro, pour appeler en toute sécurité les fonctions liées à l'indisponibilité des données sur le tick actuel, voici un "dummy".
pour la lisibilité du code, il serait bien de l'écrire de cette façon :
Est-il réaliste de penser que cet essai peut être enveloppé dans une macro et qu'il faut "quitter le système d'exploitation" en cas d'échec ?
Est-il réaliste d'envelopper cet essai dans une macro et de "quitter le système d'exploitation" en cas d'échec ?
Non ?
J'écris souvent toutes sortes de minimax au début d'une fonction, avec undefine à la fin. Naturellement, si l'action est répétée souvent, sinon elle n'a pas de sens.
Et vous avez tort à propos de l'avortement, pour certaines erreurs c'est parfait.
Non ?
Oui !
mais idéalement, je l'aimerais plutôt :
comme ça :
il ne s'agit pas de rendre la signature de la fonction Open() différente... Mais sous cette forme, j'obtiendrai ce que j'aimerais vraiment ! ;)
----------------------
PS : comme option, même les variables Tryerror ou bool Tryresult décrites globalement feraient l'affaire - le but d'une ligne "appel sûr", si cet appel se termine par une erreur, sortir du corps OnTick().
comme ça :
Je doute que ce soit possible, même dans les plus (on peut lancer une exception, mais c'est peu probable). Mais des choses arrivent, peut-être que quelqu'un va surprendre...
Donc, en un coup d'œil rapide :
c'est probablement le maximum dans cette situation.
Complètement débile, tu peux le faire, n'est-ce pas ?
Je ne l'ai pas compilé, mais ça devrait fonctionner.
Je suis tellement stupide, je ne peux pas m'en empêcher, n'est-ce pas ?
Je ne l'ai pas compilé, mais il devrait fonctionner.
Shaitan la machine ! !! Ça a marché ! !!
vérifié et simulé l'erreur ( shift>5 )
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 0 : 1.115010
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 1 : 1.114670
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 2 : 1.114590
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 3 : 1.114400
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 4 : 1.115240
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) 5 : 1.115450
2019.07.31 16:58:48.154 tst1 (EURUSD,H1) Erreur : un problème est survenu
Génial ! Et le code de la macro s'est avéré être très simple.
MERCI ! - Vous êtes définitivement un magicien !)
N'hésitez pas à l'utiliser.
La macro ci-dessus a un inconvénient - le type de l'aide est codé en dur, vous ne pouvez pas passer à la fonction Try qui retourne une chaîne de caractères et ensuite un double sans créer deux macros. J'ai un intérêt sportif - comment le contourner (écrire une macro pour tous les types. En µl sans options, en c++, bien que ce ne soit pas vraiment nécessaire ici, mais quand même) ? Personne n'est prêt à proposer sa propre variante (il faut bien se maintenir en forme, après tout) ?
Vous pouvez l'utiliser.
La macro ci-dessus a un inconvénient - le type d'aide est câblé, vous ne pouvez pas passer une fonction retournant une chaîne dans Try
Pourquoi pas ? Le signe + n'a pas été annulé !
voici comment j'ai passé au peigne fin votre macro, et comment je compte l'utiliser :
maintenant, le paramètre de macroEXCEPT est une action d'exception, qui fonctionne bien comme retour ou juste ; - si vous décidez de ne pas imprimer dans le journal, mais ne laissez pas le corps de OnTick().
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 0 : 1.113350
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 1 : 1.114180
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 2 : 1.115110
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 3 : 1.115010
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 4 : 1.114670
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) 5 : 1.114590
2019.07.31 19:01:28.353 tst1 (EURUSD,H1) double Open(int) : error #999 something goes wrong Txt
Eh bien, je veux dire, c'est comme ça :
Les gens ici n'ont pas l'air de jouer. Oh, allez.