10$ para actualizar el indicador - página 6

 
Svinozavr >>:
Ну набросал я индикатор по SMA. Вообще-то, что весовая часть дробной части приходится на старший бар, логично. Отсчитываем-то назад, в историю.
Вот картинка. красный - SMA(4), синий - SMA(3.5), зеленый - SMA(4.5):

Индюк прикреплен, и вот код:

¡Eso es genial!
Y no 200 líneas de código...
;)

 
Por cierto, han estado observando las SMA con periodos de 1,1, 1,2, etc. Es curioso.
En resumen, es muy divertido. Creo que no tiene -IMHO- ninguna aplicación práctica, pero como actualización del oxímoron "un simple deslizamiento con un punto fraccionario")) servirá. Hay algo de fábula zen en ella ("Da una palmada", etc. ))))
===
Alexey debería poner este tema en la rama de tareas no relacionadas con el comercio inicialmente)).
 
Y la puerta estaba abierta...
 
grell >>:
А ларчик просто открывался...

Sí... Esa no es la cuestión. Es que como persona puramente práctica, nunca se me ocurrió abrir este cofre. Tengo suficientes cajas propias, incluso diría que cajas de Pandora)).
===
¿Lo pongo en la base? ¿O es mejor no avergonzarse de las baratijas?))

 
//+------------------------------------------------------------------+
//|                                                          kMa.mq4 |
//|                                                            Grell |
//|                                                dwgrell@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Grell"
#property link      "dwgrell@gmail.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 Green
extern int    per1=3;
extern double perk=3.7;
extern int    per2=4;
double Buffer1[];
double Bufferk[];
double Buffer2[];
int init()
  {
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buffer1);
  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Bufferk);
  SetIndexStyle(2,DRAW_LINE);
  SetIndexBuffer(2,Buffer2);
  return(0);
  }
int deinit()
  {
  return(0);
  }
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   double a1=perk-MathFloor(perk);
   double a2=MathCeil(perk)-perk;
   for(int i=0; i<limit; i++)
     {
     Buffer1[i]=iMA(NULL,0,per1,0,0,0,i);
     Buffer2[i]=iMA(NULL,0,per2,0,0,0,i);
     Bufferk[i]=a1*iMA(NULL,0,per2,0,0,0,i)+a2*iMA(NULL,0,per1,0,0,0,i);
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
La cabeza funciona, pero no de la manera correcta.
 
grell >>:
Голова работает, но не в том ключе.

Entonces, sigamos con ello. ;)

Los que quedan son.

2. para la ponderación lineal
3. ¿para el exponencial?
 
Siéntate "5" - la cagada se defiende. Sigue existiendo la opción 4, pero es la misma que las dos anteriores.
 
grell >>:
Садись "5" - подъеб защитан. Остался 4 вариант, но решается также как и предыдущие 2.
¿Una combinación lineal para un exponente?
:о)
 
avatara >>:

Тогда продолжим. ;)

Остались -

¿Por qué para un exponencial? Tiene un período "fraccionario" desde el principio, que no tiene - sólo tiene coeficientes de retroalimentación. Así es como MT hizo que la EMA no sea fraccionaria. Tal como está, siempre ha tenido un parámetro fraccionario. Recalcule este coeficiente a partir del periodo fraccionario y ya está. k=2,0/(1+periodo);
Bueno, el resto de los estándares ya están hechos.