Fehler, Irrtümer, Fragen - Seite 1820

 
Maksym Mudrakov:

input string Somevalue = "Maxim";
...
void OnTick(){
   Comment(Somevalue);
}


Das MQL5-Programm druckt den Kommentar aus:

"1487811600"

Wie kommt es dazu? Wie wird der richtige String-Wert ausgegeben?

Suchen Sie nach einem Fehler. Oder stellen Sie einen vollständigen, reproduzierbaren Code ein. Code prüfen

//+------------------------------------------------------------------+
//|                                                        Test.mql5 |
//|                                      Copyright 2017, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input string Somevalue="Maxim";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Comment(Somevalue);
  }
//+------------------------------------------------------------------+


kann der Fehler nicht reproduziert werden.

Ich empfehle Ihnen auch, Kommentar durch Drucken zu ersetzen - es besteht die Möglichkeit, dass ein anderes Programm den Kommentar auf dem Diagramm trivialisiert.

Dateien:
test.mq5  2 kb
 
den EA auf einem anderen Chart neu gestartet, hat er korrekt funktioniert. Das ist seltsam. Aber danke für die Hilfe.
 
Maksym Mudrakov:
den EA auf einem anderen Chart neu gestartet, hat er korrekt funktioniert. Das ist seltsam. Aber danke für die Hilfe.
Insbesondere haben Sie eine variable Eingabe - eine Variable dieses Typs kann im Code nicht neu zugewiesen werden - dies lässt die Möglichkeit eines zweiten Programms (EA oder Indikator), das heimlich herumpfuscht und seinen Kommentar ausgibt.
 
fxsaber:

Wer die Antwort versteht, bitte erklären. Ich verstehe immer noch nicht, warum OrderSend als normal angesehen wird.

Soweit ich weiß, wartet OrderSend nur, bis der Auftrag auf dem Server in die Warteschlange gestellt wird, aber nicht auf das Ergebnis der Verarbeitung.
 
DieTestagenten fallen während der Optimierung immer wieder aus. Der lokale Agent kann keine Verbindung zu 127.0.0.1:3000 herstellen und bricht den Test ab.
 
Комбинатор:
Soweit ich weiß, wartet OrderSend nur, bis der Auftrag auf dem Server in die Warteschlange gestellt wird, aber nicht auf das Ergebnis der Verarbeitung.
Dies ist der Punkt, an dem es unklar ist.
 
OrderSend gibt true zurück, und im Protokoll erscheint die folgende Zeile
2017.02.23 14:18:58.013 Trades  '5245006': failed buy limit 0.01 USDCNH at 6.85199 [Request rejected due to absence of network connection]
 

Es gibt ein OrderSend-Fehler reproduzierendes Skript in der Anwendung. Es durchläuft den Market Watch und öffnet BuyLimit bei jedem Symbol. Danach versucht er sofort, sie zu ändern (setzt TP) und dann zu löschen. Wenn eine Änderung oder Löschung des Auftrags nicht möglich ist, bricht das Skript mit einer entsprechenden Meldung ab.

Alles wird über synchrones OrderSend abgewickelt. Und fast sofort stoßen wir auf eine Situation, in der nach einem erfolgreichen OrderSend (Setzen des BuyLimit) nichts mit dem schwebenden Auftrag gemacht werden kann (ändern oder löschen).

Betriebsergebnis

2017.02.23 14:24:49.828 OrderSend-StartedBug (Si-3.17,M1)       ModifyError GetLastError() = 4756 EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE)) = ORDER_STATE_STARTED
2017.02.23 14:24:49.828 OrderSend-StartedBug (Si-3.17,M1)       DeleteError GetLastError() = 4756 EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE)) = ORDER_STATE_STARTED

Liebe Entwickler, ist dies ein Fehler in OrderSend oder nicht?


SZZ wird OrderSend bei TRADE_ACTION_DEAL jedoch nicht abgebrochen, solange der entsprechende Auftrag den Status STARTED hat.

Der ganze Spaß des Skripts kann langsam auf dem FXOpen-MT5 Server erlebt werden.

Dateien:
 
fxsaber:

wenn einePosition erfolgreich durch einen Marktauftrageröffnet wird, jedes Mal ein Null-Ergebnis erzielt wird?

Vom SD
Es ist nicht garantiert, dass das Result-Deal-Ticket besetzt wird. Ob sie gefüllt ist oder nicht, hängt vom Ausführungsmodus des Instruments und den Einstellungen des jeweiligen Servers ab.
Wer ein Nicht-Null-Ergebnis eingestellt hat, muss handeln.
 
OpenCL not found. Error code=5101
Error in OpenCL initialization. Error code=5101
Die integrierte Grafikkarte der CPU unterstützt kein OpenCL? Es ist auch nicht so, dass die GPU für OpenCL erforderlich wäre.