Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 471
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
1. Alle Spiele.
2. Einen solchen Parameter gibt es nicht.
In einem anderen Thread wurde mir gesagt, dass dieses Problem in MT4 nicht lösbar ist. :(
2. Ich weiß nicht, woher Sie die MA in einem separaten Fenster haben, um Ihnen etwas über den Parameter sagen zu können. Aber... Wenn Sie unter Indikatoren --> Oszillatoren --> Gleitende Durchschnitte des Oszillators wählen, steht dort "Anwenden auf:".
Wenn Sie also versuchen, einen anderen Indikator in ein separates Fenster zu stellen, kann er in einigen Fällen nicht nur auf die Standardpreise aus der Aufzählung ENUM_APPLIED_PRICE angewendet werden, sondern auch auf Daten dieses Indikators, die sich bereits im Fenster befinden. Vielleicht sind Sie gerade in dieser Situation.
3. Was ist das Problem? Dass die drei MAs nicht drei ähnlichen (nach Ihrer Aussage) MAs entsprechen? Es ist also nicht unlösbar, es ist Unsinn. Wenn sie richtig gemacht sind, müssen sie übereinstimmen. Was ist der Unterschied - drei separate MAs mit eigenen Parametern oder dieselben drei MAs mit denselben Parametern, aber in einen Indikator mit drei Puffern gepackt... Können Sie den Unterschied erkennen? Ich weiß es nicht. Und wenn Sie das sehen, dann suchen Sie nach Unstimmigkeiten bei der Berechnung der MAKs.
Übrigens... Alligator ist ein Indikator mit drei MAs, die jeweils eigene Parameter haben. Konfigurieren Sie die Parameter auf die gleiche Weise mit Ihren drei separaten MAs und sie werden übereinstimmen. Aber Sie haben dieses ganze Tohuwabohu in einem separaten Fenster... Also ... als Beispiel
Ich habe einen 3MA(4,9,14)-Indikator erstellt und beschlossen, ihn zu vergleichen, um seine Korrektheit mit einem Fenster zu überprüfen, in dem die drei Indikatoren MA(4), MA(9) und MA(14) sind. Mir standen die Haare zu Berge. :)
"Bei drei Indikatoren - MA(4), MA(9), MA(14) - wird das Indikatorfenster durch den ersten Indikator in diesem Fenster selbst skaliert. In Ihrem Fall ist es wahrscheinlich die MA(4)
Können Sie mir bitte einen Entwurf geben, um den Wert des eingebauten Indikators aus dem oberen Zeitrahmen zu erhalten, aber innerhalb dieses Zeitrahmens.
D.h. das aktuelle Diagramm ist 15 Minuten, ich brauche, um den Wert des Indikators, berechnet nach Tag, aber 45 Minuten vor, wie man dies tun?
Hier ist ein einfacher Algorithmus, der den Wert des Indikators zurückgibt, allerdings nur für den aktuellen Balken.
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
Versuchen Sie, die Selbstskalierung der Anzeigefenster zu deaktivieren, vielleicht beruhigt sich die Lage dann.
"wenn die drei Indikatoren MA(4), MA(9), MA(14) sind", wird das Indikatorfenster durch den ersten Indikator, der diesem Fenster zugeordnet ist, selbst skaliert. In Ihrem Fall ist es wahrscheinlich MA(4)
2. Ich weiß nicht, woher Sie die MA in einem separaten Fenster haben, um Ihnen etwas über den Parameter sagen zu können. Aber... Wenn Sie unter Indikatoren --> Oszillatoren --> Gleitende Durchschnitte des Oszillators wählen, steht dort "Anwenden auf:".
Wenn Sie also versuchen, einen anderen Indikator in ein separates Fenster zu stellen, kann er in einigen Fällen nicht nur auf die Standardpreise aus der Aufzählung ENUM_APPLIED_PRICE angewendet werden, sondern auch auf Daten dieses Indikators, die sich bereits im Fenster befinden. Vielleicht sind Sie gerade in dieser Situation.
3. Was ist das Problem? Dass die drei MAs nicht drei ähnlichen (nach Ihrer Aussage) MAs entsprechen? Es ist also nicht unlösbar, es ist Unsinn. Wenn sie richtig gemacht sind, müssen sie übereinstimmen. Was ist der Unterschied - drei separate MAs mit eigenen Parametern oder dieselben drei MAs mit denselben Parametern, aber in einen Indikator mit drei Puffern gepackt... Können Sie den Unterschied erkennen? Ich weiß es nicht. Und wenn Sie das sehen, dann suchen Sie nach einer Unstimmigkeit in den MAK-Berechnungen.
Übrigens... Alligator ist ein Indikator mit drei MAs, die jeweils eigene Parameter haben. Konfigurieren Sie die Parameter auf dieselbe Weise wie Ihre drei separaten MVs und sie werden übereinstimmen. Aber Sie haben dieses ganze Tohuwabohu in einem separaten Fenster... Also ... als Beispiel
Artyom, "Bewerben bei" - es gibt nur eine Aufzählung von Preisen. Die MA-Berechnungen sind korrekt, alle drei Linien wurden überprüft, indem ein einzelner Indikator mit Periode 4, dann 9, dann 14 zum 3MA-Indikatorfenster hinzugefügt wurde. In jedem Fall deckt sich der einzelne Indikator mit der entsprechenden Linie des 3MA-Indikators
Können Sie mir bitte einen Entwurf geben, um den Wert des eingebauten Indikators aus dem oberen Zeitrahmen zu erhalten, aber innerhalb dieses Zeitrahmens.
D.h. das aktuelle Diagramm ist 15 Minuten, ich brauche, um den Wert des Indikators, berechnet nach Tag, aber 45 Minuten vor, wie man dies tun?
Hier ist ein einfacher Algorithmus, der den Wert des Indikators zurückgibt, allerdings nur für den aktuellen Balken.
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
Ich kann die Frage nicht beantworten, aber die Funktion kann vereinfacht und erheblich beschleunigt werden.
Erstellen Sie beim Initialisieren des Indikators ein statisches Array
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
und alle if iniDelta() können durch ersetzt werden:
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
Ich kann die Frage nicht beantworten, aber die Funktion kann vereinfacht und erheblich beschleunigt werden.
Während der Initialisierung des Indikators erstellen Sie ein statisches Array
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
und alle if's iniDelta() können durch ersetzt werden:
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
Danke, ich werde es versuchen, vielleicht wird es dann besser.
Ich kann die Frage nicht beantworten, aber die Funktion kann vereinfacht und erheblich beschleunigt werden.
Erstellen Sie bei der Initialisierung des Indikators ein statisches Array
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
und alle ifs iniDelta() können durch ersetzt werden:
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
Ich habe es so gemacht, wie Sie geschrieben haben, aber es hat nicht so funktioniert, wie es sein sollte - ich weiß noch nicht, was genau falsch ist - ich muss drucken....
Ich verstehe das mit der Schnur nicht.
else Fibo = -arrFibo[-Variant];
Ich habe es so gemacht, wie Sie geschrieben haben, aber es funktioniert nicht so, wie es sollte - ich weiß noch nicht, was falsch ist - ich muss drucken....
Das mit der Linie verstehe ich nicht.
else Fibo = -arrFibo[-Variant];
Im gleichen Fall benötigen wir negative Fibo-Werte, also -arrFibo.