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 |
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 ); |
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 |
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 |
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 |
Hmm,
vielleicht kannst Du den EA posten? Gruß Joe |
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