Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43671
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Stunden
- Thomas75
vor 16 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 658
Gesamt: 658
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By Max2018
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 22.06.21
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard Fehler nach Update in MT5

Hallo,

ich habe in einem EA folgenden Code stehen
Code:
   MqlTradeRequest request={0};
das gesamte CodeFragment lautet
Code:
bool ordersendLive(string symbol, int ordertype, double lot, double sl, double tp, int dev, string comment, int magic, color col)
{
   
   //bool set=false;
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
    
//--- parameters of request
   request.action   =TRADE_ACTION_DEAL;                   // type of trade operation
   request.symbol   =symbol;                              // symbol
   request.volume   =lot;                                 // volume of 0.1 lot
   request.deviation=dev;                                 // allowed deviation from the price
   request.magic    =magic;  
   request.comment  =comment;                             // MagicNumber of the order
   request.sl       =sl;
   request.tp       =tp;
   
   
   if(ordertype==0)
           {
            request.price=SymbolInfoDouble(symbol,SYMBOL_ASK);
            request.type =ORDER_TYPE_BUY;
           }
         else
           {
            request.price=SymbolInfoDouble(symbol,SYMBOL_BID);
            request.type =ORDER_TYPE_SELL;
           }

   bool res = OrderSend(request,result); 
   Print("retcode: ",result.retcode);
   if(result.retcode!=1009){ PrintFormat("OrderSend error %d",GetLastError()); }
  
   return(res);
}
Nach dem neuesten Update von MT5 wird mir nun aber auf den Befehl
Code:
   MqlTradeRequest request={0};
eine Fehlermeldung generiert die da lautet:
"cannot convert 0 to enum ´ENUM_TRADE_REQUEST_ACTION´ "


Was kann man dagegen tun ?
  #2 (permalink)  
Alt 22.06.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

MqlTradeRequest ist ein Struct, dieses kannst du somit nicht einfach auf 0 setzten. Es reicht die Struct zu deklarieren und dann die einzelnen Teile zu definieren.

Code:
   MqlTradeRequest request;
   MqlTradeResult  result;
    
//--- parameters of request
   request.action   =TRADE_ACTION_DEAL;                   // type of trade operation
   request.symbol   =symbol;                              // symbol
   request.volume   =lot;                                 // volume of 0.1 lot
   request.deviation=dev;                                 // allowed deviation from the price
   request.magic    =magic;  
   request.comment  =comment;                             // MagicNumber of the order
   request.sl       =sl;
   request.tp       =tp;
Falls du beim definieren eines echten Enum Feldes einmal so einen Fehler kommen solltest, dann kannst du die entsprechende Enum einfach in Klammern davor setzten. Der Compiler weiß dann, dass es sich um eine Enum handelt.

Beispiel:

Code:
ENUM_ORDER_TYPE OrderType1 = 0;                     // ist Ordertype Buy, könnte aber evtl. jetzt einen Fehler oder eine Warnung rausgeben
ENUM_ORDER_TYPE OrderType2 = (ENUM_ORDER_TYPE) 0;   // Wir keinen Compilerfehler geben
ENUM_ORDER_TYPE OrderType3 = ORDER_TYPE_BUY;        // Beste und lesbarste Variante
Gruß Timo
  #3 (permalink)  
Alt 22.06.21
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

SUPER - Danke
Du hast wirklich ein unglaubliches Fachwissen .... sehr beeindruckend
DANKE
Indikator-Trading likes this.
Thema geschlossen

Lesezeichen

Stichworte
fehler nach update in mt5

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------