Si les développeurs avaient donné exit / abort en standard, alors il serait possible de terminer correctement le traitement des données, si, par exemple, TF n'est pas prêt - données OHLC, il serait également utile pour le traitement de l'envoi des ordres au serveur .... il serait pratique d'interrompre le code à n'importe quel endroit et de sortir avant le prochain tick sans avoir besoin de return() pour sortir de OnTick().
En fait, il est possible d'implémenter une béquille, mais l'ergonomie est mauvaise dans ce cas, je ne vous la montrerai même pas, même si elle devrait fonctionner.
Bien que la convivialité semble avoir été améliorée. En général, chaque appel de fonction ou de méthode avec une sortie possible, y compris les fonctions imbriquées, doit être enveloppé dans la macro _call. Pour ceux qui sont intéressés, n'hésitez pas à écrire le reste pour tous les handlers. Il a été écrit sur une manivelle, comme un test d'une idée, donc il n'a pas été testé, à partir du mot - du tout.
Le MT5 ne dispose d'aucune protection contre la fermeture accidentelle du terminal. Un tel scénario s'est produit récemment.
Le terminal et le navigateur sont ouverts sur l'ensemble de la fenêtre. Je suis dans le navigateur.
Le navigateur est gelé, je clique sur la croix dans le coin supérieur droit.
Il ne se ferme pas, j'appuie dessus quelques fois de plus.
À un moment donné pendant l'appui, le navigateur se ferme - la fenêtre disparaît. Et à ce moment la croix du terminal sous le curseur, où j'ai appuyé.
Le terminal se ferme, si rapidement qu'on ne le remarque tout simplement pas. Surtout lorsque de nombreux terminaux sont ouverts.
C'est une situation très désagréable lors de l'optimisation des lots, par exemple. Mais c'est encore pire pour le conseiller de combat. Vous êtes peut-être stupide de ne pas remarquer que vous avez tué votre terminal de combat.
Vous avez mis une telle protection.
voidOnDeinit( constint Reason )
{
if (Reason == REASON_CLOSE)
MessageBox("Terminal is being closed!");
}
Lorsque vous le fermez, un message apparaît pendant cinq secondes. Pour que vous puissiez découvrir ce qui s'est réellement passé. Il est étrange qu'il n'y ait pas de protection dans le terminal.
Le MT5 ne dispose d'aucune protection contre la fermeture accidentelle du terminal. Un tel scénario s'est produit récemment.
Le terminal et le navigateur sont ouverts sur l'ensemble de la fenêtre. Je suis dans le navigateur.
Le navigateur est gelé, je clique sur la croix dans le coin supérieur droit.
Il ne se ferme pas, j'appuie dessus quelques fois de plus.
À un moment donné pendant l'appui, le navigateur se ferme - la fenêtre disparaît. Et à ce moment la croix du terminal sous le curseur, où j'ai appuyé.
Le terminal se ferme, si rapidement qu'on ne le remarque tout simplement pas. Surtout lorsque de nombreux terminaux sont ouverts.
C'est une situation très désagréable lors de l'optimisation des lots, par exemple. Mais c'est encore pire pour le conseiller de combat. Vous êtes peut-être stupide de ne pas remarquer que vous avez tué votre terminal de combat.
Vous avez mis une telle protection.
Lorsque vous le fermez, un message apparaît pendant cinq secondes. Pour que vous puissiez découvrir ce qui s'est réellement passé. Il est étrange que le terminal n'ait pas de protection.
Il existe quelques options plus simples.
Gardez le terminal de combat au minimum.
Gardez le terminal de combat sur le VPS
Attachez les mains coquines et restez loin de l'ordinateur. )))
Je vais devoir réfléchir, peut-être que quelque chose va se présenter...)))
Attachez les mains coquines et restez loin de l'ordinateur. )))
Je dois réfléchir, peut-être que quelque chose va se présenter...)))
Sur VPS peut fermer aussi. J'ai des experts là-bas qui envoient du Push.
Et c'est vraiment facile de frapper la mauvaise croix quand l'interface du vent ralentit. Je l'ai fait, maintenant je le ferme sur la barre des tâches dans le menu contextuel.
Pour toute mise en œuvre d'une instruction mql, il est judicieux d'utiliser la fonction DebugBreak pour le mode débogage. Cela rend la vie très facile lors du débogage et bien plus utile que de se planter.
Sur une couverture, une position peut être constituée de plusieurs transactions IN. Cela se fait par exécution partielle.
Dans ce cas, l'ordre qui est partiellement exécuté changera son ORDER_TIME_SETUP(_MSC) pour l'heure de la première (éventuellement avant-dernière) transaction. En d'autres termes, il serait impossible de déterminer à partir de l'historique quand, par exemple, BuyLimit a été placé.
En conséquence, la position sur la couverture peut avoir un prix d'ouverture fractionné, comme on peut souvent le voir sur la compensation.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Au fait, l'analogue de Assert
Je ne peux pas être sûr d'en avoir besoin !
Si les développeurs avaient donné exit / abort en standard, alors il serait possible de terminer correctement le traitement des données, si, par exemple, TF n'est pas prêt - données OHLC, il serait également utile pour le traitement de l'envoi des ordres au serveur .... il serait pratique d'interrompre le code à n'importe quel endroit et de sortir avant le prochain tick sans avoir besoin de return() pour sortir de OnTick().
Bien que la convivialité semble avoir été améliorée. En général, chaque appel de fonction ou de méthode avec une sortie possible, y compris les fonctions imbriquées, doit être enveloppé dans la macro _call. Pour ceux qui sont intéressés, n'hésitez pas à écrire le reste pour tous les handlers. Il a été écrit sur une manivelle, comme un test d'une idée, donc il n'a pas été testé, à partir du mot - du tout.
Le MT5 ne dispose d'aucune protection contre la fermeture accidentelle du terminal. Un tel scénario s'est produit récemment.
C'est une situation très désagréable lors de l'optimisation des lots, par exemple. Mais c'est encore pire pour le conseiller de combat. Vous êtes peut-être stupide de ne pas remarquer que vous avez tué votre terminal de combat.
Vous avez mis une telle protection.
Lorsque vous le fermez, un message apparaît pendant cinq secondes. Pour que vous puissiez découvrir ce qui s'est réellement passé. Il est étrange qu'il n'y ait pas de protection dans le terminal.
Le MT5 ne dispose d'aucune protection contre la fermeture accidentelle du terminal. Un tel scénario s'est produit récemment.
C'est une situation très désagréable lors de l'optimisation des lots, par exemple. Mais c'est encore pire pour le conseiller de combat. Vous êtes peut-être stupide de ne pas remarquer que vous avez tué votre terminal de combat.
Vous avez mis une telle protection.
Lorsque vous le fermez, un message apparaît pendant cinq secondes. Pour que vous puissiez découvrir ce qui s'est réellement passé. Il est étrange que le terminal n'ait pas de protection.
Il existe quelques options plus simples.
Il existe quelques options plus simples.
Sur VPS peut fermer aussi. J'ai des experts là-bas qui envoient du Push.
Et c'est vraiment facile de frapper la mauvaise croix quand l'interface du vent ralentit. Je l'ai fait, maintenant je le ferme sur la barre des tâches dans le menu contextuel.
Il existe quelques options plus faciles.
Installez un gestionnaire de bureau et dédiez un bureau au navigateur et autres, et dédiez un autre bureau aux terminaux.
Ou installez Linux (le gestionnaire de bureau est fourni avec :) ).
Au fait, l'analogue de Assert
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bibliothèques : MT4Orders
fxsaber, 2020.04.07 18:47
L'exécution partielle est très facile à trouver dans MT5.Sur une couverture, une position peut être constituée de plusieurs transactions IN. Cela se fait par exécution partielle.
Dans ce cas, l'ordre qui est partiellement exécuté changera son ORDER_TIME_SETUP(_MSC) pour l'heure de la première (éventuellement avant-dernière) transaction. En d'autres termes, il serait impossible de déterminer à partir de l'historique quand, par exemple, BuyLimit a été placé.
En conséquence, la position sur la couverture peut avoir un prix d'ouverture fractionné, comme on peut souvent le voir sur la compensation.