|
Indikatoren Indikatoren für Metatrader 4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Gleitende Durschnitte der 3. Generation
Hallo,
Dr. M. Dürschner hat in einem sehr interessanten Artikel einen neuen Ansatz gezeigt um die Verzögerung (den Lag) bei gleitenden Durschnitten auf das theoretische Minimum zu reduzieren (bei gleicher Glättung). Die Arbeit würde als beste Forschungsarbeit 2011 vom VTAD ausgezeichnet (Paper: Gleitende Durchschnitte 3.0 (Moving Averages 3.0) | vtad). Eine kostenlose Implementierung dieser Moving Averages der 3. Generation gibt es nun auch für MetaTrader 4 zu download hier Download Indikator: Gleitende Durschnitte der 3. Generation Bei Fragen stehe ich gerne zur Verfügung! |
|
|||
sehr schön!
vielen Dank!
|
|
|||
Das ist ein simples Installprogramm, wie bei den Millionen Programmen die es gibt auch. Klar könnte jemand InstallShields Installprogramm so hacken das irgendwas passiert, aber das dürfte ein unverhältnismäßig großer Aufwand sein. Kannst es ja in einer VirtualBox testen und dann Dich dann selbst davon überzeugen das alles 100% ok ist.
Der Vorteil von einem Install-Programm ist das jegliches Rumkopieren der MetaTrader Files, Libraries etc. wegfällt. Es ist also dazu da die Bequemlichkeit und den Komfort zu erhöhen. Wenn Du an dem Source interessiert bist, dann schau einfach in die Referenzen auf der Download Seite von Scientific-Trading.com . Dort findest du die gesamten Infos inklusive aller mathematischen Formel, die mit dem ersten Preis ausgezeichnete Arbeit von Dr. Dürschner, die mathematische Herleitung und auch eine empirsche Evaluierung der gleitenden Durschnitte der 3. Generation. |
|
|||
Hallo,
Ich habe vor mir einen Indikator zu programmieren der mir die Differenz des MA von der aktuellen Candle zur vorherigen Candle anzeigt, d. h. bei steigenden Preis ist der Wert über 0, bei fallenden Preis der Wert unter 0. Das geschieht folgendermaßen: Vom aktuellen Preis wird der MA1 (für die aktuelle Candle) und der MA1_v (vorherige Candle) berechnet. Auf den MA1 wird nochmal ein gleitender Durchschnitt berechnet, ergibt den MA2 (aktueller und vorheriger), dann entsprechend der Arbeit von Dürschner den MA3 ermitteln. Alle Werte für die MA´s werden in Arrays gespeichert. Beim Berechnen der Differenz zieht man vom aktuellen MA3 einfach den vorherigen MA3 ab und erhält dadurch die Differenz welche aussagt wohin der Trend geht. Irgendwo ist aber was falsch, ich bekomme nur den aktuellen MA3 im Fenster angezeigt. Code:
//+------------------------------------------------------------------+ //| Raten - Änderung basierend auf | //| Moving Average 3. Generation | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, DI (FH) Peter R*****" #property link "/" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- indicator parameters extern int Periode_1 = 30; extern int Periode_2 = 12; extern int MA_Methode = 3; //0=SMA, 1=EMA, 2=SMMA, 3=LWMA extern int MA_Preis = 0; // 0=PRICE_CLOSE, 1=PRICE_OPEN, 2=PRICE_HIGH, 3=PRICE_LOW, 4=PRICE_MEDIAN, 5=PRICE_TYPICAL, 6=PRICE_WEIGHTED //---- indicator buffers double MA1[]; double MA2[]; double MA1_v[]; double MA2_v[]; double MA3[]; double MA3_v[]; double Diff[]; //---- Variablen zur Berechnung double Lambda, Alpha; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int draw_begin; string short_name; //-------------------------------------------------------------------- IndicatorBuffers(7); //---- Indukator Aussehen SetIndexStyle(6, DRAW_LINE); IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS)); //--------------------------------------------------------------------- draw_begin = Periode_1 - 1; //---- indicator short name switch(MA_Methode) { case 1: short_name="Diff_EMA("; draw_begin=0; break; case 2: short_name="Diff_SMMA("; break; case 3: short_name="Diff_LW("; break; default: MA_Methode = 0; short_name = "Diff_SMA("; } IndicatorShortName(short_name + Periode_1 + ")"); SetIndexDrawBegin(6, draw_begin); //---- indicator buffers mapping SetIndexBuffer(0, MA1); SetIndexBuffer(1, MA1_v); SetIndexBuffer(2, MA2); SetIndexBuffer(3, MA3); SetIndexBuffer(4, MA2_v); SetIndexBuffer(5, MA3_v); SetIndexBuffer(6, Diff); //---- Berechnung Lambda, Alpha Lambda = Periode_1 / Periode_2; Alpha = Lambda * (Periode_1 - 1) / (Periode_2 - Lambda); Print("Lambda = ", Lambda, "; Alpha = ", Alpha); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Berechnung des MA 3. Generation nach Dürschner | //+------------------------------------------------------------------+ int start() { int i; if (Periode_1 * 2 < Periode_2) { Print("Periode_1 should be >= Periode_2 * 2."); return(-1); } if (Bars <= Periode_1) return(0); int ExtCountedBars = IndicatorCounted(); //---------------------------------------------------------------------------- if (ExtCountedBars < 0) return(-1); if (ExtCountedBars > 0) ExtCountedBars--; if (ExtCountedBars < Periode_1) ExtCountedBars = Periode_1; //----------------------------------------------------------------------------- for (i = Bars - ExtCountedBars - 1; i >= 0; i--) { MA1[i] = iMA(NULL, 0, Periode_1, 0, MA_Methode, MA_Preis, i); MA1_v[i] = iMA(NULL, 0, Periode_1, 0, MA_Methode, MA_Preis, i + 1); } for (i = Bars - ExtCountedBars - 1; i >= 0; i--) { MA2[i] = iMAOnArray(MA1, 0, Periode_2, 0, MA_Methode, i); MA3[i] = (Alpha + 1) * MA1[i] - Alpha * MA2[i]; } for (i = Bars - ExtCountedBars - 1; i >= 0; i--) { MA2_v[i] = iMAOnArray(MA1_v, 0, Periode_2, 0, MA_Methode, i + 1); MA3_v[i] = (Alpha + 1) * MA1_v[i] - Alpha * MA2_v[i]; } //----------------------------------------------------------------------------- while(i>=0) { Diff[i] = MA3[i] - MA3_v[i]; i--; } //----------------------------------------------------------------------------- //---- done return(0); } //+------------------------------------------------------------------+ mfG Peter |
|
|||
Zitat:
freundliche Grüße egoluxe |
Lesezeichen |
Stichworte |
dr. m. dürschner, gleitende durchschnitte 3.0, gleitende durschnitte der 3. generation, moving average, moving averages 3.0, nyquist-shannon, scientific-trading.com, signal theorie |
|
|