Fehler, Irrtümer, Fragen - Seite 1815

 
Kompilierungsfehler
template<typename T>
class A { public:
    A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
    A<const B> a( new B );
}
 

Hallo, in meinem Demokonto bei Otkritie ist folgendes passiert

passiert folgendes: Wenn ich einen Auftrag erfolgreich ändere und lösche

vom Typ ORDER_FILLING_RETURN(ein regulärer limitierter Auftrag)

das variable Volumen derMqlTradeResult-Struktur entspricht stabil der ursprünglichen Ordergröße (in diesem Fall wurde die Order überhaupt nicht ausgeführt).

Es scheint so zu sein, dass es ein ausgeführtes Volumen (in meinem Fall 0) ausgeben sollte, oder irre ich mich?

 
Sergey Kudryavtsev:

Ich denke, es sollte ein ausgeführtes Volumen ausgeben (in meinem Fall 0), oder liege ich da falsch?

Dies war ursprünglich der Fall

Forum für Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: MT4Orders

fxsaber, 2017.02.10 12:01

Ergebnis des Skripts
OrderSend(NULL,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURUSD
Request.volume = 1.0
Request.price = 1.06356
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_IOC (1)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 57777
Result.volume = 1.0
Result.price = 1.06356
Result.bid = 0.0
Result.ask = 0.0
Result.comment = My Order
Result.request_id = 592
Result.retcode_external = 0
Jetzt ist es einfach zu verstehen, wie man die entsprechenden Handelsaufträge im MT5 richtig formuliert.
 
fxsaber:
Das war von Anfang an so!
Ich danke Ihnen!
 
Eine Suche nach "MqlTradeResult " führt nicht zu einem Link zur Beschreibung in der Hilfe.
 

Während der OrderSend-Ausführung ist es nicht möglich, den Debug-Modus zu verlassen oder den EA/das Skript zu löschen.

Manchmal läuft OrderSend 180 Sekunden lang, mit Request timeout. Sie müssen drei Minuten warten, um im Editor kompilieren zu können, wenn das Skript im Debug-Modus ausgeführt wurde.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2017.02.16 07:55

2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5
2017.02.16 08:53:03.285 MQL5    wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)

Was ist das?

Auf der einzigen Karte ist nichts zu sehen. Jedes Mal, wenn ich das Konto wechsle, wird diese Meldung angezeigt.

Alle Test.ex*-Dateien wurden gelöscht. Die Meldung wird immer wieder angezeigt.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Verrückter Cache von Prüfmitteln

Renat Fatkhullin, 2017.02.21 04:04

Probieren Sie den neuen Freitags-Build von MT5 1545 aus - es wurde etwas verbessert.

Beachten Sie auch, dass wir über 230.000 ständig aktive Konten auf MetaQuotes-Demo MT5 haben, und es ist ein echtes Handelsbacchanal.

Ich denke, dass die Bacchanalien an der Börse noch stärker sind, aber sie sind zu bewältigen.

1545 - es scheint besser zu werden. Aber alles fällt durch die Maschen.

Anfrage/Antwort.

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = EURCAD
Request.volume = 0.01
Request.price = 1.39016
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 134821044
Request.position_by = 0
Result.retcode = 10009
Result.deal = 118450870
Result.order = 134821045
Result.volume = 0.01
Result.price = 1.39016
Result.bid = 1.39016
Result.ask = 1.39043
Result.comment = Request executed 57.225 + 18.108 ms
Result.request_id = 4096
Result.retcode_external = 0

Hervorgehoben - so lange erscheint ein Eintrag in der Bestell- und Transaktionshistorie nach einem erfolgreichen OrderSend. Eine Menge!

Protokoll

NO      0       08:51:22.422    Trades  '5245006': instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
MM      0       08:51:22.480    Trades  '5245006': accepted instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
LH      0       08:51:22.480    Trades  '5245006': deal #118450870 sell 0.01 EURCAD at 1.39016 done (based on order #134821045)
EQ      0       08:51:22.480    Trades  '5245006': order #134821045 sell 0.01 / 0.01 EURCAD at 1.39016 done in 57.165 ms

Und ein weiterer Fall, in dem das gleiche Skript ausgeführt wird.

Anfrage/Antwort

Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURCZK
Request.volume = 0.01
Request.price = 27.043
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = Benchmark_Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134821281
Result.volume = 0.01
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 392.585 + 0.299 ms
Result.request_id = 4457
Result.retcode_external = 0

Protokoll

HP      0       08:51:43.740    Trades  '5245006': buy limit 0.01 EURCZK at 27.04300
RE      0       08:51:44.133    Trades  '5245006': accepted buy limit 0.01 EURCZK at 27.04300
JS      0       08:51:44.133    Trades  '5245006': order #134821281 buy limit 0.01 / 0.01 EURCZK at market done in 392.533 ms

Ping ~54 ms.

 

Es ist nicht möglich, etwas aus dem Alarmfenster zu kopieren.

Bitte fügen Sie dem Alarm-Fenster die Möglichkeit hinzu, mehrere Zeilen auszuwählen, indem Sie mit der rechten Maustaste auf das Menü "Kopieren" und "Zum Journal gehen" klicken - um im Expertenprotokoll die Zeile anzuzeigen, die dem Alarm entspricht.

 

Guten Tag.

Ich bin mit dem (meiner Meinung nach) falschen Verhalten von Objektzeigern konfrontiert worden. Sie ist sowohl für MT5 als auch für MT4 relevant. Bitte klären Sie, ob dies ein Fehler oder eine Funktion ist. Hier ist der Code:

class CBaseObject { };

class CDescObject:public CBaseObject { };

void OnStart()
  {
      CDescObject *obj1 = new CDescObject(), *obj2;
      CBaseObject *baseObj1 = obj1;
      
      obj2 = baseObj1;//Пока не грохнули объект - no problem
      delete(obj1);

      //Если добавить эти строки, ошибки в последней строке не будет
      //if(CheckPointer(baseObj1)==POINTER_INVALID)
         //baseObj1 = NULL;
      
      obj2 = obj1;//Указатели одного типа - no problem
      obj2 = baseObj1;//здесь ошибка "Invalid pointer access"
  }

Ich verstehe, dass Zeiger hier nicht dasselbe sind wie in C, sondern eine reiche interne Welt haben. Dennoch wäre es logischer, wenn der Auftrag in der letzten Zeile friedlich verlaufen würde. In meinem Fall erfolgte die Prüfung auf POINTER_INVALID nach der Zuweisung, so dass ich nicht sofort verstand, warum "Ungültiger Zeigerzugriff" auftritt, obwohl niemand einen Zugriff vornimmt.

P. S.: Nur für den Fall - Metatrader 5 build 1545, Win 7 SP1 x86