El filtro perfecto - página 4

 

Si ese es el caso, mira mi pavo, pequeño y suave como el trasero de un bebé)))))

En un principio tan simple que da miedo...

Archivos adjuntos:
vaMA.ex5  8 kb
 
J.B:

En un principio tan simple da miedo...

Interesante indicador, tal vez incluso no inferior a JJMA, como me pareció a primera vista, los ajustes de periodo son demasiado desproporcionados, pero si lo recoges puedes obtener una imagen bastante similar, y en algunos lugares uno es más rápido en otros. Pero usted ha mezclado el archivo más probable, para que la gente pudiera estimar la calidad del principio de miedo:) Necesitas un archivo *.mql5.

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

para que la gente pueda apreciar la calidad del principio del miedo:) Necesito un archivo *.mql5.

Sí, soy un poco tímido... se ríen de un recién llegado, se cabrean(((

 
J.B:

Soy un poco tímido... se burlan de un recién llegado, me hacen sentir mal(((

No deberían, es una caída demasiado baja para permitirse avergonzar por un becario novato.
 
server:
No deberían, es una caída demasiado baja como para permitirse la desgracia de un erudito novato.

De acuerdo, me arriesgaré. El código es pequeño, no hay nada de qué avergonzarse.

//+------------------------------------------------------------------+
//|                                                              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:

Soy un poco tímido... se burlan de un recién llegado, me hacen sentir mal(((

No lo creo. Pueden recibir muchas críticas constructivas, sí. Es lo mejor. Coda.
 

Quería hacer esto como una función de una matriz a la"ExponentialMAOnBuffer" en un archivo de biblioteca independiente, pero no era tan fácil para mí(((

 

Laidea es compensar la EMA con "derivadas" con coeficientes al estilo de la descomposición de Taylor... Técnicamente simple, pero bastante plausible en relación con la JJMAno trivial , que se considera la mejor.

 

Versión en color.


Archivos adjuntos:
vaMAColor.mq5  5 kb
 

Buen filtro, lo apruebo. La idea es concisa y eficaz. El cambio por impulso es un tema conocido, pero por incrementos de orden superior, no lo he visto.

Pero de todos modos tendremos que (adaptativamente) en las zonas planas, aumentar el período de suavizado allí para evitar muchas señales erróneas. Es decir, no podrá evitarlo tan fácilmente:) Haz ZZ en los puntos en los que cambia el color y verás cómo funcionaría un simple TS con dicho filtro.

Razón de la queja: