[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 143

 
BooGUY:

¡En un fractal! Lo he probado con un stop-loss - es una mierda, me gustaría probarlo con stops en fractales, pero no sé cómo escribirlo en la condición. O cómo escribirlo en un EA, he escrito una condición de entrada, algo así

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}


Dudo por su código que la conversación sea sobre un fractal. algunos precios de apertura y cierre en 4 períodos.
 
BooGUY:

¡En un fractal! Lo he probado con stop-loss - es una mierda, me gustaría probarlo con stops en fractales, pero no sé cómo escribirlo en la condición. O cómo escribirlo en un EA, he escrito una condición de entrada, algo así

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}

Para probar la estrategia, es más fácil para usted encontrar una función de trailing stop por fractales e incluirla en su EA. O puedes escribirlo tú mismo.

La función desplazará el tope de cada posición abierta al fractal necesario establecido en los ajustes. Y entonces, en base a los resultados de la prueba, ya podemos pensar en la conveniencia de utilizar esta red de arrastre, o el cierre de posiciones en el mercado cuando el precio alcanza el nivel fractal. Ninguna de las dos cosas es fácil de hacer.

La función estándar iFractals() le ayudará. Devuelve el precio al que se encuentra el fractal, tal y como se especifica en los parámetros de la función.

 

ayuda por favor, mi indicador mide el movimiento máximo del minuto para la hora actual en un marco de tiempo de una hora, las primeras 6 horas (barras) mide todo adecuadamente, y luego comienza a salir algunos valores ilegales debajo del propio código y el indicador, aconsejar donde me equivoqué, aunque no me importa los valores más allá de 3 barras, pero me temo que los errores pueden ocurrir en la primera barra

#property indicator_separate_window
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_minimum 0
#property indicator_maximum 25
double Buf_0[];             // Объявление массивов (под буферы индикатора)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);         // Назначение массива буферу   
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
int i;                           // Индекс бара       
int Counted_bars;                // Количество просчитанных баров
int m;
int MaxSpeed;
int Speed; 
//--------------------------------------------------------------------   
Counted_bars=IndicatorCounted(); // Количество просчитанных баров    
i=Bars-Counted_bars-1;           // Индекс первого непосчитанного   
while(i>=0)                      // Цикл по непосчитанным барам     
 {
 
 MaxSpeed=0;
 if (Period()==PERIOD_H1)
  {
  m=59;
  while (m>=0)
   {
   Speed=(iOpen(Symbol(),PERIOD_M1,m+60*i)-iClose(Symbol(),PERIOD_M1,m+60*i))/Point;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }
 if (Period()==PERIOD_M1)
  {
  m=0;
  while (m>=0)
   {
   Speed=(iOpen(Symbol(),PERIOD_M1,m+i)-iClose(Symbol(),PERIOD_M1,m+i))/Point;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }      
 Buf_0[i]=MaxSpeed;             // Значение 0 буфера на i-ом баре      
 i--;                          // Расчёт индекса следующего бара     
 }   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Creo que puedo tener algunos errores en la primera barra.
Archivos adjuntos:
speed.mq4  3 kb
 
Montones y montones de MASD Tal vez alguien sepa dónde doblar uno de estos????
 
LazarevDenis:

ayuda por favor, mi indicador mide el movimiento máximo del minuto para la hora actual en un marco de tiempo de una hora, las primeras 6 horas (barras) mide todo adecuadamente, y luego comienza a salir algunos valores ilegales debajo del propio código y el indicador, aconsejar donde me equivoqué, aunque no me importa los valores más allá de 3 barras, pero me temo que los errores pueden ocurrir en la primera barra

originalmente tenía un indicador diferente, lo desarmé y "soldé" mi código


¿Qué querías conseguir?
 

Vinin:

¿Qué querías conseguir?


Quiero que el indicador muestre el valor máximo de iOpen-iClose entre las barras de minutos, pero para la HORA, por ejemplo para una hora de 59 barras de minutos iOpen-iClose = 3 (por ejemplo) y una barra de minutos iOpen-iClose = 10 y en un marco de tiempo de una hora, debe mostrar 10 sin ninguna desviación y necesito que el indicador cierre órdenes, si una tasa de minutos va demasiado rápido en la dirección equivocada, entonces el asesor será una señal para cerrar

Esta es la primera versión y más adelante quiero que sea capaz de detectar hacia dónde va el precio.

 

Si hace clic en un objeto gráfico, por ejemplo una Línea Horizontal, puede ver una "Descripción" en la ventana que se abre.

- ¿Es posible añadir una "Descripción" desde el código?

Gracias.

 
chief2000:

Si hace clic en un objeto gráfico, por ejemplo una Línea Horizontal, puede ver una "Descripción" en la ventana que se abre.

- ¿Es posible añadir una "Descripción" desde el código?

Gracias.

https://docs.mql4.com/ru/objects/ObjectSetText
 

Justo lo que necesitaba. Gracias.

 

LazarevDenis

El recuento inicial es de 59 barras, lo cual es incorrecto. Puede haber huecos en los minutos, y la última barra de horas puede contener menos minutos.

Debe tomar la hora de apertura y cierre de la barra horaria (Hora[i]). Utilice este tiempo para calcular los desplazamientos de los minutos de iBarShift, y luego calcule el máximo dentro de este rango de desplazamientos.

Por cierto, ¿qué debería mostrar el indicador en un periodo de un minuto?

Si el número es positivo el precio va hacia arriba, si el número es negativo - hacia abajo, devolviendo el número módulo mostrará la fuerza del movimiento.