Ayuda a la codificación - página 175

 

hola mladen

1.mencionas la segunda forma, de barras más antiguas a más nuevas, ¿estás diciendo este estilo: for (i=limit;i>=0;i--)?

me temo que estoy confundido, por lo que pido una pequeña aclaración.

2.preguntar también, ¿son ambos estilos(si no se considera repintar o no) básicamente dan las mismas señales o valor numérico?

3. ¿puede un indicador contener ambos estilos de dirección de bucle? como la parte del indicador de núcleo es la segunda forma, pero la parte mtf es el estilo de la primera forma? cualquier contradicción aquí? o todavía puede funcionar sin problemas?

4. la falta de algunas sentencias return(0), (¿es la sentencia return(0) un deber o una necesidad?) ¿será un problema para detener el indicador o causar una repetición? gracias

 
kenwa:
hola mladen

1.usted menciona la segunda forma, de las barras más antiguas a las más nuevas, ¿está diciendo este estilo: for (i=limit;i>=0;i--)?

me temo que estoy confundido, por lo que pido una pequeña aclaración.

2.preguntar también, ¿son ambos estilos(si no se considera repintar o no) básicamente dan las mismas señales o valor numérico?

3. ¿puede un indicador contener ambos estilos de dirección de bucle? como la parte del indicador de núcleo es la segunda forma, pero la parte mtf es el estilo de la primera forma? cualquier contradicción aquí? o todavía puede funcionar sin problemas?

4. la falta de algunas sentencias return(0),(¿es la sentencia return(0) una obligación o una necesidad?) ¿será un problema para detener el indicador o causar el repintado? gracias

1. sí

2. depende del cálculo realizado dentro del bucle - algunos cálculos no se pueden realizar en la forma "de más reciente a más antiguo" mientras que todos los cálculos se pueden realizar en la forma "de más antiguo a más reciente

3. puede, pero véase el punto 2 - la primera forma es mucho más segura

4. return(0) no puede causar o prevenir el repintado - no tiene nada en común con él

 
mladen:
1. si

2. depende del cálculo que se haga dentro del bucle - algunos cálculos no se pueden hacer en la forma "de más nuevo a más viejo" mientras que todos los cálculos se pueden hacer en la forma "de más viejo a más nuevo

3. se puede, pero véase el punto 2 - la primera forma es mucho más segura

4. return(0) no puede causar o prevenir el repintado - no tiene nada en común con él

puedo preguntar i) si la segunda forma puede hacer todos los tipos de cálculo, ¿por qué la segunda forma no es más segura? estoy un poco confundido.

tambien ii) veo el codigo que corrige mi indicador anterior antes esta usando (i=limit;i>=0;i--) la segunda forma que mi principio esta usando el estilo de la primera forma, cualquier razon particular usando el segundo estilo? gracias.

 
kenwa:
puedo preguntar i) si la segunda forma puede hacer todos los tipos de cálculo, ¿por qué no la segunda forma es más segura? estoy un poco confundido. también ii) veo el código que corrige mi indicador anterior antes está usando (i=limit;i>=0;i--) la segunda forma que mi principio uno está utilizando el estilo de la primera forma, cualquier razón particular utilizando el segundo estilo? gracias.

Lo que quería decir es la forma del punto 1. Utiliza esa forma y eliminarás un posible error de una dirección de cálculo errónea

 
mladen:
Lo que quería decir es la forma del punto 1. Utiliza esa forma y eliminarás un posible error de una dirección de cálculo errónea

hola mladen,

si no entiendo mal, quieres decir que la segunda forma puede adaptar todo tipo de cálculo, pero es más segura la primera forma que previene alguna dirección de cálculo errónea?

bien, si mi parte del indicador principal utiliza la segunda forma, y mi parte de mtf utiliza la primera forma, ¿es correcto? o es mejor que ambos tengan la misma forma? (¿la primera forma es mejor?)

¿que forma? ¿primera o segunda forma es mejor eliminar la posibilidad de repintar? gracias por su paciencia responde a mi consulta.

 
kenwa:
hola mladen,

Si no entiendo mal, ¿quieres decir que la segunda forma puede adaptar todo tipo de cálculo, pero es más segura la primera forma que previene alguna dirección de cálculo errónea?

Bien, si mi parte de indicador principal usa la segunda forma, y mi parte de mtf usa la primera forma, ¿está bien? o es mejor que ambos tengan la misma forma? (¿la primera forma es mejor?)

¿que forma? ¿primera o segunda forma es mejor eliminar la posibilidad de repintar? gracias por tu paciencia responde a mi consulta.

kenwa

para aclararlo : esta es la forma mucho mejor

(i=limit;i>=0;i--)

 

Ok & muchas gracias - ¡Reuniré algunos resultados más antes de volver!

jeff

 

Ayúdenme a resolver este problema con respecto a fantail vma

Hola,

Estoy tratando de aprender mql durante los últimos meses. Estaba tratando de crear un EA basado en el indicador Fisher. Pero como sabemos Fisher repinta, me dio un tiempo difícil para crear esa EA. Por eso me desmotivé y me ocupé de mis estudios. Ahora estoy tratando de crear otro EA basado en FANTAIL. Pero estoy enfrentando un problema para traer los valores del indicador a la EA. He utilizado la función iCustom para hacerlo. Este indicador dibuja 50 líneas en el gráfico. Voy a necesitar algunos de los valores de esas líneas.

¿Puede mostrarme una manera de obtener esos valores en un EA? Gracias de antemano. Perdona si estoy haciendo una pregunta estúpida.

El indicador:

Archivos adjuntos:
 

Hola mladen, ¿puedes ayudarme a incluir la supertendencia en este indicador?(Naturalmente, la supertendencia calculada en ExtMapBuffer1)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

 
k3rn3l:
Hola mladen, ¿puedes ayudarme a incluir la supertendencia en este indicador?(Naturalmente, la supertendencia calculada en ExtMapBuffer1)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

¿Cuál es exactamente (por los parámetros que hay que pasar a la función iCustom())?