Ich will MqlTradeResult auswerten, und das gibt immer 0 zurück
Schau in die Doc: https://www.mql5.com/de/docs/trading/ordersend
//| Platziere eine Pending Order auf zufällige Weise |//+------------------------------------------------------------------+uint SendRandomPendingOrder(longconst magic_number)
{
//--- bereite eine Anfrage vorMqlTradeRequest request={0};
request.action=TRADE_ACTION_PENDING; // Platzieren einer Pending Order
request.magic=magic_number; // ORDER_MAGIC
request.symbol=_Symbol; // Instrument
request.volume=0.1; // Volumen von 0.1 Lot
request.sl=0; // Stop Loss nicht angegeben
request.tp=0; // Take Profit nicht angegeben //--- bilde den Ordertyp
request.type=GetRandomType(); // Ordertyp//--- bilde den Preis für die Pending Order
request.price=GetRandomPrice(request.type); // Eroeffnungspreis //--- sende eine HandelsanfrageMqlTradeResult result={0};
OrderSend(request,result);
//--- die Antwort des Servers im Journal ausgeben Print(__FUNCTION__,":",result.comment);
if(result.retcode==10016) Print(result.bid,result.ask,result.price);
//--- den Antwort-Code des Handelsservers zurückgebenreturn result.retcode;
}
Vor dem return result.retcode kannst Du alle Werte auslesen zB. result.deal /*dealnummer*/ oder result.order /*ticketnummer*/
[in,out] Pointer auf eine Struktur vom Typ MqlTradeResult, die das Ergebnis einer Handelsoperation beschreibt, wenn diese erfolgreich durchgeführt wurde (wenn true zurückgegeben wurde). Eine Handelsanfrage durchläuft mehrere Stufen der Prüfungen auf dem Handelsserver. Zunächst wird überprüft, ob alle benötigten Felder des Parameters korrekt...
Da würde ich doch entscheiden dass CTrade vielleicht ganz nett ist, aber wenn gleich zB. die Ticketnummer brauche vielleicht ungeeignet ist?
Mann kann ja mit viel weniger Aufwand an (OOP-) Code gleich direkt mit den Strukturen m_request und m_result arbeiten. Nur weil es OOP ist, heißt das ja nicht, das es überlegen ist.
Oder man leitet ein neue Klasse ab und schreibt eine Methode, die die Ticketnummer zurückgibt. Das ist ja ein Vorteil von OOP.
Ich denke Amando muss sich auch mit den anderen Klassen befassen die es noch dazu gibt.
COrderInfo
CPositionInfo
CDealInfo
Um an die gewünschten Infos zu kommen. Habe mich selber noch nie so tief mit CTrade und Konsorten beschäftigt aber CTrade ist eigentlich nur
dazu da die "Order" an den Server zu bringen.
Für Infos stehen die anderen Klassen zur Verfügung. Wie der Name ja selbsterklärt.
MQ hat ja noch viele Baustellen auch in den Klassen wie gerade beschrieben.
Artyom Trishkin benutzt dieses sehr viel in seinen Artikeln
Und diese sind sehr gut lesbar ....Dank an ihn hier noch mal !!
Irgendwie schwimmst Du auf einem falschen Dampfer:
Irgendwie schwimmst Du auf einem falschen Dampfer:
Ich will MqlTradeResult auswerten, und das gibt immer 0 zurück
Ich will MqlTradeResult auswerten, und das gibt immer 0 zurück
Mache bitte ein kleines Skript um dem Fehler zu demonstrieren.
Dann helfe ich.
Ich will MqlTradeResult auswerten, und das gibt immer 0 zurück
Schau in die Doc: https://www.mql5.com/de/docs/trading/ordersend
Vor dem return result.retcode kannst Du alle Werte auslesen zB. result.deal /*dealnummer*/ oder result.order /*ticketnummer*/
Schau in die Doc: https://www.mql5.com/de/docs/trading/ordersend
Vor dem return result.retcode kannst Du alle Werte auslesen zB. result.deal /*dealnummer*/ oder result.order /*ticketnummer*/
Carl er arbeitet mit CTrade, dann musst du auch dabei bleiben.
Carl er arbeitet mit CTrade, dann musst du auch dabei bleiben.
Arbeitet CTrade denn nicht mit OderSend() - gäbe es denn dazu eine Alternative?
Das was er braucht und sucht müsste also gleich bleiben?
Arbeitet CTrade denn nicht mit OderSend() - gäbe es denn dazu eine Alternative?
Das was er braucht und sucht müsste also gleich bleiben?
Doch schon nur man kommt mit der Funktion Ordersend() nicht mehr in Berührung.
Da alles mit OOP gekapselt ist.
Und das bool von OrderSend ist mit
ja abgefragt.Siehe:
_Trade ist das CTrade Objekt und BuyStop ist eine Methode von CTrade
Schau in die trade.mqh
Desweiteren sind die Strukturen:
alle protected. Das heißt mit denen kommt man auch nicht in Berührung.
Einzig die Methoden und Member die public sind können benutzt werden. Siehe trade.mqh
Das ist ja das Konzept von OOP
Interessant sind denke ich die Methoden:
Amando ist schon richtig.
Hier wäre aber ein Skript von ihm enorm hilfreich ......
Mögliche Methoden die public sind:
Da würde ich doch entscheiden dass CTrade vielleicht ganz nett ist, aber wenn gleich zB. die Ticketnummer brauche vielleicht ungeeignet ist?
Mann kann ja mit viel weniger Aufwand an (OOP-) Code gleich direkt mit den Strukturen m_request und m_result arbeiten. Nur weil es OOP ist, heißt das ja nicht, das es überlegen ist.
Oder man leitet ein neue Klasse ab und schreibt eine Methode, die die Ticketnummer zurückgibt. Das ist ja ein Vorteil von OOP.
Ich denke Amando muss sich auch mit den anderen Klassen befassen die es noch dazu gibt.
Um an die gewünschten Infos zu kommen. Habe mich selber noch nie so tief mit CTrade und Konsorten beschäftigt aber CTrade ist eigentlich nur dazu da die "Order" an den Server zu bringen.
Für Infos stehen die anderen Klassen zur Verfügung. Wie der Name ja selbsterklärt.
MQ hat ja noch viele Baustellen auch in den Klassen wie gerade beschrieben.
Artyom Trishkin benutzt dieses sehr viel in seinen Artikeln
Und diese sind sehr gut lesbar ....Dank an ihn hier noch mal !!
https://www.mql5.com/de/forum/316596
Dort mal den EA näher ansehen wie es genau benutzt wird.