ayuda con icustom

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
Avatar de Usuario
Gamelu
Mensajes: 787
Registrado: 21 May 2009 16:49

ayuda con icustom

Mensaje por Gamelu »

Buenas,
Alguien sabe como se pasa una variable con icustom, tengo un indicador con 7 buffers,

Código: Seleccionar todo

extern int ExtDepth=2;
extern int ExtDeviation=50;//pips
extern int ExtBackstep=3;
extern int Sep.Pips = 30;
extern int N.Obj.Price = 20;
//---- indicator buffers
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
double HighLevel[];
double LowLevel[];
double HighOpen[];
double LowOpen[];
Lo que quiero es pasar el HighOpen y LowOpen a un expert, pensaba que con icustom podia pasar el buffer que yo quiera, pero no me sale. Lo estoy haciendo asi:

double valH=iCustom(NULL, 0, "ZigZag",2,50,3,30,20,3,0); //seria en teoria el Highlevel
double valL=iCustom(NULL, 0, "ZigZag",2,50,3,30,20,4,0); //seria en teoria el LowLevel

Me temo que esto no va a funcionar asi, a ver si alguien sabe como funciona
Saludos
Avatar de Usuario
Fer137
Mensajes: 1371
Registrado: 12 Nov 2007 18:43

Re: ayuda con icustom

Mensaje por Fer137 »

Debería funcionar tal como dices. No olvides poner en el init del indicador el IndicatorBuffers(7) y los SetIndexBuffer. Y comprueba con un Print si dentro del indicador esos buffers van bien.
Avatar de Usuario
Gamelu
Mensajes: 787
Registrado: 21 May 2009 16:49

Re: ayuda con icustom

Mensaje por Gamelu »

Código: Seleccionar todo

int init()
  {
   IndicatorBuffers(7);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexStyle(3,DRAW_LINE,STYLE_DOT);
   SetIndexStyle(4,DRAW_LINE,STYLE_DOT);
//---- indicator buffers mapping
   SetIndexBuffer(0,shift);
   SetIndexBuffer(1,HighLevel);
   SetIndexBuffer(2,LowLevel);
   SetIndexBuffer(3,HighOpen);
   SetIndexBuffer(4,LowOpen);
   SetIndexBuffer(5,HighMapBuffer);
   SetIndexBuffer(6,LowMapBuffer);
   
   SetIndexEmptyValue(0,0.0);

//---- indicator short name
   IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
   return(0);
  }
El indicador en si funciona correctamente, lo que no consigo es que me pase el valor que debiera, puede que sea porque al seguir haciendo cálculos, machaque los valores, si me dices que está bien como lo estoy haciendo, tendré que intentar devolver el valor que quiero al buffer al final del indicador, el indicador no lo he hecho yo, por eso que realmente no sé cómo es su completo funcionamiento,
Gracias fer
Avatar de Usuario
Fer137
Mensajes: 1371
Registrado: 12 Nov 2007 18:43

Re: ayuda con icustom

Mensaje por Fer137 »

Lo del iCustom(...) está bien, con los parametros y el indice del buffer (aunque el 3 y el 4 serian el highopen y el lowopen, no los highlevel y lowlevel que decias antes).

Ten tambien en cuenta que esos indicadores zigzag suelen dar 0 en la mayoria de barras, solo dan datos en los vertices. Quizás en esos otros buffers tambien suceda eso (veo que es un indicador hecho a partir del zigzag pero no se que dibujarán los buffers añadidos)
Avatar de Usuario
Gamelu
Mensajes: 787
Registrado: 21 May 2009 16:49

Re: ayuda con icustom

Mensaje por Gamelu »

El highopen y lowopen viene a ser la señal de breakout por arriba o por abajo, seria la señal del zigzag+- la variable de sep.pips, es optimizable lo que vamos a considerar como breakout, creo que no tiene mas misterio.
A ver si me da tiempo a acabarlo, va a ser un EA simple, para el concurso de XTB, no más.
Saludos, me voy a comer que va siendo hora
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”