Offline-Diagramm kann nicht angezeigt werden - Seite 5

 
qjol:

Der Befehl 33324 dient dazu, Daten zu aktualisieren, nicht einen Tick.


Hallo Raptor,

Ich stimme mit qjol, dass es scheint nicht, was ich suche. Die 33324-Befehle scheinen nur das Offline-Chart-Fenster aufzufordern, Daten zu aktualisieren/aufzufrischen, nicht aber einen Tick auf dem Offline-Chart auszulösen (d.h. den OnStart eines EAs auszulösen). Außerdem ist PeriodConvert ein Skript, nicht ein EA.

Um dies zu umgehen, füge ich eine Endlosschleife innerhalb von OnTimer() hinzu, so dass die Hauptlogik für immer weiterläuft (mit einem kleinen Schlaf). Im Grunde, ändern Sie es zu einem Skript.

Aber ich hoffe immer noch, dass dieses Problem im neuen MT4 gelöst wird.

 
lingwuchung:


Hallo Raptor,

Ich stimme mit qjol, dass es scheint nicht, was ich suche. Die 33324-Befehle scheinen nur das Offline-Chart-Fenster aufzufordern, Daten zu aktualisieren/aufzufrischen, nicht aber einen Tick auf dem Offline-Chart auszulösen (d.h. den OnStart eines EAs auszulösen). Außerdem ist PeriodConvert ein Skript, nicht ein EA.

Um dies zu umgehen, füge ich eine Endlosschleife innerhalb von OnTimer() hinzu, so dass die Hauptlogik für immer weiterläuft (mit einem kleinen Schlaf). Im Grunde, ändern Sie es zu einem Skript.

Aber ich hoffe immer noch, dass dieses Problem mit dem neuen MT4 gelöst wird.

Auf keinen Fall! Der Tester kann nicht funktionieren, wenn ich so vorgehe! Er wird immer auf dem ersten Balken bleiben!

 
lingwuchung:


Hallo Raptor,

Ich stimme mit qjol, dass es scheint nicht, was ich suche. Die 33324-Befehle scheinen nur das Offline-Chart-Fenster aufzufordern, Daten zu aktualisieren/aufzufrischen, nicht aber einen Tick auf dem Offline-Chart auszulösen (d.h. den OnStart eines EAs auszulösen). Außerdem ist PeriodConvert ein Skript, nicht ein EA.

Um dies zu umgehen, füge ich eine Endlosschleife innerhalb von OnTimer() hinzu, so dass die Hauptlogik für immer weiterläuft (mit einem kleinen Schlaf). Im Grunde, ändern Sie es zu einem Skript.

Aber ich hoffe immer noch, dass dieses Problem mit dem neuen MT4 gelöst wird.

OK, ich sehe den Unterschied, was haben Sie vorher getan, um start() zum Laufen zu bringen?
 
RaptorUK:
OK, ich sehe den Unterschied, was haben Sie vorher getan, um start() zum Laufen zu bringen?


Ich habe es korrigiert! Danke an qjol. Er hat die Antwort bereits gegeben und ich habe das erst jetzt bemerkt!

Die Lösung ist einfach. Ersetzen Sie in dem Skript, das den Offline-Chart generiert, einfach wie folgt:

RegisterWindowMessageA("MetaTrader4_Internal_Message") mit RegisterWindowMessageW("MetaTrader4_Internal_Message")

PostMessageA(hwnd, MT4InternalMsg, 2, 1) mit PostMessageW(hwnd, MT4InternalMsg, 2, 1)

 
qjol:

der Befehl 33324 dient zur Aktualisierung von Daten und nicht zur Eingabe eines Häkchens


qjol! Danke, danke! Tatsächlich habe ich gesehen, dass Leute in anderen Foren dieses Problem bis heute nicht gelöst haben. Dieses Forum ist das erste (zumindest für diejenigen, die um Hilfe bitten)! Klasse! Das gibt mir das gute Gefühl, dass ich noch ein fähiger Programmierer bin!!! :)

 
Ich habe es für mich selbst getan und bin froh, es zu teilen.
 
RaptorUK:
Vielleicht sollten Sie sich über die Unterschiede zwischen dem alten mql4 und dem neuen mql4 informieren.


Vielleicht sollten Sie Legacy-Code unterstützen, damit produktive Händler ihre Zeit nicht mit Hobby-Codierern verschwenden müssen.

YL

 

Diskussion beenden.

33324 ist kein Befehl für eingehende Ticks. Es ist ein Befehl zum Aktualisieren des Charts.

Über andere Befehle einfach googeln. Wir betrachten die Verwendung solcher Befehle als einen Hack, aber wir haben die Befehle seit 6 oder 7 Jahren nicht geändert und werden sie auch in Zukunft nicht ändern. (streng geheim)

Es gab einen Fehler mit exotischen Symbolnamen in den Offline-Charts (z.B. ERRUDD, nur ein Scherz)/ Behoben im Build 605


Jetzt über "degrade"

Sie können den Timer in Millisekunden einstellen, nicht nur in Sekunden. Probieren Sie es einfach aus

Versuchen Sie auch EventChartCustom. Sie werden es genießen

 
yellowlion:


Vielleicht sollten Sie Legacy-Code unterstützen, damit produktive Händler ihre Zeit nicht mit Hobby-Codierern verschwenden müssen.

Wie soll ich das machen?
 
stringo:

Diskussion beenden.

33324 ist kein Befehl für eingehende Ticks. Es ist ein Befehl zum Aktualisieren des Charts.

Über andere Befehle einfach googeln. Wir betrachten die Verwendung solcher Befehle als einen Hack, aber wir haben die Befehle seit 6 oder 7 Jahren nicht geändert und werden sie auch in Zukunft nicht ändern. (streng geheim)

Es gab einen Fehler mit exotischen Symbolnamen in den Offline-Charts (z.B. ERRUDD, nur ein Scherz)/ Behoben im Build 605


Jetzt über "degrade"

Sie können den Timer in Millisekunden einstellen, nicht nur in Sekunden. Probieren Sie es einfach aus

Versuchen Sie auch EventChartCustom. Sie werden Spaß haben



Danke für die veröffentlichten Workarounds, nur eine Anmerkung.

Beide setzen voraus, dass Indikatoren und Experten, die an den Offline-Chart angehängt sind, eine andere Methode als OnCalculate, OnTick oder start() verwenden. Das bedeutet, dass sie keine Lösung für vorgefertigte ex4-Indikatoren und -Experten sind.