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
Bei mir lässt es mich die Datei nicht kompilieren.
Ich weiß nicht, ob es eine Idee gibt, was los ist.
Danke!
Jordi
Danke!
Im Folgenden finden Sie ein einfaches Beispiel, das ich beim Herumspielen zusammengestellt habe.
Wenn es falsch ist, korrigieren Sie mich bitte und ich werde es ändern.
Was ich seltsam finde, ist, dass die Werte nicht mit einem einfachen gleitenden Durchschnitt im Diagramm übereinstimmen.
################### In einem Skript
int period = 21; // Der gleitende Durchschnitt von 21 Balken
int sampleSize = 100; //Das ist die Anzahl der Balken der Daten, die Sie abrufen möchten
int handle = iCustom(Symbol(),0, "Examples\\Custom Moving Average",
Periode,// Zeitraum
0, // Versatz
MODE_SMA, // Berechnungsmethode
PRICE_CLOSE // Berechnung auf Basis der Schlusskurse
);
void OnTick()
{
// Dies ist das Array, in das Ihre gleitenden Durchschnitte kopiert werden.
// Jedes Element hier ist ein gleitender Durchschnittswert
// Das erste Element in diesem Array (Element an Position 0) ist das aktuellste
// Das letzte Element ist das letzte Element im Array ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("CopyBufferMA1 error =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
################################# In einem EA (HINWEIS: die OnInit und OnTick)
int OnInit(){
int period = 21; // Der gleitende Durchschnitt von 21 Balken
int sampleSize = 100; //Das ist die Anzahl der Balken der Daten, die Sie abrufen möchten
int handle = iCustom(Symbol(),0, "Examples\\Custom Moving Average",
period, // Zeitraum
0, // Versatz
MODE_SMA, // Berechnungsmethode
PRICE_CLOSE // Berechnung auf Schlusskursen
);
}
OnTick()
{
// Dies ist das Array, in das Ihre gleitenden Durchschnitte kopiert werden.
// Jedes Element hier ist ein gleitender Durchschnittswert
// Das erste Element in diesem Array (Element an Position 0) ist das aktuellste
// Das letzte Element ist das letzte Element im Array ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("CopyBufferMA1 error =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
}
Großartiger Artikel