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

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Indikatoren (http://www.expert-advisor.com/forum/forumdisplay.php?f=24)
-   -   Gleitende Durschnitte der 3. Generation (http://www.expert-advisor.com/forum/showthread.php?t=1576)

numa 03.09.11 23:50

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!

Alexk84 04.09.11 13:01

sehr schön!
 
vielen Dank!

roni 04.09.11 14:08

hast du schon selbst den Indicator ausprobiert?
Warum wird der download als exe angeboten und nicht als reiner indicator z.b.
wen du den indicator selbst ausprobiert hast poste doch den inhalt und den indicator selbst als movingaverage3generation.ex4 und nicht exe

weil bei exe weis man nie was alles noch mit installiert wird.

numa 04.09.11 14:31

Zitat:

Zitat von roni (Beitrag 4889)
Warum wird der download als exe angeboten und nicht als reiner indicator

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.

Peter-R. 02.04.12 20:25

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);
}
//+------------------------------------------------------------------+

Wahrscheinlich ist die Lösung ganz einfach, ich komm einfach nicht drauf warum der nicht rechnen mag.

mfG
Peter

Egoluxe [EA] -Trader 06.04.12 20:59

Zitat:

Zitat von numa (Beitrag 4884)
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!

Und wie kann man mit diesem Indi nun erfolgreich arbeiten?

freundliche Grüße

egoluxe


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