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)
-   -   ist das ein iMAOnArray? (http://www.expert-advisor.com/forum/showthread.php?t=6633)

AVT 17.04.20 21:07

ist das ein iMAOnArray?
 
Situation:
Ich habe ein Unterfenster mit einem Indi z.B. Momentum.
Nun ziehe ich einen Moving Average (Tendenz - Moving Average) auf das Unterfenster.
Unter "Anwenden auf" habe ich die letzten beiden Punkte:
1. Previous Indicator Data
2. First Indicator Data
Frage: Was ist das programmiertechnisch? iMAOnArray?
Und was ist dann der Unterschied zwischen 1. und 2.? Der Shiftvalue?

Ich bin davon ausgegangen, daß es sich tatsächlich um ein iMAOnArray handelt, und versuche gerade, den mit in einem Indikator unterzubringen. Bisher aber ohne Erfolg, also muß ich erst mal die Annahme überprüfen.
Danke. AVT

AVT 18.04.20 12:08

weightsum Wert für SmoothedMAOnBuffer
 
So einfach mit iMAOnArray geht das nicht.
Ich habe #include <MovingAverages.mqh> genommen und je nachdem welcher SMA/EMA/SMMA gewünscht wird, die entsprechende xxMAOnBuffer verwendet. Für diese 3 ist das Ergebnis identisch. :)

Fehlt noch der LWMA - der verlangt aber als Argument die weightsum.
Wenn ich einen normalen (Custom Moving Avarage) auf den Chart ziehe, dann fragt er doch auch nicht als Eingabe danach, also ist das doch was, was intern aus den Benutzerangaben berechnet wird.
Wie komme ich jetzt an diesen Wert :confused: AVT

AVT 18.04.20 14:10

völlig verwirrende Doks
 
Da geht aber einiges durcheinander bei den MT Doks und Hilfen.
1. interne MT4 Hilfe: gar kein Index
2. Include\MovingAverages.mqh:
Code:

int LinearWeightedMAOnBuffer(const int rates_total,
                              const int prev_calculated,
                              const int begin,
                              const int period,
                              const double& price[],
                              double& buffer[],
                              int &weightsum)

3. https://www.mql5.com/de/articles/127
Code:

...
case MODE_SMMA: 
  SmoothedMAOnBuffer(rates_total,
                      prev_calculated,
                      begin2,
                      sp,
                      TSIBuffer,
                      TSISigBuffer);//nix

4. https://www.mql5.com/de/code/77 verweist auf 5. Beispiele
Code:

int LinearWeightedMAOnBuffer(const int rates_total,
                              const int prev_calculated,
                              const int begin,
                              const int period,
                              const double& price[],
                              double& buffer[])//nix

5. https://www.mql5.com/en/articles/10
sagt nur: LinearWeightedMAOnBuffer() - fills out the output array buffer[] by values of a linear weighted average from the price[] array, aber arbeitet mit anderen OnBuffer Beispielen.

Im Source-Code* vom afl_winner.mq5 habe ich dann folgendes gefunden:
Code:

int w1; // global intern
// === in OnCalculate
LinearWeightedMAOnBuffer(rates_total,
                        prev_calculated,
                        0,
                        average,
                        rsv,
                        pak,
                        w1);

* https://www.mql5.com/en/code/1492 (Спасибо, Андрей!)

Ist mir zwar völlig unklar, was hier wie warum funktionieren kann (und eigentlich hasse ich es, Code zu übernehmen, den ich nicht verstehe), aber nun ist auch der identisch zum Vergleichsfenster (mit reingezogenem Moving Average).
Puhhh, schwierige Geburt - :D !! AVT

traderdoc 19.04.20 11:12

Ja die Doku zu iMAOnArray() ist katastrophal
und ich glaube auch die Funktion ist fehlerhaft.
Habe deshalb im Endeffekt alles zu Fuß programmiert.

traderdoc

AVT 20.04.20 19:24

Zitat:

Zitat von traderdoc (Beitrag 43538)
.. ich glaube auch die Funktion ist fehlerhaft.
Habe deshalb im Endeffekt alles zu Fuß programmiert.

Neee :eek::eek:. Das bedeutet dann doch auch, daß der MT beim Ziehen eines MAs auf ein Unterfenster diesen MA selber falsch berechnet; mein Ergebnis für einen im Indikator eingebauten MA hat jetzt haargenau dieselben Werte wie wenn ich die beiden getrennt von Hand auf den Chart lege.
Verstehe ich Dich da richtig, daß es besser ist, mir im Indikator selber ne Funktion zu schreiben, die diese Berechnung macht anstatt in #include zu benutzen?
Danke Dir. AVT

traderdoc 20.04.20 20:11

Na ja, der iMAOnArray() macht doch nichts anderes als eben einen
MA über einen z.B. RSI legen, d.h. der RSI wird als Basis genommen und darauf und nicht wie gewöhnlich auf Kurse, wird der MA gelegt - fertig.

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:10 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