Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 77

 
John Smith:


Im Code werden die Werte wie folgt angenommen:

Wert[1] = aktuell/aktuell+6

Wert[2] = Strom+1/Strom+7

Wert[3] = Strom+2/Strom+8


Die Division ist ein Stück Impulsformel mit einem Fenster von 6 Takten.

Gibt es einen Fehler in diesem Eintrag?

Wo haben Sie das Fenster gefunden?

Und was glauben Sie, was Ihr Ausdruck Value[1] = current/current+6 ergibt, wenn current=1, ich glaube 7?

 

Hallo zusammen!

Ich brauche etwas Hilfe. Ich schreibe gerade einen EA. Es verwendet ein Handels-Panel, das auf CAppDialog basiert. Das Problem ist, dass, wenn ich anfangen zu wechseln Zeitrahmen das Panel ist nicht immer, aber oft spaltet. Die Eingeweide der alten Tafel bleiben erhalten und eine neue wird gezeichnet, aber nicht korrekt. Ich muss nur das Diagramm löschen und ein neues beginnen, da es unmöglich ist, mit diesem Diagramm und dem Panel weiterzuarbeiten.

Ich füge den EA zur Überprüfung und Analyse bei.

Ich danke Ihnen für Ihre Hilfe.

Dateien:
6f5djt.mq4  18 kb
 
Rustem71:

Hallo zusammen!

Ich brauche etwas Hilfe. Ich schreibe gerade einen EA. Es verwendet ein Handels-Panel, das auf CAppDialog basiert. Das Problem ist, dass, wenn ich anfangen zu wechseln Zeitrahmen das Panel ist nicht immer, aber oft spaltet. Die Eingeweide der alten Tafel bleiben erhalten und eine neue wird gezeichnet, aber nicht korrekt. Ich muss nur das Diagramm löschen und ein neues beginnen, da es unmöglich ist, mit diesem Diagramm und dem Panel weiterzuarbeiten.

Ich füge den EA zur Überprüfung und Analyse bei.

Ich danke Ihnen für Ihre Hilfe.


Wenn Sie die TF wechseln, müssen Sie das Panel neu initialisieren...

und dig in den Klassen, wird das Panel bei der Deinitialisierung nicht vollständig gelöscht

 
Taras Slobodyanik:


Beim Wechsel der TFs muss das Panel neu initialisiert werden...

und in die Klassen eindringen, wird das Panel beim Deinitialisieren nicht vollständig gelöscht

Ich habe es noch nicht ganz begriffen. Ich muss mich durch eine Menge Kurse wühlen. Es stellt sich jedoch die Frage, warum der erste Schalter gut funktioniert und der nächste das Panel ausschaltet. Ich habe bereits alles Unnötige daraus entfernt. Ich habe sozusagen nur den Rahmen gelassen. Aber das Problem bleibt. Ich arbeite gerade daran. Wenn Sie eine Idee haben, würde ich mich freuen, davon zu hören.

Ich danke Ihnen!


Jetzt habe ich herausgefunden, dass das Panel beim ersten Mal gelöscht und von init neu erstellt wird, und beim zweiten Mal bleibt es hängen.

Vielleicht sollte die Iniit beim zweiten Mal nicht mehr geladen werden? Oder löschen Sie sie auf eine andere Weise.

Dateien:
mrdv0d.mq4  7 kb
 

Ich habe gerade erst angefangen, es zu verstehen, ich brauche Hilfe von den Profis.

Ich möchte den integrierten Stochastik-Indikator verwenden, um eine Benachrichtigung über ein Signal zu erhalten (langsame und schnelle Stochastik, die die 80/20-Grenzen überschreiten)

Ich habe verstanden, wie man Daten mit iStochastic erhält: Ich schreibe meinen eigenen Indikator, rufe iStochastic für Balken auf, analysiere sie und sende einen Alarm.

Ich verstehe nicht, was ich in dieser Situation tun soll: Wenn ich einen großen Zeitrahmen verwende, z. B. 4 Stunden, dann wird am Ende des Zeitrahmens ein neuer Balken erscheinen,

und der Indikator wird zur Neuberechnung aufgerufen. D.h. der Timeout beträgt 4 Stunden.

Aber ich möchte die Informationen ständig analysieren, d.h. sobald sich der Preis ändert (Geld-Brief), die Stochastik neu berechnen und

wenn Kriterien die Bedingung erfüllen, über die ich benachrichtigt werden möchte. Ich möchte nicht auf das Ende des Zeitrahmens und das Erscheinen einer neuen Kerze warten.

Bitte teilen Sie mir mit, wo ich nachsehen kann und ob die Umsetzung möglich ist.

Vielleicht verstehe ich das Wesen der Prozesse nicht ganz und grabe an der falschen Stelle, ich bin ein Neuling).

 
Rustem71:

Ich habe es noch nicht ganz begriffen. Es gibt viele Klassen zu durchforsten. Es stellt sich jedoch die Frage, warum der erste Schalter gut funktioniert und der nächste das Panel ausschaltet. Ich habe bereits alles Unnötige daraus entfernt. Ich habe sozusagen nur den Rahmen gelassen. Aber das Problem bleibt. Ich arbeite gerade daran. Wenn Sie eine Idee haben, würde ich mich freuen, davon zu hören.

Ich danke Ihnen!


Jetzt habe ich herausgefunden, dass das Panel beim ersten Mal gelöscht und von init neu erstellt wird, und beim zweiten Mal bleibt es hängen.

Vielleicht sollte die Iniit beim zweiten Mal nicht mehr geladen werden? Oder löschen Sie sie auf eine andere Weise.


Alles erledigt! Danke,Taras Slobodyanik hat mich auf eine Idee gebracht.

Während der Init, verboten , ein Panel zu erstellen, wenn es eine Änderung der TF. Und in deinit verboten, das Panel zu löschen, wenn eine Änderung der TF auftritt.

 
VladPro77:

Ich habe gerade erst angefangen, es zu verstehen, ich brauche Hilfe von den Profis.

Ich möchte den integrierten Stochastik-Indikator verwenden, um eine Benachrichtigung über ein Signal zu erhalten (langsame und schnelle Stochastik, die die 80/20-Grenzen überschreiten)

Ich habe verstanden, wie man Daten mit iStochastic erhält: Ich schreibe meinen eigenen Indikator, rufe iStochastic für Balken auf, analysiere sie und sende einen Alarm.

Ich verstehe nicht, was ich in dieser Situation tun soll: Wenn ich einen großen Zeitrahmen verwende, z. B. 4 Stunden, dann wird am Ende des Zeitrahmens ein neuer Balken erscheinen,

und der Indikator wird zur Neuberechnung aufgerufen. D.h. der Timeout beträgt 4 Stunden.

Aber ich möchte die Informationen ständig analysieren, d.h. sobald sich der Preis ändert (Geld-Brief), die Stochastik neu berechnen und

wenn Kriterien die Bedingung erfüllen, über die ich benachrichtigt werden möchte. Ich möchte nicht auf das Ende des Zeitrahmens und das Erscheinen einer neuen Kerze warten.

Bitte teilen Sie mir mit, wo ich nachsehen kann und ob die Umsetzung möglich ist.

Vielleicht verstehe ich das Wesen der Prozesse nicht ganz und grabe an der falschen Stelle, ich bin ein Neuling).


// Инициализируем переменную для проверки
datetime time_svecha;        //время предыдущей свечи 
...

// В начале исполнительного кода проверяем на приход новой свечи:
if(iTime(NULL,PERIOD_CURRENT,0) == time_svecha) return;

...

// В конце исполнительного кода присваиваем время новой свечи 
time_svecha = iTime(NULL,PERIOD_CURRENT,0);
 
Können Sie mir sagen, was im Handelsbereich getan werden muss, damit er im Tester speziell im Visualisierungsmodus funktioniert? Oder ist es sehr kompliziert?
 
Rustem71:
Können Sie mir sagen, was im Handelsbereich getan werden muss, damit es im Tester speziell im Visualisierungsmodus funktioniert? Oder ist es sehr kompliziert?


Wenn für einen Indikator, sollte es funktionieren
Wenn es sich um Expert Advisors handelt, treten im Strategy Tester (für Expert Advisors) keine Ereignisse auf und der Timer funktioniert nicht...

Wenn es im Tester funktioniert, dann wird das Panel anders gezeichnet - Objekte fragen (verändert/verschoben) und bei Bedarf neu gezeichnet, auf Klicks reagieren...
Emulieren Sie ggf. auch den Timer.

 
Rustem71:


Danke, aber nicht ganz dasselbe)

Ich beschreibe die folgende Situation.

1. Der Zeitrahmen endete, eine Kerze wurde gebildet. Der Indikator wird neu berechnet, er wird gezeichnet.

2. Ein neuer Zeitrahmen beginnt.( Bis zu ihrem Ende gibt es keineneue Kerze ). Bid und Ask ändern sich in diesem Zeitraum.

Ich möchte auf diese Kursänderungen reagieren (im aktuellen Zeitrahmen ist die Kerze noch nicht gebildet).

Es geht nicht einmal darum, die Karten zu zeichnen, sondern darum, den Moment durch eine Bedingung zu fixieren. Ich möchte eine Warnung erhalten, sobald die Stochastik gekreuzt hat (wir haben noch drei Stunden bis zum Ende des Zeitrahmens und die Bedingung ist jetzt erfüllt).

Und das Diagramm kann gezeichnet werden, wenn der Zeitrahmen endet.