Der perfekte Filter - Seite 4

 

Wenn das der Fall ist, sehen Sie sich meinen Truthahn an, klein und glatt wie ein Babypopo)))))

Nach einem Prinzip, das so einfach ist, dass es beängstigend ist...

Dateien:
vaMA.ex5  8 kb
 
J.B:

Bei einem so einfachen Prinzip ist es beängstigend...

Interessanter Indikator, vielleicht sogar nicht schlechter als JJMA, wie es mir auf den ersten Blick schien, sind die Periodeneinstellungen zu unproportional, aber wenn man ihn aufnimmt, kann man ein recht ähnliches Bild erhalten, und an einigen Stellen ist man an anderen schneller. Aber du hast die Datei wahrscheinlich verwechselt, damit die Leute die Qualität des Gruselprinzips einschätzen konnten:) Sie benötigen eine *.mql5-Datei.

Документация по MQL5: Файловые операции / FileMove
Документация по MQL5: Файловые операции / FileMove
  • www.mql5.com
Файловые операции / FileMove - Документация по MQL5
 
EvMir:

damit die Leute die Qualität des Gruselprinzips schätzen können:) Ich brauche eine *.mql5-Datei.

Ja, ich bin ein bisschen schüchtern... sie lachen über einen Neuling, sie werden sauer(((

 
J.B:

Ich bin ein wenig schüchtern... sie machen sich über einen Neuling lustig, damit ich mich schlecht fühle(((

Das sollten sie nicht, denn es ist ein zu tiefer Fall, um sich von einem unerfahrenen Gelehrten blamieren zu lassen.
 
server:
Das sollten sie nicht, es ist ein zu tiefer Fall, um sich als Anfänger in Ungnade fallen zu lassen.

Okay, ich lasse es darauf ankommen. Der Code ist klein, es gibt nichts, wofür man sich schämen müsste.

//+------------------------------------------------------------------+
//|                                                              vaMA|
//|                                              Copyright 2013,  J.B|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2013, J.B"

#property version   "1.00"

#include <MovingAverages.mqh>

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   1

#property indicator_type1   DRAW_LINE
#property indicator_color1  Blue

input int vaMA_period=15;
input bool use_double_smooth=1;

double vaMA_buffer[],EMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+  
void OnInit()
  {
   SetIndexBuffer(0,vaMA_buffer,INDICATOR_DATA);
   SetIndexBuffer(1,EMA,INDICATOR_CALCULATIONS);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const int begin,const double &price[])
  {

   int first,bar;
   double vel,acc,aaa;

   ExponentialMAOnBuffer(rates_total,prev_calculated,begin,vaMA_period,price,EMA);                                   //Сгененрировать EMA c прайса

   if(rates_total<vaMA_period-1)return(0);                                                                            //
   if(prev_calculated==0)first=vaMA_period-1+begin;                                                                  //Проверка количества данных для цикла                                                                                      //
   else first=prev_calculated-1;                                                                                     //

   for(bar=first; bar<rates_total; bar++)                                                                            //Цикл по массиву баров
     {
      vel = EMA[bar]-EMA[bar-vaMA_period/4];                                                                         //Приращение между барами
      acc = EMA[bar]-2*EMA[bar-vaMA_period/4]+EMA[bar-vaMA_period/8];                                                //Приращение приращения между барами
      aaa = EMA[bar]-3*EMA[bar-vaMA_period/4]+3*EMA[bar-vaMA_period/8]-EMA[bar-vaMA_period/12];                      //Приращение приращения приращения...                                                                                         
      vaMA_buffer[bar] = EMA[bar]+vel+acc/2+aaa/6;                                                                   //Алхимический микс
     }
     
   if(use_double_smooth)  
   ExponentialMAOnBuffer(rates_total,prev_calculated,begin,vaMA_period/4,vaMA_buffer,vaMA_buffer);                   //Повторное EMA сглаживание


   return(rates_total);
  }
 
J.B:

Ich bin ein wenig schüchtern... sie machen sich über einen Neuling lustig, damit ich mich schlecht fühle(((

Das glaube ich nicht. Sie können eine Menge konstruktive Kritik bekommen, ja. Das ist auch gut so. Coda.
 

Ich wollte dies als eine Funktion aus einem Array a la"ExponentialMAOnBuffer" in einer separaten Bibliotheksdatei tun, aber es war nicht so einfach für mich(((

 

Die Idee ist, die EMA durch "Ableitungen" mit Koeffizienten ala Taylor-Zerlegung zu kompensieren ... Technisch einfach, aber recht plausibel im Vergleich zu der nicht-trivialen JJMA, die als die beste gilt.

 

Farbige Version.


Dateien:
vaMAColor.mq5  5 kb
 

Guter Filter, ich stimme zu. Die Idee ist prägnant und effektiv. Die Verschiebung durch Impulse ist ein bekanntes Thema, aber die Verschiebung durch Inkremente höherer Ordnung habe ich noch nicht gesehen.

Trotzdem müssen wir in flachen Gebieten (adaptiv) die Glättungsperiode erhöhen, um viele falsche Signale zu vermeiden. Das heißt, Sie werden es nicht so leicht vermeiden können:) Machen Sie ZZ an den Stellen, an denen sich die Farbe ändert, und Sie werden sehen, wie ein einfacher TS mit einem solchen Filter funktionieren würde.