Funciones útiles de KimIV - página 43

 
Tsyrus писал (а) >>

¡¡¡¡¡ESTO ES TODO!!!!!

>> ¡GRACIAS!

 

Igor, hay un buen indicador que puede combinar varias velas en una. Pero sólo funciona en el gráfico horario. ¿Es posible hacerla universal?

Me gustaría darles las gracias.

 

Función GetNearestDownFractal().

Esta función busca el fractal de fondo más cercano y devuelve su nivel de precio. La peculiaridad de esta función es la posibilidad de establecer una fórmula arbitraria para el fractal. La fórmula fractal estándar, generalmente aceptada, es 2-2. Significa 2 barras a la izquierda y 2 barras a la derecha. Con esta función, puede realizar incluso fractales muy exóticos, como 8-2 (8 barras a la izquierda y 2 a la derecha) o 5-3 (5 barras a la izquierda y 3 a la derecha), etc. La función acepta los siguientes parámetros opcionales:

  • sy - Nombre del instrumento. "" o NULL - símbolo actual. El valor por defecto es NULL.
  • tf - Marco temporal. Valor por defecto 0 - símbolo actual.
  • nl - Número de barras que quedan. El valor por defecto es 2.
  • nr - Número de barras a la derecha. La configuración por defecto es 2.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает ценовой уровень ближайшего нижнего фрактала         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    nl - количество баров слева                                             |
//|    nr - количество баров справа                                            |
//+----------------------------------------------------------------------------+
double GetNearestDownFractal(string sy="0", int tf=0, int nl=2, int nr=2) {
  bool f;
  int  fb, i, nb=-1;

  if (sy=="" || sy=="0") sy=Symbol();
  if (nl<1) nl=1;
  if (nr<1) nr=1;

  fb=nr;
  while (nb<0) {
    fb++;
    f=True;
    for (i=fb; i>fb-nr; i--) {
      if (iLow(sy, tf, i)>iLow(sy, tf, i-1)) { f=False; break; }
    }
    if (f) {
      for (i=fb; i<fb+nl; i++) {
        if (iLow(sy, tf, i)>iLow(sy, tf, i+1)) { f=False; break; }
      }
      if (f) { nb=fb; break; }
    }
  }

  return(iLow(sy, tf, nb));
}
 

Ejemplos de cómo utilizar GetNearestDownFractal().

  • El nivel de precios del fractal inferior más cercano en el gráfico actual. La fórmula fractal es 2-2 (estándar).
    Message(GetNearestDownFractal());
  • El nivel de precios del fractal inferior más cercano en el gráfico H1 del USDCAD. La fórmula fractal es 4-2.
    Message(GetNearestDownFractal("USDCAD", PERIOD_H1, 4));
  • Dibuje una línea horizontal que pase por el nivel de precios del fractal 5-3 más cercano en el gráfico actual.
    double p=GetNearestDownFractal(NULL, 0, 5, 3);
    SetHLine(Red, "", p);

PS. Adjunto un script para probar la función GetNearestDownFractal().

Archivos adjuntos:
 
KimIV писал (а) >>

Ejemplos de cómo utilizar GetNearestDownFractal().

  • El nivel de precios del fractal inferior más cercano en el gráfico actual. La fórmula fractal es 2-2 (estándar).
  • Nivel de precios del fractal inferior más cercano en el gráfico H1 del USDCAD. La fórmula del fractal es 4-2.
  • Dibuje una línea horizontal que pase por el nivel de precios del fractal inferior 5-3 más cercano en el gráfico actual.

PS. Adjunto un script para probar la función GetNearestDownFractal().

¡¡¡Si fuera posible buscar no sólo el último fractal...................UH!!!

 
Tsyrus писал (а) >>

¡¡¡Si fuera posible buscar algo más que el último fractal...................UH!!!

Sí. Por ejemplo, marcar (con una línea vertical) todos los fractales (durante los últimos 9 compases) que tengan un valor >= 1 en relación con la coordenada del fractal recién formado y mostrar este valor encima del fractal. A modo de ayuda (no me atrevo ni a pedirla)....

 

Admiro su capacidad general para escribir estas cosas. Yo mismo soy un cojo, poco parcheado. Recién empiezo a aprender MQL.

Perdón por desviarme del tema.

Todavía no entiendo cómo se escribe:

1. Compare la línea estocástica para 1 y 2 barras y su función de señal cuando aparece una nueva barra 0.

(a grandes rasgos, para evaluar la dirección del movimiento de la línea hacia arriba y hacia abajo y su cruce)

2. Cómo hacerlo cada hora/media hora/15 minutos.

Por favor, muéstrame un ejemplo sencillo.

O dar un enlace a algo similar.

¡¡¡Gracias de antemano, aunque lo ignore!!!

 
Domynus писал (а) >>

1. Comparación de la línea estocástica para 1 y 2 barras y su misma función de señal cuando se forma una nueva barra 0.

(a grandes rasgos, para evaluar la dirección del movimiento de la línea hacia arriba y hacia abajo y su cruce)

2. Cómo hacerlo cada hora/media hora/15 minutos.

Por favor, muéstrame un ejemplo sencillo.

O dar un enlace a algo similar.

https://book.mql4.com/ru/samples/indicators
https://book.mql4.com/ru/build/conditions

 

Gracias por el estocástico.

Pensé que había algo más que podía hacer.

¿Y cómo hacer una operación sólo una vez en un intervalo de tiempo determinado?

(por ejemplo, la investigación de la señal ocurre una vez cada 15, 30 o 60 minutos)

Interesado en la función en sí.

 

Función GetNearestUpFractal().

Esta función busca el fractal ascendente más cercano y devuelve su nivel de precios. La peculiaridad de esta función es la posibilidad de establecer una fórmula arbitraria para el fractal. La fórmula fractal estándar, generalmente aceptada, es 2-2. Significa 2 barras a la izquierda y 2 barras a la derecha. Con esta función, puede realizar incluso fractales muy exóticos, como 8-2 (8 barras a la izquierda y 2 a la derecha) o 5-3 (5 barras a la izquierda y 3 a la derecha), etc. La función acepta los siguientes parámetros opcionales:

  • sy - Nombre del instrumento. "" o NULL - símbolo actual. El valor por defecto es NULL.
  • tf - Marco temporal. Valor por defecto 0 - símbolo actual.
  • nl - Número de barras a la izquierda. El valor por defecto es 2.
  • nr - Número de barras a la derecha. Valor por defecto - 2.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает ближайший верхний фрактал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL - текущий символ)                 |
//|    tf - таймфрейм                  ( 0 - текущий таймфрейм)                |
//|    nl - количество баров слева                                             |
//|    nr - количество баров справа                                            |
//+----------------------------------------------------------------------------+
double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) {
  bool f;
  int  fb, i, nb=-1;

  if (sy=="" || sy=="0") sy=Symbol();
  if (nl<1) nl=1;
  if (nr<1) nr=1;

  fb=nr;
  while (nb<0) {
    fb++;
    f=True;
    for (i=fb; i>fb-nr; i--) {
      if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; }
    }
    if (f) {
      for (i=fb; i<fb+nl; i++) {
        if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; }
      }
      if (f) { nb=fb; break; }
    }
  }

  return(iHigh(sy, tf, nb));
}
Razón de la queja: