Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 134
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es gibt ein Problem mit dem Expert Advisor in der Testversion. Ich teste mit 1-Minuten-Daten. Ich berechne die Stochastik für den höheren TF selbst anhand der Minutendaten.
Der Verlauf der Protokolle wurde seit 2001 heruntergeladen. Legen Sie auf der Registerkarte "Charts" die maximale Anzahl der Balken in der Historie fest, die angezeigt werden sollen.
Der gesamte Verlauf auf dem Diagramm wird gescrollt.
Das Problem ist, dass, wie sich beim Debug-Druck herausstellte, egal ab welchem Datum ich den Tester starte, die maximale Anzahl der Balken
in der Variablen Bars beim ersten Takt des Tests (zu Beginn) ist immer 1001 oder 1002. Der Wert von Balken erhöht sich mit jedem weiteren Balken um 1.
Daher ist es nicht möglich, die höhere TF von Anfang an zu berechnen.
Es gibt eine Lösung. Wir sollten ein Handelsverbot einführen, bevor die Bars den gewünschten Wert erreichen.
Können wir dieses Problem auf andere Weise lösen? Erhöht sich dieser Startwert der Balken im Tester irgendwie?
Es gibt ein Problem mit dem Expert Advisor in der Testversion. Ich teste mit 1-Minuten-Daten. Ich berechne die Stochastik für den höheren TF selbst anhand der Minutendaten.
Der Verlauf der Protokolle wurde seit 2001 heruntergeladen. Legen Sie auf der Registerkarte "Charts" die maximale Anzahl der Balken in der Historie fest, die angezeigt werden sollen.
Der gesamte Verlauf auf dem Diagramm wird gescrollt.
Das Problem ist, dass, wie sich beim Debug-Druck herausstellte, egal ab welchem Datum ich den Tester starte, die maximale Anzahl der Balken
in der Variablen Bars beim ersten Takt des Tests (zu Beginn) ist immer 1001 oder 1002. Der Wert von Balken erhöht sich mit jedem weiteren Balken um 1.
Daher ist es unmöglich, die höheren TFs am Anfang zu zählen.
Es gibt eine Lösung. Wir sollten ein Handelsverbot einführen, bevor die Bars den gewünschten Wert erreichen.
Können wir dieses Problem auf andere Weise lösen? Erhöht sich dieser Startwert der Balken im Tester irgendwie?
P.S. Ich habe den Kompilierknopf gedrückt.
Ich muss unbedingt den Algorithmus zur Berechnung des geglätteten gleitenden Durchschnitts verstehen. Es gibt mehrere Gründe, warum die iMA-Funktion nicht geeignet ist.
So wie ich die Informationen von https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma verstanden habe.
Das erste Element wird als die Summe der Schlusskurse geteilt durch den Zeitraum berechnet.
Die folgenden werden nach der Formel SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N berechnet .
Nehmen wir einen Zeitraum von 5 und die Schlusskurse von EUR/USD H1 für den Zeitraum vom 24.02.2017 19:00 bis 24.02.2017 23.00 (GMT+2), d.h. die letzten 5 Kerzen
Die Schlusskurse liegen bei 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Entsprechend: 1. Element - 1,056452; 2. Element - 1,056852 3. Element - 1,05676 4. Element - 1,056632 5. Element - 1,056489
Auf dem SMMA 5-Chart beträgt der Schlusskurs jedoch 1,05706, d.h. die Differenz liegt bereits in der 3.
Was habe ich falsch gezählt?
Und wie muss ich richtig rechnen, um 1,05706 zu erhalten?
Ich muss unbedingt den Algorithmus zur Berechnung des geglätteten gleitenden Durchschnitts verstehen. Es gibt mehrere Gründe, warum die iMA-Funktion nicht geeignet ist.
So wie ich die Informationen von https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma verstanden habe.
Das erste Element wird als die Summe der Schlusskurse geteilt durch den Zeitraum berechnet.
Die folgenden werden nach der Formel SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N berechnet .
Nehmen wir den Zeitraum gleich 5 und die Schlusskurse von EUR/USD H1 für den Zeitraum vom 24.02.2017 19:00 bis 24.02.2017 23.00 (GMT+2), d.h. die letzten 5 Kerzen
Die Schlusskurse liegen bei 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Entsprechend: 1. Element - 1,056452; 2. Element - 1,056852 3. Element - 1,05676 4. Element - 1,056632 5. Element - 1,056489
Und auf dem SMMA 5-Chart beträgt der Schlusskurs 1,05706, d.h. die Differenz liegt bereits in der 3.
Was habe ich falsch gezählt?
Und wie muss ich richtig rechnen, um 1,05706 zu erhalten?
Meine Herren Entwickler! Einen guten Tag an alle. Ich interessiere mich für die Frage der Erstellung einer Vorlage für einen Expert Advisor (Skript) bei dessen Erstellung. Kann es irgendwo bearbeitet werden und wie wird es gemacht?
Schauen Sie sich den Indikator selbst an, dann ergibt er mehr Sinn.
double SMMA(int Zeitraum)
{
//Füllen des Arrays mit Schlusskursen
int k=Zeitraum;
for(int i=1; i<=Periode; i++)
{
H1_Close[i]=Close[k];
// Print("H1_Close [",i,"] ",H1_Close[i]," Close [",k,"] ",Close[k]);
k--;
}
//Berechnen Sie das erste Element als durchschnittlichen Schlusskurs
double Summ=0;
for (int i=1; i<=Periode;i++)
Summ=Summ+H1_Close[i]; //SUM1 = SUM(CLOSE, N)
double TmpSMMA=Summe/Zeitraum; //SMMA1 = SUM1/N
//Berechnen Sie das i-te Element als SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N
for(int i=2;i<=Periode;i++)
TmpSMMA=(TmpSMMA*(Periode-1)+H1_Close[i])/Periode;
}
Das Ergebnis unterscheidet sich jedoch deutlich von den Indikatordaten im Terminal. WARUM?
Ich muss unbedingt den Algorithmus zur Berechnung des geglätteten gleitenden Durchschnitts verstehen. Es gibt mehrere Gründe, warum die iMA-Funktion nicht geeignet ist.
So wie ich die Informationen von https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma verstanden habe.
Das erste Element wird als die Summe der Schlusskurse geteilt durch den Zeitraum berechnet.
Die folgenden werden nach der Formel SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N berechnet .
Nehmen wir einen Zeitraum von 5 und die Schlusskurse von EUR/USD H1 für den Zeitraum vom 24.02.2017 19:00 bis 24.02.2017 23.00 (GMT+2), d.h. die letzten 5 Kerzen
Die Schlusskurse liegen bei 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.
Entsprechend: 1. Element - 1,056452; 2. Element - 1,056852 3. Element - 1,05676 4. Element - 1,056632 5. Element - 1,056489
Auf dem SMMA 5-Chart beträgt der Schlusskurs jedoch 1,05706, d.h. die Differenz liegt bereits in der 3.
Was habe ich falsch gezählt?
Und wie muss ich richtig rechnen, um 1,05706 zu erhalten?
Es gibt einen Berechnungsalgorithmus im Inluder.
Ich habe den Code der Funktion aus der Antwort von Vitaly Muzichenko geschrieben, aber ich kann nicht herausfinden, was der Fehler ist
Ich scheine also alles wie in den Berechnungen zu machen, aber das Ergebnis kommt nicht heraus. Ich sitze nun schon den 4. Tag hier und kann es nicht herausfinden.
Ich habe den Code der Funktion in Vitaly Muzichenkos Antwort geschrieben, aber ich kann nicht herausfinden, was der Fehler ist