Artyom Trishkin #: Peut. Deux valeurs seront alors reçues - uniquement dans les variables passées par référence. En d'autres termes, la fonction renvoie trois valeurs
Par souci d'intérêt, j'ai supprimé la variable d. Je n'ai laissé que la fonction. Le résultat de l'impression n'a pas changé. Pour être honnête, je ne comprends pas du tout les trois valeurs.
Pour des raisons d'intérêt, j'ai supprimé la variable d. Je n'ai laissé que la fonction. Le résultat de l'impression n'a pas changé. Pour être honnête, je ne comprends pas du tout les trois valeurs.
Cordialement, Vladimir.
Le résultat n'a pas changé parce que cette valeur n'a pas été imprimée.
//+------------------------------------------------------------------+//| передача параметров по ссылке |//+------------------------------------------------------------------+double SecondMethod(int &i,int &j)
{
double res;
//---
i*=2;
j/=2;
res=i+j;
//---return(res);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---.int a=14,b=8;
Print("a и b перед вызовом:",a," ",b);
double d=SecondMethod(a,b);
Print("Результат выполнения функции ", d);Print("a и b после вызова:",a," ",b, " ",d);// или здесь. А можно и там и тут…
}
//+------------------------------------------------------------------+
Bonjour et bonne humeur à tous ! Je continue à étudier le langage de programmation MQL5. J'ai écrit un petit script pour calculer le nombre total de positions ouvertes et imprimer certains de ses paramètres, y compris les codes d'erreur, le cas échéant :
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
ResetLastError(); // установим значение предопределенной переменной _LastError в нольint pos_total = PositionsTotal(); // объявим переменную для хранения количества открытых позицийif(pos_total > 0) // если есть открытые позиции
{
for(int i=0; i<pos_total; i++) // запустим цикл и переберём все открытые позиции
{
if(PositionGetSymbol(i) == _Symbol) // выберем все открытые позиции по текущему символу
{
ulong pos_id = PositionGetInteger(POSITION_IDENTIFIER);
double pos_price = PositionGetDouble(POSITION_PRICE_OPEN);
double pos_tp = PositionGetDouble(POSITION_TP);
double pos_sl = PositionGetDouble(POSITION_SL);
PrintFormat("Позиция #%d цена = %G тейк-профит = %G стоп-лосс = %G", pos_id, pos_price, pos_tp, pos_sl);
}
else// если выбрать позицию не удалось
{
PrintFormat("Не удалось выбрать позицию по символу %s. Ошибка = ", _Symbol, GetLastError());
}
}
}
}
//+------------------------------------------------------------------+
Je l'ai exécuté sur un symbole, où il y a des positions ouvertes. Il fonctionne correctement, les informations sont imprimées correctement. Suivant. J'ai démarré sur le symbole où il n'y a pas de positions ouvertes. L'information sur le fait qu'il n'y a pas de positions ouvertes s'affiche correctement, mais le code de la cause de l'erreur, pour une raison quelconque, ne s'affiche pas. Pouvez-vous m'aider à comprendre pourquoi le code d'erreur n'est pas affiché ?
Je l'ai lancé sur un symbole avec des positions ouvertes. Il fonctionne correctement, les informations s'affichent correctement. Ensuite, je l'ai lancé sur un symbole qui n'a pas de positions ouvertes. Je l'ai lancé sur un symbole sans positions ouvertes. L'information sur le fait qu'il n'y a pas de positions ouvertes s'affiche correctement, mais le code de la cause de l'erreur, pour une raison quelconque, ne s'affiche pas. Pouvez-vous m'aider à comprendre pourquoi le code d'erreur n'est pas affiché ?
D'où vient le code d'erreur s'il n'y a pas d'erreur ? Il s'agit simplement du mauvais symbole pour la position.
Pourquoi y aurait-il un code d'erreur s'il n'y a pas d'erreur ? Il s'agit simplement du mauvais symbole pour la position.
Merci de votre réponse ! Je m'attendais à ce qu'au moins ce code d'erreur soit affiché :
ERR_TRADE_POSITION_NOT_FOUND
4753
Position non trouvée
Je ne suis pas d'accord sur le symbole. Le symbole est exactement celui sur le graphique duquel ce script a été lancé. Je n'ai pas de positions ouvertes sur le symbole GBPUSDrfd maintenant, mais il n'y a pas d'erreur non plus. Ce n'est pas clair !
2023.11.2313:27:26.3857 (GBPUSDrfd,H1) Не удалось выбрать позицию по символу GBPUSDrfd. Ошибка =
2023.11.2313:27:26.3857 (GBPUSDrfd,H1) Не удалось выбрать позицию по символу GBPUSDrfd. Ошибка =
Merci de votre réponse ! Je m'attendais à ce qu'au moins ce code d'erreur soit affiché :
ERR_TRADE_POSITION_NOT_FOUND
4753
Position non trouvée
Je ne suis pas d'accord sur le symbole. Le symbole est exactement celui, sur le graphique duquel ce script a été lancé. Je n'ai pas de position ouverte sur le symbole GBPUSDrfd, mais je n'ai pas d'erreur non plus. Je ne comprends pas !!!
Cordialement, Vladimir.
Toutes les positions ont été trouvées ! Mais aucune des positions trouvées n'a le symbole dont nous avons besoin.
Peut. Deux valeurs seront alors reçues - uniquement dans les variables passées par référence. En d'autres termes, la fonction renvoie trois valeurs
Par souci d'intérêt, j'ai supprimé la variable d. Je n'ai laissé que la fonction. Le résultat de l'impression n'a pas changé. Pour être honnête, je ne comprends pas du tout les trois valeurs.
Cordialement, Vladimir.
Pour des raisons d'intérêt, j'ai supprimé la variable d. Je n'ai laissé que la fonction. Le résultat de l'impression n'a pas changé. Pour être honnête, je ne comprends pas du tout les trois valeurs.
Cordialement, Vladimir.
Le résultat n'a pas changé parce que cette valeur n'a pas été imprimée.
Il suffit d'ajouter l'impression et vous verrez.
Non modifié car cette valeur n'a pas été imprimée.
Il suffit d'ajouter print et vous verrez.
Je l'ai imprimée. Elle est restée la même.
Peut-être ai-je encore mal compris quelque chose ? Ou bien avez-vous besoin d' imprimer lavariabled? Est-ce de cela que nous parlions ?
Cordialement, Vladimir.
Imprimé. Tout reste inchangé.
Avec mes salutations, Vladimir.Imprimé où ?
Où l'a-t-on imprimé ?
Maintenant, j'ai tout compris. )) Merci à tous !
Bien à vous, Vladimir.
Je l'ai exécuté sur un symbole, où il y a des positions ouvertes. Il fonctionne correctement, les informations sont imprimées correctement. Suivant. J'ai démarré sur le symbole où il n'y a pas de positions ouvertes. L'information sur le fait qu'il n'y a pas de positions ouvertes s'affiche correctement, mais le code de la cause de l'erreur, pour une raison quelconque, ne s'affiche pas. Pouvez-vous m'aider à comprendre pourquoi le code d'erreur n'est pas affiché ?
Cordialement, Vladimir.
Je l'ai lancé sur un symbole avec des positions ouvertes. Il fonctionne correctement, les informations s'affichent correctement. Ensuite, je l'ai lancé sur un symbole qui n'a pas de positions ouvertes. Je l'ai lancé sur un symbole sans positions ouvertes. L'information sur le fait qu'il n'y a pas de positions ouvertes s'affiche correctement, mais le code de la cause de l'erreur, pour une raison quelconque, ne s'affiche pas. Pouvez-vous m'aider à comprendre pourquoi le code d'erreur n'est pas affiché ?
D'où vient le code d'erreur s'il n'y a pas d'erreur ? Il s'agit simplement du mauvais symbole pour la position.
Pourquoi y aurait-il un code d'erreur s'il n'y a pas d'erreur ? Il s'agit simplement du mauvais symbole pour la position.
Merci de votre réponse ! Je m'attendais à ce qu'au moins ce code d'erreur soit affiché :
ERR_TRADE_POSITION_NOT_FOUND
4753
Position non trouvée
Je ne suis pas d'accord sur le symbole. Le symbole est exactement celui sur le graphique duquel ce script a été lancé. Je n'ai pas de positions ouvertes sur le symbole GBPUSDrfd maintenant, mais il n'y a pas d'erreur non plus. Ce n'est pas clair !
Cordialement, Vladimir.
Merci de votre réponse ! Je m'attendais à ce qu'au moins ce code d'erreur soit affiché :
ERR_TRADE_POSITION_NOT_FOUND
4753
Position non trouvée
Je ne suis pas d'accord sur le symbole. Le symbole est exactement celui, sur le graphique duquel ce script a été lancé. Je n'ai pas de position ouverte sur le symbole GBPUSDrfd, mais je n'ai pas d'erreur non plus. Je ne comprends pas !!!
Cordialement, Vladimir.
Toutes les positions ont été trouvées ! Mais aucune des positions trouvées n'a le symbole dont nous avons besoin.
Toutes les positions sont trouvées ! Mais aucun des postes trouvés n'a le symbole dont nous avons besoin.
Je l'ai maintenant. Merci !!! Il s'avère que s'il y a au moins une position ouverte, le code d'erreur 4753 n'apparaîtra jamais.
Cordialement, Vladimir.