Fehler, Irrtümer, Fragen - Seite 2910

 
AlexInRush:

Hallo zusammen!

Könnten Sie mir bitte sagen, wie ich einen Roboter debuggen kann, der mit einem Stapel von Aufträgen auf Forts handelt? Gibt es ein Tool, mit dem man den Pokalverlauf abspielen oder mit echten Daten im Ausführungsemulationsmodus arbeiten kann? Ich kann mir nichts anderes vorstellen, als es auf einem echten Konto mit print und comment zu debuggen, was manchmal nicht billig ist :(

Es gibt eine auf dem Markt. In der kodobase scheint es keine zu geben.

 
Stanislav Korotky:

Es sind einige auf dem Markt. Ich glaube nicht, dass es in der kodobase welche gibt.

Guten Tag, Stanislav.

Ich habe die Beschreibung der OrderBook History Library gelesen. Wenn ich es richtig verstanden habe, kann ich, wenn ich diese Bibliothek an den Roboter anschließe, die regulären Ereignisse des Bechers durch Ereignisse des Emulators ersetzen. Wenn Sie die Strategie im Tester abspielen, wird die Übertragung der Kanalhistorie mit der Tick-Historie des Testers synchronisiert. Dementsprechend wird die Emulation der Ausführung auf der Grundlage der Tick-Historie des Testers erfolgen. Wenn ich es richtig verstanden habe,scheint es das zu sein, wonach ich gesucht habe.Danke, ich werde es ausprobieren!

 
AlexInRush:

Guten Tag, Stanislav.

Ich habe die Beschreibung der OrderBook History Library gelesen. Wenn ich es richtig verstanden habe, kann ich, wenn ich diese Bibliothek an meinen Roboter anschließe, die Ereignisse des Testers durch Ereignisse des Emulators ersetzen. Wenn Sie die Strategie im Tester abspielen, wird die Übertragung der Kanalhistorie mit der Tick-Historie des Testers synchronisiert. Dementsprechend wird die Emulation der Ausführung auf der Grundlage der Tick-Historie des Testers erfolgen. Wenn ich es richtig verstanden habe,scheint es das zu sein, wonach ich gesucht habe.Danke, ich werde es ausprobieren!

Sie können in diesem Forum keine Produkte erwähnen oder diskutieren. Bei Fragen zum Produkt, wenden Sie sich bitte persönlich an mich.

 

Ich habe eine merkwürdige Sache bei der Erstellung einer grafischen Ressource entdeckt! Ein und dieselbe Codevariante, die in MQL5 geschrieben wurde, funktioniert perfekt, und in MQL4 funktioniert sie überhaupt nicht! Alles ist absolut identisch und sieht einfach aus:

    string path="::Images\\AAA.bmp";
    string path1="\\Images\\AAA.bmp";

    if(!ResourceCreate(path,path1))
     {
      Print(__FUNCTION__+", Error="+string(GetLastError()));
      return(false);
     }

Wenn Sie den Indikator auf dem Diagramm in Metatrader 4 installieren, haben wir folglich

Wo liegt das Problem?

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
//| Expert initialization function                                   |                                                                                       ); "Внимание! %s: Попробуем добавить индикатор MACD(%s/%s) на график %s/%s. Получим ошибку 4114"                         subwindow...
 
Nikolay Kositsin:

Ich habe eine merkwürdige Sache bei der Erstellung einer grafischen Ressource entdeckt! Ein und dieselbe Codevariante, die in MQL5 geschrieben wurde, funktioniert perfekt, und in MQL4 funktioniert sie überhaupt nicht! Alles ist absolut identisch und sieht einfach aus:

Wenn Sie den Indikator auf dem Diagramm in Metatrader 4 installieren, haben wir folglich

Wo liegt das Problem?

Ja, es funktioniert nicht in MT4.
Aber es funktioniert sowohl für MT5 als auch für MT4 mit dieser kürzeren Konstruktion:

#resource  "\\Images\\AAA.bmp"
string path="::Images\\AAA.bmp";

uint bmp[], w,h;
ResourceReadImage(path,bmp,w,h);

Dateien:
Morph.mq4  9 kb
iCanvas.mqh  49 kb
Images.zip  731 kb
 
Nikolai Semko:

Ja, es funktioniert nicht in MT4.
Aber es funktioniert sowohl für MT5 als auch für MT4 mit diesem kürzeren Design:


Ich danke Ihnen, aber leider lädt eine solche Konstruktion nur Bilder bei der Kompilierung, während ich sie bei der Arbeit in eine kompilierte Datei laden muss. Die Funktion ResourceCreate() in MQL4 funktioniert also in keiner Weise? Vielleicht haben die Entwickler einfach vergessen, den Code dafür in den vollen Terminkalender aufzunehmen?

Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von MQL4 MT4 MetaTrader 4 Anfängern" verschoben.
 
Nikolay Kositsin:

Danke, aber leider lädt eine solche Konstruktion Bilder nur zur Kompilierzeit, während sie zur Laufzeit in die kompilierte Datei geladen werden sollten. Die Funktion ResourceCreate() in MQL4 funktioniert also in keiner Weise? Vielleicht haben die Entwickler in den Wirren der Ereignisse einfach vergessen, einen Code dafür einzufügen?

Vielleicht.
ResourceReadImage wurde erst kürzlich korrigiert.
 
Es gibt keine Fehlermeldung:
class B {
enum E { function };
        void function() {} //нормально ???
        void g() { function(); }
};

aber so ist es nun einmal:

class A {
public:
        void function() {}
};
class B : public A {
enum E { function };
        void g() { function(); } //Error: ')' - expression expected
};

Was ist der grundlegende Unterschied?

 
Kompilierung mit ternärem Operator fehlgeschlagen
Kompilierfehler mit ternärem Operator ?

interface A{};
class B:public A{};
class C:public A{};
void OnStart(void)
  {
   A* x=(true)? new B : new C; //invalid cast operation
  }


Irgendwelche Vorschläge?
Warum?
Grund der Beschwerde: