Merci pour la réponse, j'ai regardé à la fois la documentation et votre exemple, mais je n'ai toujours pas trouvé comment obtenir un paramètre similaire à OrderClosePrice() dans MT4.
Si ENUM_DEAL_ENTRY==DEAL_ENTRY_OUT && ENUM_DEAL_TYPE == DEAL_TYPE_SELL --- cela signifie que la position BUY a été fermée et donc queDEAL_PRICE est le prix de clôture.
Merci pour la réponse, j'ai regardé à la fois la documentation et votre exemple, mais je n'ai toujours pas trouvé comment obtenir un paramètre similaire à OrderClosePrice() dans MT4.
Il n'y a pas d'analogie directe. Le poste consiste en des échanges. Si vous voulez des données exactes pour une position, vous devez d'abord assembler la position à partir de l'historique des transactions.
Il est donc préférable de travailler avec le concept de "deal".
En général, la mise en œuvre dépend beaucoup de la réponse à la question : "Pourquoi ?". C'est-à-dire qu'il faut d'abord décrire exactement ce que vous voulez et pourquoi.
Компиляция — это процесс перевода исходного кода MQL4/MQL5-программы на машинный язык. Ее результатом является создание исполняемого файла программы (*EX4 или *.EX5), который может быть запущен в торговой платформе. Скомпилировать можно любой файл (*.MQ4, *.MQ5 или *.MQH), однако исполняемый файл (*.EX4 или *.EX5) может быть получен только в...
En d'autres termes, déclarez les variables plus soigneusement - évitez de déclarer les mêmes variables dans la même portée.
Lorsque vous déclarez une variable , prenez l'habitude de l'initialiser immédiatement.
Le problème est que si je déclare une autre variable dans l'instruction If else, j'ai besoin de la déclarer à nouveau, sinon l'erreur "'stavkariska1' - undeclared identifier". Un cercle vicieux pour un débutant. Peut-être existe-t-il d'autres façons de mettre en œuvre la sélection ?
TrueSam: Le truc, c'est qu'en déclarant une autre variable dans l'opérateur If else, j'ai besoin de la déclarer à nouveau, sinon l'erreur "'stavkariska1' - undeclared identifier". Un cercle vicieux pour un débutant. Peut-être existe-t-il d'autres façons de mettre en œuvre la sélection ?
Le petit robot a aussi fait une erreur en vitesse.
double StavkaRiska=0.0;// ставка риска по инструментамif(StringCompare(_Symbol,"VTBR")==0 || StringCompare(_Symbol,"LKOH")==0)
double StavkaRiska=0.3;
else StavkaRiska=1;
int lot=int(depozit/(d*stoimkontr)*StavkaRiska);
Celui qui est mis en évidence est inutile. Sans nouvelle déclaration, il devrait fonctionner comme il se doit.
Merci pour la réponse, j'ai regardé à la fois la documentation et votre exemple, mais je n'ai toujours pas trouvé comment obtenir un paramètre similaire à OrderClosePrice() dans MT4.
Si ENUM_DEAL_ENTRY ==DEAL_ENTRY_OUT && ENUM_DEAL_TYPE == DEAL_TYPE_SELL --- cela signifie que la position BUY a été fermée et donc queDEAL_PRICE est le prix de clôture.
Merci pour la réponse, j'ai regardé à la fois la documentation et votre exemple, mais je n'ai toujours pas trouvé comment obtenir un paramètre similaire à OrderClosePrice() dans MT4.
Il n'y a pas d'analogie directe. Le poste consiste en des échanges. Si vous voulez des données exactes pour une position, vous devez d'abord assembler la position à partir de l'historique des transactions.
Il est donc préférable de travailler avec le concept de "deal".
En général, la mise en œuvre dépend beaucoup de la réponse à la question : "Pourquoi ?". C'est-à-dire qu'il faut d'abord décrire exactement ce que vous voulez et pourquoi.
Comment puis-je obtenir le prix de clôture d'un ordre (transaction, position - tout ce que vous voulez) ?
J'ai cherché sur le forum, je ne l'ai pas trouvé.
https://www.mql5.com/ru/forum/162461
alternativement ouvrirhttps://www.mql5.com/ru/code/16006
et regardez l'implémentation de @fxsaber
Il n'est pas réaliste d'arracher l'implémentation à partir de là, car elle est fortement dépendante de toutes les autres parties de la bibliothèque.
Mes amis, veuillez m'indiquer comment résoudre un problème apparemment simple. Un morceau de code :
Avertissement du compilateur :
la déclaration de 'stavkariska' cache la déclaration locale à la ligne 25 script.mq5 32 12
utilisation possible d'une variable non initialisée 'stavkariska' script.mq5 33 39
Quelle est la bonne façon de résoudre ce problème, de manière à ce qu'il compile sans aucun avertissement ?
Mes amis, veuillez me conseiller sur la façon de résoudre un problème apparemment simple. Un morceau de code :
Avertissement du compilateur :
la déclaration de 'stavkariska' cache la déclaration locale à la ligne 25 script.mq5 32 12
utilisation possible d'une variable non initialisée 'stavkariska' script.mq5 33 39
Comment résoudre le problème correctement, pour qu'il compile sans aucun avertissement ?
Faites appel à un traducteur :
En d'autres termes, déclarez les variables plus soigneusement - évitez de déclarer les mêmes variables dans la même portée.
Lorsque vous déclarez une variable , prenez l'habitude de l'initialiser immédiatement.
Faites appel au traducteur :
En d'autres termes, déclarez les variables plus soigneusement - évitez de déclarer les mêmes variables dans la même portée.
Lorsque vous déclarez une variable , prenez l'habitude de l'initialiser immédiatement.
Le truc, c'est qu'en déclarant une autre variable dans l'opérateur If else, j'ai besoin de la déclarer à nouveau, sinon l'erreur "'stavkariska1' - undeclared identifier". Un cercle vicieux pour un débutant. Peut-être existe-t-il d'autres façons de mettre en œuvre la sélection ?
Le petit robot a aussi fait une erreur en vitesse.
Celui qui est mis en évidence est inutile. Sans nouvelle déclaration, il devrait fonctionner comme il se doit.
Le petit crabier a aussi fait une erreur dans sa hâte.
Celui qui est mis en évidence est redondant. Sans la ré-annonce, il devrait fonctionner comme il se doit.
Merci de votre attention. Je suis désolé, j'ai tapé directement dans mon navigateur en utilisant le copier-coller.
Le petit crabier a aussi fait une erreur dans sa précipitation.
Celui qui est mis en évidence est redondant. Sans une nouvelle annonce, il devrait fonctionner comme il se doit.