Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 99

 
fxsaber:

Es besteht die Notwendigkeit, die Daten ohne Änderung zu übertragen - entweder für die Geschwindigkeit oder für das Objekt.

Wenn keine Notwendigkeit besteht, sie zur Änderung weiterzugeben, können Sie alles, was ich geschrieben habe, einfach ignorieren).

Haben Sie ein reales Beispiel in MQL5, bei dem dieses Problem auftritt?

Es fehlt ein echtes Beispiel für Bequemlichkeit.

Ich habe alles detailliert beschrieben, sowohl in Worten als auch in Code. Wenn es Ihnen aus irgendeinem Grund unverständlich erscheint, dann haben Sie offensichtlich nicht die beschriebenen Probleme, und dazu gratuliere ich Ihnen. Gute Nacht, lieber Freund.)

Mein Beitrag war wohl eher für Hardcore-Templer und Liebhaber der Typkontrolle gedacht.

 
Alexey Navoykov:

Oft ist es notwendig, eine Variable als Template-Argument per Referenz zu übergeben, um sie zu modifizieren. Die bestehende C++ Template-Spezifikation erlaubt es jedoch leider nicht, die Nichtkonstanz des Arguments explizit anzugeben, wie es in normalen Funktionen geschieht:

Erstens hat C++ einfach viel umfangreichere Template-Funktionen, und zweitens hat C++ SFINAE, mit dem man so viel Mist bauen kann, dass einem die Haare zu Berge stehen.

So könnte es aussehen:

template<class T>
    static void const_check(T & t){
        BOOST_STATIC_ASSERT(! boost::is_const<T>::value);
    }
Es ist dasselbe wie bei einem Zeiger: Sie können nicht direkt angeben, dass der gewünschte Typ kein Zeiger sein soll, aber Sie können es durch nicht kompilierte Spezialisierung tun.
 
TheXpert:

Dies könnte folgendermaßen aussehen

Soweit ich das verstanden habe, führt dies zu einem Kompilierungsfehler im Funktionskörper (der trotzdem aufgerufen werden kann), aber die Vorlagenauswahl ist davon nicht betroffen. Man muss mit dem Typ des Rückgabewerts der Funktion hantieren. Aber egal. Aber all dies wird dort nicht nur durch Vorlagen, sondern auch durch den Decltype-Spezifizierer implementiert, der in MQL fehlt und dennoch benötigt wird.

 
Alexey Navoykov:

Mein Beitrag richtete sich wahrscheinlich eher an Hardcore-Templer und nerdige Kontroll-Liebhaber.

Ich dachte, dass ich, nachdem ich TypeToBytes geschrieben habe, kompetenter in Sachen Vorlagen geworden bin.

 
fxsaber:

Ich dachte, dass ich nach dem Schreiben von TypeToBytes kompetenter im Umgang mit Vorlagen geworden bin.

Mir ist jetzt klar, dass der Ausdruck "Hardcore-Musterer" in Bezug auf MQL ironisch klingt. Es ist wie ein "zertifizierter MQL-Programmierer". ))

Das Problem ist, dass es nichts besonders schwierig ist, in Vorlagen zu tun, und nicht nur wegen des Mangels an zusätzlichen Funktionen der Sprache, sondern auch wegen der fehlerhaften Bedienung der bestehenden. Ständig treten Bugs auf.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

Slawa, 2018.09.19 06:37

Um ein Objekt unabhängig von der Reihenfolge über allen anderen zu platzieren, müssen Sie es zunächst auf allen Zeitskalen unsichtbar machen und dann wieder sichtbar machen
 

Guten Tag!

Die Dokumentation besagt ausdrücklich, dass während der Ausführung desOnTick-Handlers https://www.mql5.com/ru/docs/runtime/event_fire#newtick

ist inaktiv und es werden keine neuen Ticks verarbeitet. Gilt das auch fürOnBookEvent, OnTimer, OnChartEventHandler oder nicht.

Die Frage wird durch die Tatsache verursacht, dass ich in allen oben genannten Handlern meine eigene Tick-Behandlung verwende.

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Andrej Kotrin:

Guten Tag!

Die Dokumentation besagt ausdrücklich, dass während der Ausführung desOnTick-Handlers https://www.mql5.com/ru/docs/runtime/event_fire#newtick

Gilt das auch für OnBookEvent, OnTimer, OnChartEvent Handler oder nicht.

Die Frage ergibt sich aus der Tatsache, dass alle oben genannten Handler ihre eigene Zeckenbehandlung verwenden.

Nicht korrekt.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: HistoryTicks

fxsaber, 2018.04.10 17:53

Combat EA auf einem hochfrequenten Symbol (200-350 Ticks pro Minute) mit häufigen Handelsaufträgen (mehrmals pro Minute) und einem Ping von 100 ms im Standardmodus verliert ~5% der Ticks.

Im Modus HistoryTicks keine Verluste.


Sie können OnTick mit mehreren Währungen in MT5 verwenden.

 
fxsaber:

Definitiv nicht korrekt.


ZZY Sie können Multicurrency OnTick sicher unter MT5Z verwenden

Vielen Dank für den Link! Das Problem liegt nicht im Verlust von Ticks, sondern in der möglichen teilweisen Aktualisierung von Informationen bei der Verarbeitung des aktuellen Ticks. Ich habe ein ähnliches Problem bei der Kommunikation zwischen Robotern gelöst, die gleichzeitig handeln

Da sich mein Roboter an einem echten Server orientiert undkeineexternen Dlls und somit Mutexverwendet ,habe ich die GlobalVariableSetOnCondition-Emulation verwendet.

 
Andrej Kotrin:

Vielen Dank für den Link! Das Problem liegt nicht im Verlust von Ticks, sondern in der möglichen teilweisen Aktualisierung von Informationen bei der Verarbeitung des aktuellen Ticks. Ich hatte ein ähnliches Problem bei der Organisation der Kommunikation zwischen Robotern, die gleichzeitig handeln

Da mein Roboter auf einen Hosting-Service mitDrittanbieter-Dllsausgerichtet ist und daher Mutexunmöglich ist, habe ich GlobalVariableSetOnCondition-Emulation verwendet.

Vielleicht können Sie Ressourcen zur Datenübertragung verwenden.