Questions des débutants MQL5 MT5 MetaTrader 5 - page 937

 

Bonne journée !

J'ouvre une position et je veux imprimer le contenu de MqlTradeResult comme ceci :


   //--- declare and initialize the trade request and result of trade request
        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        //--- parameters of request
        request.action   = TRADE_ACTION_DEAL;    // type of trade operation
        request.symbol   = Pair1;                // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;            // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
        if(OrderSend(request,result))       
        Print ("result.retcode = " + result.retcode + "; ");        
        Print ("deal = " + result.deal + "; ");
        Print ("order = " + result.order + "; "); 
        Print ("volume = " + result.volume + "; ");  
        Print ("price = " + result.price + "; ");

result.retcode, l'ordre et le volume sont imprimés, mais deal et price sont toujours des zéros.
Pouvez-vous me dire ce que je fais de mal ?

 
Algotrader18:

Salut !

J'ouvre une position et je veux imprimer le contenu de MqlTradeResult comme ceci :


result.retcode, l'ordre et le volume sont imprimés, mais deal et price sont toujours des zéros.
S'il vous plaît, qu'est-ce que je fais mal ?

ArticlePar où commencer pour créer un robot de trading pour la bourse de Moscou MOEX. Un exemple d'écouteur "TradeTransactionListener" :

Le trading à l'aide de robots est simple

Le langage MQL5 prend initialement en charge toutes les fonctions de trading de la plateforme MetaTrader 5, offrant un grand nombrede fonctions de trading pour travailler avec les ordres, les positions et les demandes de transaction. Peu importe le marché que vous négociez - contrats à terme, actions, options, etc.

À l'aide des outils MQL5, vous pouvez créerune demande de transaction et l'envoyer au serveur à l'aide des fonctionsOrderSend() ouOrderSendAsync(), obtenir lerésultat de son exécution, consulter l'historique des transactions, trouverles spécifications du contrat pour un instrument, traiter l'événement de transaction et obtenir de nombreuses autres informations nécessaires.

Il est important que les développeurs de robots de trading comprennent un fait essentiel : chaque opération de trading, qu'il s'agisse de l'ouverture d'une position, du réglage du StopLoss ou du TakeProfit, ou de la fermeture d'une position avec une contre-opération, consiste toujours en un certain nombre de transactions effectuées sur le serveur MetaTrader 5 et sur la Bourse de Moscou. Pour voir comment cela se passe, vous pouvez exécuter le conseiller expertTradeTransactionListener.mql5 sur votre compte qui écoute simplement les événementsTradeTransaction et en affiche un résumé :

//+------------------------------------------------------------------+
//|                                     TradeTransactionListener.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+


 
Quelqu'un a-t-il rencontré un problème, ne peut pas se connecter à mt5, problème - certificat invalide ?
 
Impulsive87:
Quelqu'un a-t-il rencontré un problème, ne peut pas se connecter à mt5, problème - certificat invalide ?
Windows est-il réel (pas un émulateur par hasard) ? Vous connectez-vous au courtier qui a émis le certificat ou à une société de courtage ordinaire ?
 

Quelles sont les conditions pour que le test se poursuive avec le même cache dans le \Tester\cache, pour ne pas créer une nouvelle table d'optimisation, mais pour être mis à jour ?

1 un fichier EA compilé inchangé ex5

2 conditions de test ne changeraient pas (sauf l'équilibre ou l'équilibre + la rentabilité).

3 ?

 
Impulsive87:
Je ne peux pas me connecter à mt5, le problème est un certificat invalide ?
J'ai rencontré ce problème il y a longtemps, vérifiez dans le magasin de certificats et dans le dossier du programme si le certificat est correct.
 
Vladimir Karputov:

ArticlePar où commencer pour créer un robot de trading pour la bourse de Moscou MOEX. Exemple d'un écouteur TradeTransactionListener :

Merci, mais ce n'est pas tout à fait la même chose - cela fonctionne avec l'historique, j'ai besoin de récupérer les données de MqlTradeResult immédiatement après l'ouverture de la position. C'est étrange - il sort certains paramètres mais pas d'autres, c'est-à-dire que je fais quelque chose de mal. Je voudrais aller au fond des choses dans cette situation particulière...
 
Algotrader18:

Bonjour !

J'ouvre une position et je veux imprimer le contenu de MqlTradeResult comme ceci :


result.retcode, l'ordre et le volume sont imprimés, mais deal et price sont toujours des zéros.
Pouvez-vous me dire ce que je fais de mal ?

Essayez d'appeler avant d'imprimer

//+------------------------------------------------------------------+
//| Get the result structure                                         |
//+------------------------------------------------------------------+
void CTrade::Result(MqlTradeResult &result) const
  {
   result.retcode   =m_result.retcode;
   result.deal      =m_result.deal;
   result.order     =m_result.order;
   result.volume    =m_result.volume;
   result.price     =m_result.price;
   result.bid       =m_result.bid;
   result.ask       =m_result.ask;
   result.comment   =m_result.comment;
   result.request_id=m_result.request_id;
   result.retcode_external=m_result.retcode_external;
  }
de la classe CTrade
 
Alexey Viktorov:

Essayez d'appeler

de la classe CTrade
Merci, j'aimerais le faire sans CTrade.
 
Algotrader18:
Merci, j'aimerais le faire sans CTrade.

Il faut donc extraire la fonctionnalité requise de la classe et l'écrire pour soi-même.