In seinem Fenster auf dem Diagramm zeichnet normalerweise nur fünf vertikale Linien der Volatilität für 0 Tage, 1 Tag, Durchschnitt für 2 Tage, 3 Tage und 4 Tage.
Die durchschnittliche Volatilität, die sich aus der Summe der 5 Vortage ergibt, wird als gestrichelte Linie für 50 Tageskerzen eingezeichnet - so viele Kerzen sind angegeben.
Der Inhalt der Puffer wird wie folgt berechnet: Mittelwertbildung für 5 Tage - im Zyklus (um eine Linie für 50 Tage zu ziehen), andere gemittelte Daten - außerhalb des Zyklus.
while(i>=0)
{
int day0= (High[i] - Low[i])/Point;
int day1= (High[i+1] - Low[i+1])/Point;
int day2= (High[i+2] - Low[i+2])/Point;
int day3= (High[i+3] - Low[i+3])/Point;
int day4= (High[i+4] - Low[i+4])/Point;
int day5= (High[i+5] - Low[i+5])/Point;
int D5_av = (day1+ day2+ day3+ day4+ day5) / 5;
VolatBuffer5[i]=D5_av;
i--;
}
day0= (High[0] - Low[0])/Point;
day1= (High[1] - Low[1])/Point;
day2= (High[2] - Low[2])/Point;
day3= (High[3] - Low[3])/Point;
day4= (High[4] - Low[4])/Point;
int D4_av = (day1+ day2+ day3+ day4)/4;
int D3_av = (day1+ day2+ day3)/3;
int D2_av = (day1+ day2)/2;
int D1_av = day1/1;
int D0_av = day0/1;
VolatBuffer0[0]=D0_av;
VolatBuffer1[1]=D1_av;
VolatBuffer2[2]=D2_av;
VolatBuffer3[3]=D3_av;
VolatBuffer4[4]=D4_av;
Comment("Волатильность. За 5 дн.= "+VolatBuffer5[5]+" За 4 дн.= "+VolatBuffer4[4]+" За 3 дн.= "+VolatBuffer3[3]+" За 2 дн.= "+VolatBuffer2[2]+" Вчера= "+VolatBuffer1[1]+" Сегодня= "+VolatBuffer0[0]);
Die Coment-Zeile im Indikator, in die der Inhalt der Puffer eingetragen wird, führt zu einer absurden Darstellung auf dem Bildschirm:
Mittelwertbildung für 5 Tage -keine Volatilität größer als 194 Pips für diese Tage und korrekte Ergebnisse für die anderen Tage.
Kommentar = "Volatilität. Für 5 Tage = 219,000000 Für 4 Tage = 171,0000000 Für 3 Tage = 189,00000 Für 2 Tage = 187,00000 Gestern = 194,00000 Heute = 5 "
Zero-Day "Today" steigt deutlich mit der Volatilität des aktuellen Tages
Beim Aufruf dieser Puffer an den Expert Advisor
int Volat0= iCustom(Symbol(), 1440, "Volat_Average_Gist",0,0);
int Volat1= iCustom(Symbol(), 1440, "Volat_Average_Gist",1,0);
int Volat2= iCustom(Symbol(), 1440, "Volat_Average_Gist",2,0);
int Volat3= iCustom(Symbol(), 1440, "Volat_Average_Gist",3,0);
int Volat4= iCustom(Symbol(), 1440, "Volat_Average_Gist",4,0);
int Volat5= iCustom(Symbol(), 1440, "Volat_Average_Gist",5,0);
tester's Print line Gibt eine weitere Absurdität aus - nicht korrekt, anders als die Coment line, aber ähnlich der Wahrheit, das durchschnittliche Ergebnis für 5 Tage und die korrekte Volatilität des heutigen "Day Zero".
Der Rest ergibt eine feste absurde Zahl.
Der Tester Print zeigt die Volatilität in 5 Tagen=181 In 4 Tagen= 2147483647 In 3 Tagen= 2147483647 In 2 Tagen= 2147483647 Gestern= 2147483647 Heute= 5
Seit einigen Tagen kann ich nicht verstehen, warum dem Expert Advisor andere Daten als die in den fünf Indikatorpuffern enthaltenen Daten übermittelt werden, mit Ausnahme des Puffers "Day Zero"?
Es hat funktioniert. Der Expert Advisor begann, normale Daten zu empfangen.
Darüber hinaus gibt es einen interessanten Effekt - in der Zeile "Kommentar" des Indikators
nur 219 für 5 Tage bleibt, wie es war.
Gleichzeitig erhält der Expert Advisor 181 anstelle von 219, wie es eigentlich sein sollte.
Coment'' zeigt Volatilität über 5 Tage= 219.000000 über 4 Tage= 2147483647 über 3 Tage= 2147483647 über 2 Tage= 2147483647 gestern= 2147483647 heute= 5
Die Frage ist nicht mehr, wie man den Code schreibt, sondern auf der Ebene einer Idee - ist es möglich, Mehrfachschleifen zu vermeiden,
was eine große Belastung für den Prozessor darstellt. Es gab z.B. die Idee, die Anzahl der offenen STOP-Aufträge zu verfolgen - wenn die Anzahl um eins gesunken ist, aber der Auftrag nicht gelöscht wurde => einen Marktauftrag eröffnen.
seine Öffnungszeit und sein Typ sollten in einem Array abgelegt werden. Etwa so.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Können Sie mir sagen, was der Fehler beim Kompilieren des EA bedeutet?
\Programmende' - unausgewogene linke Klammer
Unausgewogene linke Klammer.
Unausgewogene linke Klammer.
Hoppla... Ich habe es gefunden. DANKE!
Hier ist eine Frage.
Die Orders werden als BUY/SELL STOP eröffnet. Einige werden zu Marktaufträgen, andere werden gelöscht.
Für die letzten N-Börsenaufträge (offene und geschlossene) müssen wir wissen, ob es sich um Kauf- oder Verkaufsaufträge handelt.
Mein erster Gedanke ist, alle Bestellungen aus OrdersHistoryTotal() und OrdersTotal() zu durchsuchen und sie zu sortieren nach
und sortieren sie dann nach OP_BUY und OP_SELL. Aber das ist lang und wird den Prozessor stark verlangsamen.
- Vielleicht gibt es eine andere, einfachere Variante?
Ich danke Ihnen!
Guten Tag.
Kann jemand helfen?
Ich habe meinen ersten einfachen Indikator geschrieben, der die durchschnittliche Volatilität für die letzten 2, 3, 4 und 5 Tage berechnen soll.
Der Indikator hat sechs Puffer,
In seinem Fenster auf dem Diagramm zeichnet normalerweise nur fünf vertikale Linien der Volatilität für 0 Tage, 1 Tag, Durchschnitt für 2 Tage, 3 Tage und 4 Tage.
Die durchschnittliche Volatilität, die sich aus der Summe der 5 Vortage ergibt, wird als gestrichelte Linie für 50 Tageskerzen eingezeichnet - so viele Kerzen sind angegeben.
Der Inhalt der Puffer wird wie folgt berechnet: Mittelwertbildung für 5 Tage - im Zyklus (um eine Linie für 50 Tage zu ziehen), andere gemittelte Daten - außerhalb des Zyklus.
Die Coment-Zeile im Indikator, in die der Inhalt der Puffer eingetragen wird, führt zu einer absurden Darstellung auf dem Bildschirm:
Mittelwertbildung für 5 Tage - keine Volatilität größer als 194 Pips für diese Tage und korrekte Ergebnisse für die anderen Tage.
Kommentar = "Volatilität. Für 5 Tage = 219,000000 Für 4 Tage = 171,0000000 Für 3 Tage = 189,00000 Für 2 Tage = 187,00000 Gestern = 194,00000 Heute = 5 "
Zero-Day "Today" steigt deutlich mit der Volatilität des aktuellen Tages
Beim Aufruf dieser Puffer an den Expert Advisor
tester's Print line Gibt eine weitere Absurdität aus - nicht korrekt, anders als die Coment line, aber ähnlich der Wahrheit, das durchschnittliche Ergebnis für 5 Tage und die korrekte Volatilität des heutigen "Day Zero".
Der Rest ergibt eine feste absurde Zahl.
Der Tester Print zeigt die Volatilität in 5 Tagen=181 In 4 Tagen= 2147483647 In 3 Tagen= 2147483647 In 2 Tagen= 2147483647 Gestern= 2147483647 Heute= 5
Seit einigen Tagen kann ich nicht verstehen, warum dem Expert Advisor andere Daten als die in den fünf Indikatorpuffern enthaltenen Daten übermittelt werden, mit Ausnahme des Puffers "Day Zero"?
Versuchen Sie zu ersetzen
VolatBuffer1[1]=D1_av;
zu
VolatBuffer1[0]=D1_av;
und auch alle anderen Puffer.
Versuchen Sie zu ersetzen
VolatBuffer1[1]=D1_av;
zu
VolatBuffer1[0]=D1_av;
und auch alle anderen Puffer.
Ich danke Ihnen!
Es hat funktioniert. Der Expert Advisor begann, normale Daten zu empfangen.
Darüber hinaus gibt es einen interessanten Effekt - in der Zeile "Kommentar" des Indikators
nur 219 für 5 Tage bleibt, wie es war.
Gleichzeitig erhält der Expert Advisor 181 anstelle von 219, wie es eigentlich sein sollte.
Coment'' zeigt Volatilität über 5 Tage= 219.000000 über 4 Tage= 2147483647 über 3 Tage= 2147483647 über 2 Tage= 2147483647 gestern= 2147483647 heute= 5
Versuchen Sie zu ersetzen
VolatBuffer1[1]=D1_av;
zu
VolatBuffer1[0]=D1_av;
und auch alle anderen Puffer.
Ich habe einen weiteren Effekt gefunden. Alle vertikalen Linien im Indikatorfenster werden übereinander gezeichnet
Der größte Wert deckt alle anderen ab. Sie ist für den Expert Advisor nicht unbedingt erforderlich.
Guten Tag.
Kann jemand helfen?
Habe meinen ersten einfachen Indikator geschrieben - sollte die durchschnittliche Volatilität für die letzten 2,3,4,und 5 Tage zählen.
Durch die Verwendung von ATR können Sie die Dinge erheblich vereinfachen:
Zwei Drehbücher:
Die Frage ist nicht mehr, wie man den Code schreibt, sondern auf der Ebene einer Idee - ist es möglich, Mehrfachschleifen zu vermeiden,
was eine große Belastung für den Prozessor darstellt. Es gab z.B. die Idee, die Anzahl der offenen STOP-Aufträge zu verfolgen - wenn die Anzahl um eins gesunken ist, aber der Auftrag nicht gelöscht wurde => einen Marktauftrag eröffnen.
seine Öffnungszeit und sein Typ sollten in einem Array abgelegt werden. Etwa so.
Jede Idee ist willkommen.
Danke!
Durch die Verwendung von ATR können Sie die Dinge erheblich vereinfachen: