Página 1 de 1

Indicador YsNewton

Publicado: 16 Sep 2009 18:11
por YsEkU
Saludos hermanos, cuanto tiempo...

Antes que nada pedir disculpas a los foreros que me mandaron privados, y que no he contestado, llevo tiempo sin logearme.

En fin, os dejo un indicador basado en interpolaciones polinomicas de los precios de apertura, cierre, maxima y minima.
El resultado es una especie de Heiken-Ashi mas suavizado y mas certero, que podeis usar o bien para encontrar puntos de entrada-salida. o bien para clarificar la tendencia en un marco temporal superior.
Como una imagen vale mas que mil palabras, os dejo la misma y el indicador.

Espero comentarios. ;-)
Un saludo hermanos.

Publicado: 17 Sep 2009 00:02
por Amosis
Hola YsEcU.

Encantado de verte de nuevo por aquí.

¿Que tal el trading ...?

Algo debe funcionar mal en ese indicador, pues se me bloquea el Meta
cuando lo inserto.

Muchos saludos.

Publicado: 20 Sep 2009 12:54
por YsEkU
Saludos Hermano.
No se, a mi me va de lujo...
Te dejo el codigo...

Código: Seleccionar todo

//+------------------------------------------------------------------+
//|                                                     YsNewton.mq4 |
//|                      Copyright © 2008, Yseku. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "YsEkU"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 White
#property indicator_color4 White

//---- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];

int nodos=10;
int x[],pase;
double fx[],buff[],pre;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Buffer1);
   SetIndexStyle(0,DRAW_HISTOGRAM,2,3);
   SetIndexLabel(0,"Prediccion Open");
   //SetIndexShift(0,1);
   SetIndexBuffer(1,Buffer2);
   SetIndexStyle(1,DRAW_HISTOGRAM,2,3);
   SetIndexLabel(1,"Prediccion Close");
   //SetIndexShift(1,1);
   SetIndexBuffer(2,Buffer3);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(2,"Prediccion Max");
   //SetIndexShift(2,1);
   SetIndexBuffer(3,Buffer4);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexLabel(3,"Prediccion Min");
   //SetIndexShift(3,1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
  int cb=IndicatorCounted();
  int b=Bars;
  if(cb==0)
  {
  for(int h=(b-1)-nodos;h>=0;h--)
   {
   Buffer1[h]=Proceso(1,h);
   Buffer2[h]=Proceso(2,h);
   Buffer3[h]=Proceso(3,h);
   Buffer4[h]=Proceso(4,h);
   }
  }
   Buffer1[0]=Proceso(1,0);
   Buffer2[0]=Proceso(2,0);
   Buffer3[0]=Proceso(3,0);
   Buffer4[0]=Proceso(4,0);
   
//----
   Info();
   return(0);
  }
  
//+------------------------------------------------------------------+
void Info()
{
//Print("------------------------------------------------------------");
//Print("********************  Prediccion: ",Buffer1[0]);
}

//+------------------------------------------------------------------+
double Proceso(int serie,int pos)
{
ArrayResize(x,nodos);
ArrayResize(fx,nodos);
ArrayResize(buff,nodos);
pase=0;
   while(pase<nodos)
   {
   if(pase==0)
      {
      for(int i=0;i<nodos-pase;i++)
         {
         x[i]=i+1;
            if(serie==1)buff[i]=Open[i+pos]*10000000000000000000000000000000;
            else if(serie==2)buff[i]=Close[i+pos]*10000000000000000000000000000000;
            else if(serie==3)buff[i]=High[i+pos]*10000000000000000000000000000000;
            else if(serie==4)buff[i]=Low[i+pos]*10000000000000000000000000000000;
         }
      fx[pase]=buff[0];
      }
   else
      {
      for(i=0;i<nodos-pase;i++)
         {
         buff[i]=(buff[i]-buff[i+1])/pase;
         }
      fx[pase]=buff[0];
      }
   pase++;
   }
   int h=-1;
   for(i=0;i<nodos;i++)
      {
      int j=i/2;
      if(h==j)fx[i]=-fx[i];
      if(h!=j)h=j;
      pre=pre+fx[i];
      }
   pre=pre/10000000000000000000000000000000;
return(pre);
}
 
Un saludo hermanos.

Publicado: 20 Sep 2009 22:02
por X-Trader
Yseku, bienvenido al Foro de nuevo hermano!!! Como va la cosa por el Santander? En cuanto saque tiempo me estudio el indicador con calma.

Abrazos,
X-Trader

Publicado: 21 Sep 2009 04:52
por ledzep
Super el indicador, no te imaginas lo útil que me resultó. Gracias.

Publicado: 21 Sep 2009 11:19
por YsEkU
Saludos Alberto un abrazo virtual jeje, que tal X-trader Jr.? seguro que se saca ya mas pips que yo....

Estube en el ISBAN como un año programando en COBOL y despues en Seguros Pelayo... Ahora estoy mas parado que un avion de marmol, sigo con la ingenieria informatica en la UNED, y aunque no tengo sueldo vuelvo a tener tiempo libre (hay que ver el lado bueno no?) ...
Asi que ya sabeis magnates, si buscais un programador muy freak aqui me teneis jejeje...

Ledzep, cuanto tiempo hermano!. Me alegro que te guste el indicador para eso está... jejeje, ahora estaba intentando con ese indicador hacer un EA basado en curvas de Elliot, el objetivo es buscar el patron 123-A... pero lo tengo algo parado... pilla el testigo jejeje

Un saludo hermanos.

Publicado: 21 Sep 2009 16:49
por elcctrro
Un saludo YsEkU, una alegria ver gente que programa sin limitaciones (muy bueno lo de redes neuronales).