Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 937

 

Hallo!

Ich eröffne eine Position und möchte den Inhalt von MqlTradeResult wie folgt drucken:


   //--- 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, Order und Volumen werden gedruckt, aber Deal und Preis sind immer Nullen.
Können Sie mir bitte sagen, was ich falsch mache?

 
Algotrader18:

Hallo!

Ich eröffne eine Position und möchte den Inhalt von MqlTradeResult wie folgt drucken:


result.retcode, Order und Volumen werden gedruckt, aber Deal und Preis sind immer Nullen.
Bitte, was mache ich falsch?

ArtikelWo soll man anfangen, wenn man einen Handelsroboter für die Moskauer Börse MOEX erstellt? Ein Beispiel für einen "TradeTransactionListener"-Listener:

Der Handel mit Robotern ist einfach

Die Sprache MQL5 unterstützt alle Handelsfunktionen der MetaTrader 5-Plattform, einschließlich einer großen Anzahl vonHandelsfunktionen für die Arbeit mit Aufträgen, Positionen und Handelsanfragen. Es spielt keine Rolle, auf welchem Markt Sie handeln - Futures, Aktien, Optionen usw.

Mit den MQL5-Tools können Sieeine Handelsanfrage erstellen und mit den FunktionenOrderSend() oderOrderSendAsync() an den Server senden,das Ergebnis der Ausführung abrufen, die Handelshistorie einsehen,die Kontraktspezifikation für ein Instrument herausfinden,das Handelsereignis verarbeiten und viele andere notwendige Informationen abrufen.

Für die Entwickler von Handelsrobotern ist es wichtig, eine wesentliche Tatsache zu verstehen: Jede Handelsoperation, sei es das Eröffnen einer Position, das Setzen von StopLoss oder TakeProfit oder das Schließen einer Position mit einem Gegengeschäft, besteht immer aus einer Reihe von Transaktionen, die auf dem MetaTrader 5-Server und an der Moskauer Börse durchgeführt werden. Um zu sehen, wie dies geschieht, können Sie den Expert AdvisorTradeTransactionListener.mql5 auf Ihrem Konto ausführen, der einfach aufTradeTransaction-Ereignisse wartet und eine Zusammenfassung dieser Ereignisse anzeigt:

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


 
Ist jemand auf das Problem gestoßen, dass er sich nicht in mt5 einloggen kann, Problem - ungültiges Zertifikat?
 
Impulsive87:
Ist jemand auf das Problem gestoßen, dass er sich nicht in mt5 einloggen kann, Problem - ungültiges Zertifikat?
Ist Windows echt (nicht zufällig ein Emulator)? Wenden Sie sich an den Makler, der das Zertifikat ausgestellt hat, oder an ein reguläres Maklerunternehmen?
 

Welche Bedingungen müssen erfüllt sein, damit die Tests mit demselben Cache im Testercache fortgesetzt werden können, ohne dass eine neue Optimierungstabelle erstellt wird, sondern um aktualisiert zu werden?

1 eine unveränderte kompilierte EA-Datei ex5

2 Testbedingungen würden sich nicht ändern (außer Saldo oder Saldo + Rentabilität).

3 ?

 
Impulsive87:
Ich kann mich nicht bei mt5 anmelden, das Problem ist ein ungültiges Zertifikat?
Ich hatte dieses Problem schon vor längerer Zeit. Überprüfen Sie im Zertifikatspeicher und im Programmordner, ob das richtige Zertifikat vorhanden ist.
 
Vladimir Karputov:

ArtikelWo soll man anfangen, wenn man einen Handelsroboter für die Moskauer Börse MOEX erstellt? Beispiel für einen TradeTransactionListener-Listener:

Danke, aber es ist nicht ganz dasselbe - es funktioniert mit der Historie, ich muss Daten von MqlTradeResult sofort nach der Positionseröffnung erhalten. Es ist seltsam - einige Parameter werden ausgegeben, andere nicht, d. h. ich mache etwas falsch. Ich würde dieser besonderen Situation gerne auf den Grund gehen...
 
Algotrader18:

Hallo!

Ich eröffne eine Position und möchte den Inhalt von MqlTradeResult wie folgt drucken:


result.retcode, Order und Volumen werden gedruckt, aber Deal und Preis sind immer Nullen.
Können Sie mir bitte sagen, was ich falsch mache?

Versuchen Sie, vor dem Drucken anzurufen

//+------------------------------------------------------------------+
//| 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;
  }
von der Klasse CTrade
 
Alexey Viktorov:

Versuchen Sie anzurufen

von der Klasse CTrade
Danke, ich würde es gerne ohne CTrade machen.
 
Algotrader18:
Danke, ich würde es gerne ohne CTrade machen.

Ziehen Sie also die benötigte Funktionalität aus der Klasse und schreiben Sie sie selbst.