Fehler, Irrtümer, Fragen - Seite 2962

 
Roman:

Um es heiß zu machen, verwenden Sie File Mapping mit Event Timing.

Tipp - denken Sie bei reiner MMS an... Es ist mir zufällig in den Sinn gekommen

 
A100:

Tipp - denken Sie bei reiner MMS an... Es ist mir zufällig in den Sinn gekommen

Verpacken Sie die Variable in eine Klasse und rufen Sie den Objektdeskriptor ab.
Irgendeine Möglichkeit, den Deskriptor an den Expert Advisor zu übergeben, erhalten Sie es direkt aus dem Objekt. ))
Ich weiß nicht, ich habe es noch nicht ausprobiert, aber die Idee ist mir auch gekommen. Aber ich bin kein Fan von Klassen, ich würde Mapping verwenden.
Alles ist in der Standard-WinApi verfügbar.

Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
Указатели объектов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Roman:

Sie legen im Indikator eine int-Variable an, initialisieren sie und speichern die Zahl dort.
Definieren Sie im Indikator eine benutzerdefinierte Funktion, die diese Variable zurückgibt.
Definieren Sie die Funktion mit dem Schlüsselwort export.
Importieren Sie diese Funktion in den Expert Advisor aus name_indicator.ex4
Rufen Sie die Funktion bei Bedarf auf.
Ich habe die Geschwindigkeit nicht gemessen.

Diese Regelung scheint nicht zu funktionieren. Zeigen Sie bitte ein einfaches Beispiel.

 
Nikolai Semko:

Wenn die Verwendung von user32.dll nicht kritisch ist, gibt es eine weitere Möglichkeit. Ich erinnere mich nicht mehr an Messungen, aber ich habe weiter unten geschrieben, dass es schnell zu funktionieren scheint. Sie haben auch gefragt, warum ich Geschwindigkeit brauche :))
ist eine universelle (ich kann sie auch zwischen Terminals verwenden), nicht ereignisgesteuerte Lösung. Sie müssen mit der Zeitschaltuhr arbeiten. Die Mindestzeit zwischen den Ereignissen inOnChartEvent darf jedochauch nicht weniger als 1/64 Sekunde betragen.

Danke, aber es funktioniert nicht, weil folgende Situation möglich ist.

Expert1 und Expert2 lesen Daten von Indikator1, Expert3 liest Daten von Indikator2.


Das ereignisgesteuerte Modell wird nicht benötigt. Das heißt, der Expert Advisor muss in der Lage sein, die Zahl nur dann zu lesen, wenn er sie braucht. Sie muss nicht den Moment erfassen, in dem der Indikator die Zahl ändert. Das Problem ist also im Grunde genommen sehr einfach.


In der Sprache der globalen Variablen lautet die Lösung wie folgt

Indikator:

GlobalVariableSet(IndividualName, Number);


Sachverständiger Berater:

Number = (int)GlobalVariableGet(IndividualName);


Mit dieser Implementierung ist das Lesen furchtbar langsam. Nach einigen Stunden der Beobachtung der Variante auf Ressourcen zeigt sich, dass sie etwa 100 Mal schneller ist.

 
A100:

Tipp - denken Sie bei reiner MMS an... Das ist mir gerade eingefallen.

Ich werde auf eine Lösung warten.

 
fxsaber:

Danke, aber das passt nicht, da dies eine mögliche Situation ist.

Experte1 und Experte2 lesen Daten von Indikator1, Experte3 liest Daten von Indikator2.

Sie können ein kleines int-Array in die Zeichenkette einfügen und dann "aufteilen und erobern".

 
Nikolai Semko:

Sie können ein kleines int-Array in die Zeichenkette einfügen und dann "aufteilen und erobern".

Indicator1 und Indicator2 müssen dann auf irgendeine Weise synchronisiert werden, um beide Zahlen in einen gemeinsamen String schreiben zu können.

Dies ist eine sehr komplexe Lösung.

 
fxsaber:

Indikator1 und Indikator2 müssen dann auf irgendeine Weise synchronisiert werden, damit beide Zahlen in dieselbe gemeinsame Zeile geschrieben werden können.

Dies ist eine sehr komplexe Lösung.

Zwei Indikatoren und ein EA in einem Diagramm?

 
fxsaber:

Indikator1 und Indikator2 müssen dann auf irgendeine Weise synchronisiert werden, um beide Zahlen auf dieselbe gemeinsame Zeile schreiben zu können.

Dies ist eine sehr komplexe Lösung.

Die Funktion GlobalVariableSetOnCondition wurde vor langer Zeit für die Synchronisierung erfunden
Документация по MQL5: Глобальные переменные терминала / GlobalVariableSetOnCondition
Документация по MQL5: Глобальные переменные терминала / GlobalVariableSetOnCondition
  • www.mql5.com
GlobalVariableSetOnCondition - Глобальные переменные терминала - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava:
Die Funktion GlobalVariableSetOnCondition wurde vor langer Zeit erfunden, um die

Ich bin mir dessen bewusst und weiß, wie man es benutzt. Ich versuche, von den globalen Systemen wegzukommen, denn die sind furchtbar langsam.

Grund der Beschwerde: