Vous avez perçu la différence entre une commande synchrone et une commande asynchrone.
Ouais...
Mais les observations montrent que ces fonctions sont assez synchrones dans leur asynchronie. :)
Ok, je vais formuler ma question différemment pour les développeurs : Y a-t-il une opportunité (ou un désir) de changer ces fonctions asynchrones en fonctions synchrones ?
Pourriez-vous fournir une liste des fonctions asynchrones.
Si je comprends bien, les fonctions Object et Chart (quelles autres ?) sont toutes asynchrones. La raison pour laquelle ChartGet fonctionne plus rapidement que ChartXY n'est pas très claire ?
Elles sont aussi terriblement lentes, c'est juste que le but de mon algorithme "rapide" est de calculer une opportunité de ne pas appeler les fonctions graphiques et de s'en passer. Et dès que vous "saisissez" le graphique dans mon exemple et commencez à le déplacer de gauche à droite, toute la vitesse est perdue car les fonctions du graphique commencent à être appliquées en raison de l'occurrence d'un événement.
Bonjour, j'ai commencé à étudier MQL5 à partir dehttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai reçu l'erreur 4756. L'erreur ne s'est pas améliorée après avoir consulté la documentation. Ok, je pense que je vais commencer par des fonctions simples (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, l'ai exécuté, il a bien fonctionné. Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
voidOnTick(){
//--- объявление и инициализация запроса и результатаMqlTradeRequest request={0};
MqlTradeResult result={0};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.1; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера//--- отправка запросаif(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибкиAlert(GetLastError());
//--- информация об операцииPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
et celui-ci.
uint SendRandomPendingOrder(longconst magic_number)
{
//--- готовим запрос MqlTradeRequest request={0};
request.action=TRADE_ACTION_PENDING; // установка отложенного ордера
request.magic=magic_number; // ORDER_MAGIC
request.symbol=_Symbol; // инструмент
request.volume=0.1; // объем в 0.1 лот
request.sl=0; // Stop Loss не указан
request.tp=0; // Take Profit не указан //--- сформируем тип ордера
request.type=GetRandomType(); // тип ордера //---сформируем цену для отложенного ордера
request.price=GetRandomPrice(request.type); // цена для открытия //--- отправим торговый приказ MqlTradeResult result={0};
OrderSend(request,result);
//--- выведем в лог ответ сервера Print(__FUNCTION__,":",result.comment);
if(result.retcode==10016) Print(result.bid,result.ask,result.price);
//--- вернем код ответа торгового сервера return result.retcode;
}
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Veuillez pointer du doigt et expliquer.
Bonjour ! J'ai commencé à étudier le MQL5 à partir dehttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai reçu l'erreur 4756. J'ai donc pensé commencer par le plus simple (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, lancé, tout va bien, ça a marché. Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
et celui-ci.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Veuillez pointer du doigt et expliquer
Utilisez la classe de transaction CTrade - de cette façon, vous êtes assuré de faire le moins d'erreurs possible.
Exemple d'envoi d'un ordre de transaction pour ouvrir un achat :
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
Dans le testeur MT5, l'objet OBJ_EDIT "Input field" ne permet pas d'éditer une valeur dans celui-ci. Est-ce conçu de cette façon ou est-ce un bug ?
Dans les terminaux et dans le testeur MT4, il est éditable, mais dans le testeur MT5, il ne l'est pas, la valeur saisie par programme lors de la création de l'objet disparaît.
Bonjour, j'ai commencé à étudier MQL5 depuishttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai obtenu l'erreur 4756. J'ai regardé dans la documentation et ce n'était pas mieux. Je pensais commencer par quelque chose de simple (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, l'ai exécuté, il a bien fonctionné. Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
et celui-ci.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Montrez-nous du doigt et expliquez-nous, s'il vous plaît.
Un champ de la structure n'est pas rempli. Et ce n'est pas suffisant, mais ce n'est pas une telle erreur.
Exécution instantanée
Un ordre de transaction pour ouvrir une position en mode d'exécution instantanée (le mode de négociation à des prix en continu). 9 champs sont obligatoires :
action
symbole
volume
prix
sl
tp
déviation
type
type_filling
Vous pouvez également spécifier des champs de magie et de commentaires.
Exécution du marché
Un ordre de transaction pour ouvrir une position dans le mode d'exécution du marché. Il faut spécifier 5 champs :
action
symbole
volume
type
type_filling
Vous pouvez également spécifier des champs de magie et de commentaires.
Vous avez perçu la différence entre une commande synchrone et une commande asynchrone.
Pourriez-vous fournir une liste des fonctions asynchrones.
Si je comprends bien, les fonctions Object et Chart (quelles autres ?) sont toutes asynchrones. La raison pour laquelle ChartGet fonctionne plus rapidement que ChartXY n'est pas très claire ?
CHARTEVENT_CHART_CHANGEBonjour, j'ai commencé à étudier MQL5 à partir dehttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai reçu l'erreur 4756. L'erreur ne s'est pas améliorée après avoir consulté la documentation. Ok, je pense que je vais commencer par des fonctions simples (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, l'ai exécuté, il a bien fonctionné.
Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
et celui-ci.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Veuillez pointer du doigt et expliquer.
Bonjour ! J'ai commencé à étudier le MQL5 à partir dehttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai reçu l'erreur 4756. J'ai donc pensé commencer par le plus simple (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, lancé, tout va bien, ça a marché.
Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
et celui-ci.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Veuillez pointer du doigt et expliquer
Utilisez la classe de transaction CTrade - de cette façon, vous êtes assuré de faire le moins d'erreurs possible.
Exemple d'envoi d'un ordre de transaction pour ouvrir un achat :
Utilisez la classe de commerce CTrade pour vous assurer que vous faites le moins d'erreurs possible.
Exemple d'envoi d'un ordre de transaction pour ouvrir un Achat :
CTrade - s'agit-il d'une classe universelle ? C'est-à-dire qu'il peut remplacer tout autre code ?
CTrade - s'agit-il d'une classe universelle ? Est-il possible de remplacer un autre code par celui-ci ?
CTrade est fourni avec le terminal dans labibliothèque standard->Trade Classes->CTrade.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Veuillez pointer du doigt et expliquer
https://www.mql5.com/ru/search#!keyword=Unsupported%20filling%20mode
Un exemple de kodobase
Il existe plusieurs façons d'introduire du code dans ME
Dans le testeur MT5, l'objet OBJ_EDIT "Input field" ne permet pas d'éditer une valeur dans celui-ci. Est-ce conçu de cette façon ou est-ce un bug ?
Dans les terminaux et dans le testeur MT4, il est éditable, mais dans le testeur MT5, il ne l'est pas, la valeur saisie par programme lors de la création de l'objet disparaît.
Bonjour, j'ai commencé à étudier MQL5 depuishttps://www.mql5.com/ru/articles/100. J'ai lancé le code et j'ai obtenu l'erreur 4756. J'ai regardé dans la documentation et ce n'était pas mieux. Je pensais commencer par quelque chose de simple (Alerte/Imprimer...). L'une des fonctions les plus importantes est OrderSend. J'ai commencé à chercher dans le forum/documentation sur la façon d'utiliser OrderSend. J'ai trouvé cet articlehttps://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions et j' ai trouvé le code pour ouvrir une position d'achat. J'ai obtenu l'erreur 4756 et le retcode 10030. J'ai compris que 10030 - c'est la propriété OrderSend, mais je n'ai pas compris comment cette propriété doit être utilisée (j'ai regardé le code de quelqu'un d'autre) et à quoi elle sert principalement. Puis j'ai ouverthttps://www.mql5.com/ru/docs/trading/ordersend, copié le code, l'ai exécuté, il a bien fonctionné.
Mais je ne comprends toujours pas pourquoi l'erreur 4756 apparaît et comment s'en débarrasser, ainsi que de la 10030.
J'ai regardé le code entre
et celui-ci.
Ils me semblent presque identiques, je ne vois pas où ces erreurs apparaissent (4756 et 10030). Montrez-nous du doigt et expliquez-nous, s'il vous plaît.
Exécution instantanée
Un ordre de transaction pour ouvrir une position en mode d'exécution instantanée (le mode de négociation à des prix en continu). 9 champs sont obligatoires :
Vous pouvez également spécifier des champs de magie et de commentaires.
Exécution du marché
Un ordre de transaction pour ouvrir une position dans le mode d'exécution du marché. Il faut spécifier 5 champs :
Vous pouvez également spécifier des champs de magie et de commentaires.