Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1044

 
Galim_V:

Gibt es eine einfache Softwarelösung für mein Problem?

Es gibt sie!


 
Yevhenii Levchenko:

Ja!


Ich danke Ihnen für Ihre Antwort. Ja, wir kennen den aktuellen Wert des Swaps. Und ich brauche das Ergebnis des Vergleichs mit dem Wert von gestern.

 
Galim_V:

Ich danke Ihnen für Ihre Antwort. Ja, wir werden den aktuellen Wert des Swaps kennen. Und ich brauche das Ergebnis des Vergleichs mit dem Wert von gestern.

Speichern Sie den Wert von gestern in einer Variablen und vergleichen Sie! :)

 
Yevhenii Levchenko:

Speichern Sie den Wert von gestern in einer Variablen und vergleichen Sie! :)

Wird es gespeichert, wenn Sie das Terminal neu starten? Oder sprechen Sie von der globalen Variable des Terminals?

 
Galim_V:

Wird es gespeichert, wenn Sie das Terminal neu starten? Oder sprechen Sie von der globalen Variable des Terminals?

Nein, das wird es nicht. Um zu speichern, benötigen Sie entweder eine globale Variable oder eine Datei
 
Yevhenii Levchenko:
Nein, das werden sie nicht. Sie benötigen entweder eine globale Variable oder eine Datei, um sie zu speichern.

Ich wollte ein Info-Panel erstellen, aber ich habe den Quellcode verloren. Dabei wurden alle Einträge vermieden, die Informantenfunktionen verwendet. Beschlossen, alles wiederherzustellen und fügen Sie diese Swap-Problem. Deshalb habe ich die Frage gestellt. Hinterlässt Swap keine Spuren in der Geschichte, die vom Terminal selbst geschrieben wird? Aber wenn es keine andere Möglichkeit gibt, als zu schreiben, hätte ich gerne einen Tipp, da ich nicht mit Dateien und Global gearbeitet habe. Wenn man bedenkt, dass ich einmal am Tag 20 Instrumente vergleichen muss. Vielen Dank für Ihre Zeit.

 
Galim_V:

Ich wollte ein Info-Panel erstellen, aber ich habe den Quellcode verloren. Dabei wurden alle Einträge vermieden, die Informantenfunktionen verwendet. Beschlossen, alles wiederherzustellen und fügen Sie diese Swap-Problem. Deshalb habe ich die Frage gestellt. Hinterlässt Swap keine Spuren in der Geschichte, die vom Terminal selbst geschrieben wird? Aber wenn es keine andere Möglichkeit gibt, als zu schreiben, hätte ich gerne einen Tipp, da ich nicht mit Dateien und Global gearbeitet habe. Wenn man bedenkt, dass ich einmal am Tag 20 Instrumente vergleichen muss. Vielen Dank für Ihre Zeit.

Es ist einfacher, eine globale Variable zu verwenden... Die Dateien sind eher lästig...
 

Fertigstellung des Indikators auf mt5 (übersetzt von mt4). Ich habe gestern darüber geschrieben. Für mich hat es gut funktioniert, aber für den Kunden nicht so gut. Soweit ich weiß, traten die Probleme auf, wenn der Indikator programmatisch andere Indikatoren hinzufügte oder entfernte. Ich gebe der FunktionIndicatorRelease die Schuld...Während der Deinitialisierung werden die Indikatoren (außer dem aktuellen) über ChartIndicatorDelete aus dem Diagramm entfernt und dann über IndicatorRelease freigegeben .In der Hilfe heißt es:

IndicatorRelease()

Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.
Функция позволяет удалять хэндл индикатора, если он больше не нужен, и таким образом позволяет экономить память. Удаление хендла производится сразу, 
удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет). 

Während der Initialisierung werden Handles zurück erzeugt. Und bei der ersten Zählung in OnCalculate werden die Indikatoren wieder zum Diagramm hinzugefügt. Ich habe eine leere Schleife in OnDeinit für 1000 Durchläufe hinzugefügt, um eine Verzögerung hinzuzufügen. Ich habe kein Vertrauen in diese Lösung. Bei mir hat es vorher gut funktioniert (obwohl sich das Terminal heute einmal aufgehängt hat), und der Client hat heute (zumindest im Moment) gut funktioniert.

Der Algorithmus auf mt4 funktioniert einwandfrei (hat sich dort nie aufgehängt). Der Unterschied zu mt5 ist, dass hier Indikatoren programmatisch hinzugefügt werden (und berechnete Werte von Indikatoren müssen ständig kopiert werden, um sie zu verwenden). Während in mt4 kopieren sie nur die Puffer für die Visualisierung (muwings und zigzags... wie "Hinzufügen von Indikatoren programmatisch").

Wissen Sie, ob das Problem mit dem Löschen und Neuanlegen von Handles zusammenhängt (wenn Parameter geändert werden, folgen Deinitialisierung und Initialisierung unmittelbar aufeinander...)? Gibt es eine Möglichkeit zu überprüfen, ob es einen solchen Indikator gibt oder nicht?

 

Ich erhalte immer noch nicht normalisierte Werte nach der Normalisierung - MQL5

up    = NormalizeDouble((up == 0 ? 1 * point : up),_Digits);
down  = NormalizeDouble((down == 0 ? 1 * point : down),_Digits);
sum   = NormalizeDouble((sum == 0 ? 1 * point : sum),_Digits);
minus = NormalizeDouble((minus == 0 ? 1 * point : minus),_Digits);
if(index <= 65 && index >= 55) Print(index," ",up," ",down," ",sum," ",minus);

Am ungünstigsten 1e-05, Was ist zu tun?

 

Bitte beraten Sie, wie das Problem mit dem Aufruf Indikator auf MT5 Windows 10 X64 zu lösen, ich tue es auf diese Weise:

#resource "\\\Indicators\\\MyIndicator.ex5"

handle=iCustom(NULL,0,"\\Indicators\\\\MyIndicator");

Früher funktionierte es ohne #resource, dann funktionierte es nur noch mit #resource, jetzt geht nichts mehr, es wird der Fehler 4804 generiert