Erstellen einer grafischen Benutzeroberfläche für MQLs im grafischen Modus. - Seite 15

 
Vladimir:
Ich interessiere mich für "jeden Tick" für Multicurrency EA. Enthält ein Diagramm Tick-Ereignisse, die von vielen Symbolen stammen? Oder hat "jeder Tick" eine andere Bedeutung als das allgemein akzeptierte Ereignis, das von der Funktion OnTick behandelt wird und in der Hilfe als " nur für Expert Advisors generiert, wenn ein neuer Tick für das Symbol empfangen wird, an dessen Chart der EA angehängt ist" beschrieben wird?

Ja, das ist nicht ganz richtig. Damals wurde eine Endlosschleife verwendet, es gab kein OnTick, sondern eine Startfunktion

int start()
{ 
    while(true)
    {
    // обработка
        Sleep(200);
    }
}
 
Alexey Volchanskiy:

Sie sind wirklich nicht in der Lage, Fragen zu beantworten. Wie die Ratsmitglieder kommunizieren, ist für mich nicht von Interesse. Das war's, ich schließe den Thread, weil er sinnlos ist.

Gehen Sie zu einem Psychiater). Er braucht einen Austauschmechanismus, nach dem er nicht gefragt hat, er ist nicht daran interessiert, wie sie kommunizieren.
Mir wäre es lieber, du würdest über Mädchen reden - sie treffen, weinen, ..... fütterte sie mit Borschtsch.

 
Yuriy Asaulenko:
Das ist Scheiße. Zuerst fragte ich nach der grafischen Benutzeroberfläche - wie funktioniert sie? Er antwortete, dass dies nicht notwendig sei. Jetzt stellt sich heraus, dass er es genauso braucht wie die Expert Advisors. 100 Mal hat er darüber geschrieben.
Werfen Sie einen Blick auf meinen Blog. Wir haben das alles schon unter vier Augen besprochen, und es sieht so aus, als hätten wir alles im Griff.
Wenn Sie normale Antworten wollen, stellen Sie normale Fragen). Lernen Sie, sie zu formulieren.)

Interessiert an dem von Ihnen beschriebenen Austausch unter https://www.mql5.com/ru/blogs/post/671000. Es funktioniert auch bei mir, aber ich glaube nicht, dass der Austausch von Text-Befehlsdateien, der "für die Organisation von recht schnellen Intraday-Systemen" geeignet ist, für Scalper-Zwecke ungeeignet ist. Ein weiteres Zitat aus Ihrem Blog: "In diesem Fall kann die DLL in der Entwurfsphase durch eine Auslagerungsdatei ersetzt werden, um eine virtuelle RAM-Disk zu beschleunigen".

Ich hatte noch keine Probleme mit der Leistung des Dateiaustauschs. Sehr selten, 2-8 Mal pro Jahr, kommt es zu Informationsverfälschungen, wenn eine neue Dateilänge bereits in den Puffer des Betriebssystems eingegeben wurde, ihr Inhalt (eine Zeichenkette von bis zu mehreren Dutzend Bytes) in diesem Puffer aber noch nicht aktualisiert wurde. Ansonsten sehe ich keinen Unterschied zwischen der Dateiübertragung und anderen Lösungen, es wird immer noch RAM für den Austausch benötigt. Die Größe der Austauschdateien ist so bemessen, dass der Plattencontroller die Magnetplatten nicht ansprechen muss. Um diese Häufigkeit weiter zu reduzieren, lösche ich die Signaldateien nicht, sondern leere sie, damit sie einen festen Platz auf der Magnetplatte (Cluster) haben. Bitte sagen Sie mir, auf welcher Grundlage Sie der Meinung sind, dass Filesharing nur für die Entwicklungsphase gut ist?

Und noch eine Frage. Auf jedem der Terminals öffnen Sie mindestens zwei Diagramme, ist das richtig?

Ich denke, dass nur ein EA an ein Diagramm angehängt werden kann und Sie haben "Wir brauchen zwei МТ Expert Advisors: der erste wird Informationen von Ticks in eine CSV-Datei schreiben, die vom System gelesen wird, und der zweite wird Informationen vom System erhalten und für Handelsfunktionen verantwortlich sein".

Взаимодействие МТ со сторонним ПО
Взаимодействие МТ со сторонним ПО
  • 2016.05.08
  • Yuriy Asaulenko
  • www.mql5.com
Еще до начала работы на рынке мною была создана торговая система на Excel с небольшими кусками кода на VBA (Visual Basic for Application). Почему на Excel-VBA? - потому, что система несложная, и проще было на VBA. А возможности Excel позволяют свести программирование к минимуму. По мере развития доля VBA увеличивалась, и постепенно за Excel...
 
Alexey Volchanskiy:

Ja, das ist nicht ganz richtig. Damals wurde eine Endlosschleife verwendet, es gab kein OnTick, sondern eine Startfunktion

Ich glaube, ich verstehe. Aus dem obigen Code geht hervor, dass die Erfassung der letzten Anführungszeichen höchstens fünfmal pro Sekunde erfolgt(Sleep(200)). Ist dies die minimale Zeitspanne für einen Tick in mehreren Währungen, die in Ihrem Code berücksichtigt wird? Wenn sie öfter kommen, lassen Sie sie dann aus? Oder ist dieser Wert (200) jetzt, nach 10 Jahren, anders?
 
Vladimir:
Ich glaube, ich habe es. Der obige Code deutet darauf hin, dass die Erfassung der letzten Kurse nicht öfter als fünfmal pro Sekunde erfolgt(Sleep(200)). Ist dies die minimale Zeitspanne für einen Tick in mehreren Währungen, die in Ihrem Code berücksichtigt wird? Wenn sie öfter kommen, lassen Sie sie dann aus? Oder ist dieser Wert (200) jetzt, nach 10 Jahren, anders?

Jetzt nimmt der Timer in 1-Sekunden-Intervallen Proben und überspringt den Rest. 200 ms sind im Gedächtnis, das ist lange her. Es stellte sich heraus, dass dies oft zu viel ist und während der Tests und der Optimierung die CPU stark belastet.

 
Renat Fatkhullin:

Das werden wir, vor allem wenn wir im September die 32-Bit-Versionen einfrieren und nur noch 64-Bit-Versionen der Plattform unterstützen werden.

Jetzt bereiten wir ein ernsthaftes Upgrade des Compilers vor, indem wir einige Systemfunktionen in MQL5-Programme verschieben, was den Optimierer dramatisch verbessern und den resultierenden Code von MQL5-Programmen beschleunigen wird.

Wir werden die vollständigen Leistungsbenchmarks für den Vergleich mit C++ zusammen mit dem Quellcode veröffentlichen, damit jeder sie selbst überprüfen kann.

Renat, Sie können den Änderungen eine kleine Ergänzung hinzufügen: Setzen Sie die Stileigenschaft WS_CLIPCHILDREN für Diagrammrahmen oder Diagrammfenster. Dies ermöglicht es, beliebige untergeordnete Fenster ohne zusätzliche Manipulationen auf die Diagrammrahmen oder Diagrammfenster zu setzen. Wenn diese Eigenschaft nicht vorhanden ist, zeichnet ein übergeordnetes Fenster (ein Diagrammfenster oder ein Diagrammrahmen) ein untergeordnetes Fenster, das eingestellt werden muss. Und wenn man diesen Stil auf das übergeordnete Fenster setzt, wird alles sehr schön gerendert.

Ich nehme an, dass diese Ergänzung nicht schwer zu bewerkstelligen sein wird. Und in Verbindung mit Callbacks ergeben sich sehr weitreichende Möglichkeiten für die Entwicklung von Add-ons für MT, ohne dass man in dessen "Eingeweide" eindringen muss. )))