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
Bonjour à tous !
J'ai rencontré ce bug (ou peut-être que je comprends mal quelque chose)
Lorsque l'on regarde l'historique d'un mois, les données adéquates sont affichées, c'est-à-dire gagné 740, swap -250.
Dans le même temps, lorsque je regarde l'ensemble de la période, les 500 points gagnés et l'échange sont presque les mêmes.
C'est pourquoi je ne comprends pas comment il peut en être ainsi lorsque les gains pour l'ensemble de la période sont inférieurs au total mensuel.
Si vous le souhaitez, je peux joindre les rapports d'historique
C'est pourquoi si vous placez un 5e ordre d' achat stop en attente avec une position ouverte de 3 lots et 4 ordres d'achat stop existants de 3 lots chacun (avec une limite de 15 lots), vous ne devriez pas réussir.
En général, oui - en termes de ce qui est décrit dans l'aide.
Mais logiquement - pas nécessairement. Sur les marchés boursiers, il n'y a que des ordres à cours limité dans la pile, tandis que les ordres stop sont stockés sur le serveur du courtier et ont deux paramètres - le prix d'activation ("Price" en MT) et le prix de l'ordre à cours limité placé (le pire prix auquel la transaction est prête à être exécutée). Cette fonction est similaire à BuyStopLimit et SellStopLimit dans MT5, mais la limite peut être égale au prix stop ou supérieure (pour BuyStopLimit) ou inférieure (pour SellStopLimit). Sur les marchés boursiers, le fait de fixer une limite plus élevée (pour l'achat) entraîne une transaction, alors que cela ne peut être fait en MT. Ainsi, sur les marchés boursiers, particulièrement peu développés (par exemple, la Bourse ukrainienne), assez souvent (et surtout le jour de l'expiration d'un indice trimestriel à terme entre 16h30-16h35) les stops n'ont pas le temps de travailler et la coupe est remplie d'ordres Limit, qui dans des conditions normales, conduiraient immédiatement à l'exécution.
Ainsi - Limite sur le marché - engagement ferme d'acheter / vendre (si l'argent devient soudainement rare, le courtier peut supprimer l'ordre, mais avant qu'il ne vienne à l'exécution), tandis que STOP - simplement un enregistrement sur le serveur du courtier, donc au moment d'atteindre le prix d'activation le courtier peut estimer les fonds libres et décider - exposer la limite ou non. C'est pourquoi je dis que pour les limites, vous devez respecter les limites, mais pour les arrêts, en théorie, vous n'avez pas à le faire.
Vous êtes arrivé à DoubleToString ? :)
Ah, regarde NormalizeDouble :
Vous devez garder à l'esprit qu'un nombre normalisé, lorsqu'il est transmis au Journal à l'aide de la fonction Print(), peut contenir plus de décimales que prévu.
Rien de déroutant?
Ah, regarde NormalizeDouble :
Quelque chose de confus?
Non, rien de déroutant. Dans votre exemple
il n'y avait aucune référence à l'utilisation de la fonction NormalizeDouble() et aux nombres normalisés. En conséquence, ma remarque"Avez-vous atteint DoubleToString ?:)" était accompagné d'une citation de la fonctionDoubleToString() sans l'ombre d'une gêne.Et personne n'a encore réfuté la pertinence de cette citation.Non, rien n'est confus. Dans votre exemple.
Il n'a jamais été question de l'utilisation de la fonction NormalizeDouble() et des nombres normalisés. En conséquence, ma remarque"Avez-vous atteint DoubleToString ?:)" était accompagné d'une citation de la fonctionDoubleToString() sans l'ombre d'une gêne.Et personne n'a encore réfuté la pertinence de cette citation.En fait, je ne fais pas référence à votre commentaire, mais au dock sur NormalizeDouble().
En général, oui - en termes de ce qui est décrit dans l'aide.
Mais logiquement - pas nécessairement. Sur les marchés boursiers, il n'y a que des ordres à cours limité dans la pile, tandis que les ordres stop sont stockés sur le serveur du courtier et ont deux paramètres - le prix d'activation ("Price" en MT) et le prix de l'ordre à cours limité placé (le pire prix auquel la transaction est prête à être exécutée). Cette fonction est similaire à BuyStopLimit et SellStopLimit dans MT5, mais la limite peut être égale au prix stop ou supérieure (pour BuyStopLimit) ou inférieure (pour SellStopLimit). Sur les marchés boursiers, le fait de fixer une limite plus élevée (pour l'achat) entraîne une transaction, alors que cela ne peut être fait en MT. Ainsi, sur les marchés boursiers, particulièrement peu développés (par exemple, la Bourse ukrainienne), assez souvent (et surtout le jour de l'expiration d'un indice trimestriel à terme entre 16h30-16h35) les stops n'ont pas le temps de travailler et la coupe est remplie d'ordres à cours limité, qui dans des conditions normales, conduiraient immédiatement à l'exécution.
Ainsi - Limite sur le marché - engagement ferme d'acheter / vendre (si l'argent devient soudainement rare, le courtier peut supprimer l'ordre, mais avant qu'il ne vienne à l'exécution), tandis que STOP - simplement un enregistrement sur le serveur du courtier, donc au moment d'atteindre le prix d'activation le courtier peut estimer les fonds libres et décider - exposer la limite ou non. C'est pourquoi je dis que pour les limites, les limites doivent être respectées, alors que pour les arrêts, en théorie, elles ne doivent pas l'être.
Merci pour cette explication détaillée.
Valery, avez-vous essayé d'implémenter une auto-stratégie dans le Strategy Tumbler de MT5 ? J'ai essayé il y a environ un mois et ça n'a pas marché, personne n'a répondu sur le forum. Je ne comprends pas si c'est un bug ou un malentendu de ma part. Jette un peu de lumière. :)
Bonjour !
Veuillez me conseiller, j'ai un indicateur iCustom dans un corps de programme ordinaire, il fonctionne bien et obtient le handle.
Si je le place dans la bibliothèque EX5, j'obtiens un indicateur handle=-1 et le programme principal ne parvient pas à appeler l'indicateur :
"Le chargement du DZMACD EURGBP,M15 a échoué".
"Impossible de charger l'indicateur personnalisé 'DZMACD' [4002]"
En même temps, les indicateurs standards, comme iMA ou iMACD, fonctionnent normalement dans la même bibliothèque ex5, ils obtiennent la poignée.
Je ne sais pas ce que je fais de mal ou c'est un bug ?
intday;// jour
En fait, je ne faisais pas référence à votre commentaire, mais à la doc NormalizeDouble().
En fait, le message était formulé comme suit:
Êtes-vous arrivé à DoubleToString ? :)
Ah, regarde NormalizeDouble :
Rien ne t'embarrasse?
C'est-à-dire qu'il y avait une citation directe de "mon commentaire" avec la suggestion "regardez autre chose là-haut" et la question "est-ce que ça prête à confusion ?".
Si vous vouliez présenter uniquement les résultats d'une nouvelle recherche sous la forme "...à propos d'un dock par NormalizeDouble()" - vous l'écririez ainsi, sans citer d'informations inutiles. Je suppose que oui.
Puisque, cependant, votre post a utilisé un lien nommé et exactement à ma réplique - a dû préciser que NormalizeDouble() n'avait rien à voir avec ma réplique ou votre post original, que j'ai pris la liberté de commenter.
Bonjour !
S'il vous plaît conseiller, j'ai iCustom indicateur dans le corps habituel du programme fonctionne bien, il obtient handel, tout fonctionne.
Si je le place dans la bibliothèque EX5, j'obtiens Handel= -1 et le programme principal ne parvient pas à appeler l'indicateur :
"Le chargement du DZMACD EURGBP,M15 a échoué".
"Impossible de charger l'indicateur personnalisé 'DZMACD' [4002]"
En même temps, les indicateurs standards, comme iMA ou iMACD, fonctionnent bien dans la même bibliothèque ex5, ils obtiennent la poignée.
Je n'arrive pas à comprendre ce que je fais de travers ou c'est un bug ?
ERR_WRONG_INTERNAL_PARAMETER
4002
Paramètre erroné dans l'appel de fonction du terminal client interne