Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Varianten gleitende Durchschnitte in MT4 und EA gleich? (http://www.expert-advisor.com/forum/showthread.php?t=4091)

Aktien Andy 17.02.15 18:09

Varianten gleitende Durchschnitte in MT4 und EA gleich?
 
Moin zusammen ;)

Zusammen mit MT4 wird ja der Indikator "Custom Moving Averages" geliefert. Wenn man diesen in den Chart zieht, dann kann man verschiedene Berechnungsvarianten wählen (simple, exponential, smoothed, linear weighted).

Wenn man in MT4 einen Simulationslauf mit einem EA startet, der einen moving average beinhaltet, dann kann man da für den moving average die Zahlen 0,1,2 oder 3 angeben.

Entsprechen diese Werte (0,1,2 und 3) den Berechnungsmethoden im Indikator?



Ich hänge gleich mal die zweite Frage an:
Wenn meine Vermutung stimmt (siehe oben), dann habe ich ein Problem ;)
Ich habe einen EA in dem visuellen Modus laufen lassen (um mal zu sehen, wie das aussieht). Unter anderem spielt dort der MA 55 mode 3 eine Rolle. Um auch mal zu sehen, welchen Einfluß der hat, habe ich den Indikator in das Fenster gezogen, in dem der Testlauf simuliert wurde. Ich konnte allerdings nicht ausmachen, welchen Einfluß der MA hat, da die Linie des MA sich "kilometerweit" oberhalb der Kurslinie bewegte. In dem Chartfenster konnte ich sehen, dass Signale (Kauf / Verkauf) genriert wurden. Dies sollte (unter anderem) mit dem Kreuzen des MA durch den Kursverlauf geschehen; allerdings hat der MA den Kurs nie berührt.
Werden die Werte beim EA anders berechnet als beim Indikator?

Danke für alle Antworten und Gruß an alle

Andreas

ForexGT 18.02.15 15:26

MA
 
Hallo Namens-Vetter ;-)

ja, Deine Annahme ist korrekt.

Wenn Du Dir die Usage des Befehls "iMA" ansiehst, welche Werte hast Du für die Parameter "applied_price" und "shift" gewählt. Ich glaube, hier könnte eine Ursache Deiner Beobachtung liegen...

double iMA(
string symbol, // symbol
int timeframe, // timeframe
int ma_period, // MA averaging period
int ma_shift, // MA shift
int ma_method, // averaging method
int applied_price, // applied price
int shift // shift
);

Aktien Andy 18.02.15 18:13

Moin ;)

Beim Sart des EA könnte ich den Wert MAPrice ändern; habe ich aber nicht. Der steht auf 0 (Null).

Ich vermute, dass die von Dir angesprochene Codesektion im Quellcode zu finden ist.

Da habe ich folgende Sektion gefunden:

// Moving averages
double fast_ma = iMA(Symbol(), 0, FastMA, 0, FastMAMode, FastMAPrice, Shift);
double slow_ma = iMA(Symbol(), 0, SlowMA, 0, SlowMAMode, SlowMAPrice, Shift);
double fast_ma1 = iMA(Symbol(), 0, FastMA, 0, FastMAMode, FastMAPrice, Shift+1);
double slow_ma1 = iMA(Symbol(), 0, SlowMA, 0, SlowMAMode, SlowMAPrice, Shift+1);

Sieht etwas anders aus als bei Dir. Ich hoffe, Du kannst damit etwas anfangen (ich nämlich nicht wirklich ;)

Gruß an alle

Andreas

ForexGT 19.02.15 08:58

Hallo Andreas,

die Zeilen, die ich gepostet habe quasi eine Erklärung, wie der Befehle "iMA" aufgebuat ist:

double iMA(
string symbol, // symbol
int timeframe, // timeframe
int ma_period, // MA averaging period
int ma_shift, // MA shift
int ma_method, // averaging method
int applied_price, // applied price
int shift // shift
);

Deine Zeilen basieren eben auf den MQL-Befehl "iMA":

double fast_ma = iMA(Symbol(), 0, FastMA, 0, FastMAMode, FastMAPrice, Shift);
double slow_ma = iMA(Symbol(), 0, SlowMA, 0, SlowMAMode, SlowMAPrice, Shift);
double fast_ma1 = iMA(Symbol(), 0, FastMA, 0, FastMAMode, FastMAPrice, Shift+1);
double slow_ma1 = iMA(Symbol(), 0, SlowMA, 0, SlowMAMode, SlowMAPrice, Shift+1);

Nehmen wir exemplarisch mal die erste Zeile:

double fast_ma = iMA(Symbol(), 0, FastMA, 0, FastMAMode, FastMAPrice, Shift);

Dort wird die Variable "fast_ma" mit dem Wert der Berechnung des Moving Average definiert. Wobei:

Symbol() = das vorliegende Währungspaar
0 = die Timeframe (0 bedeutet alle Timeframes)
FasMA = ist eine von User zu definierende Variable für die Perioden, die zur Berechnung hinzugezogen werden sollen. Wahrscheinlich gibt es ganz zu beginn eine Zeile, die wie folgt lautet:

extern int FastMA

0 = Shift für Moving Average
FastMAMode = Modus für das Moving Average (0,1,2,3). Auch dieser Parameter wird vom User gefordert. Suche nach:

extern int FastMAMode

FastMAPrice = Welcher Preis soll für die Berechnung gentutz werden (Open, Close, etc.)

Shift = Schiebung der Kerzen

Aktien Andy 20.02.15 18:06

Moin Andreas,

danke für die ausführlichen Erläuterungen.

Allerdings weiss ich nun immer noch nicht, warum der EA ein Signal generiert mit einem Durchschnitt, der in der Anzeige "kilometerweit" oberhalb des Kurses verläuft.

Auch wenn die Variablen wie von Dir beschrieben vorhanden sind, erklärt mir das noch nicht, warum der EA mit dem Wert 3 (linear weighted) ein Signal erzeugt, wobei der mitgelieferte Indikator "Custom Moving Average" mit dem Wert 3 "weit ausser Sichtweite" ist.

Falls Dein Beitrag meine Frage beantwortet.....dann sorry ;) Dann habe ich es nicht verstanden ;)

Gruß an alle


Andreas

JoeDormann 20.02.15 21:11

Hmm,
vielleicht kannst Du den EA posten?
Gruß Joe

Aktien Andy 20.02.15 22:35

Liste der Anhänge anzeigen (Anzahl: 1)
Ja, hier ist er (ich hab' die mq4 Datei genommen)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:58 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum