Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1163

 
el índice de la barra y lo tomo para determinar el tiempo de la barra. Aparentemente tenemos que profundizar aquí, yendo a los segundos en el tiempo de formación de la barra
 
Evgeniy Butakov:
Tomo el índice de barra para determinar el tiempo de la barra. Aparentemente, tenemos que profundizar aquí, para pasar a los segundos en tiempo de formación de barras

Lea atentamente la documentación. Preste atención a las sobrecargas de funciones.

¿Por qué se toma el número de barras de vez en cuando? Te escribo de vez en cuando.

int  CopyRates( 
   string           symbol_name,       // имя символа 
   ENUM_TIMEFRAMES  timeframe,         // период 
   datetime         start_time,        // с какой даты 
   datetime         stop_time,         // по какую дату 
   MqlRates         rates_array[]      // массив, куда будут скопированы данные 
   );

De qué fecha a qué fecha, no sólo fecha, sino fecha_tiempo. Por lo tanto, tome desde la hora de apertura de la barra menos 2*PeriodSeconds(PERIOD_M15) hasta la hora de la siguiente barra H4

 
Alexey Viktorov:

Lea atentamente la documentación. Preste atención a las sobrecargas de funciones.

¿Por qué se toma el número de barras de vez en cuando? Te escribo de vez en cuando.

De qué fecha a qué fecha, no sólo fecha, sino fecha_tiempo. Debe tomar desde la hora de apertura de la barra menos 2*PeriodSeconds(PERIOD_M15) hasta la hora de la siguiente barra H4

Ya le he cogido el tranquillo... He convertido el tiempo necesario "desde qué fecha" y "hasta qué fecha" a segundos y lo estoy siguiendo... ¿Y por qué exactamente 2*PeriodSeconds(PERIOD_M15)? 900 segundos son suficientes para mí, es decir, una barra en M15. ¡¡¡Muchas gracias!!!

 
Evgeniy Butakov:

Lo he descubierto... He convertido el tiempo requerido "desde qué fecha" y "hasta qué fecha" a segundos y me bailan... ¿Y por qué exactamente 2*PeriodSeconds(PERIOD_M15)? 900 segundos son suficientes para mí, es decir, una barra en M15. ¡¡¡Muchas gracias!!!

Sobre la base de este deseo

Evgeniy Butakov:

¡Buenas tardes!

Por segunda vez con mi tarea de calcular dentro de la barra de marco superior (H4) a expensas de las barras de la inferior. He entendido cómo obtener los datos en M15 en la barra de H4. Pero me quedé atascado en este punto. Por ejemplo, recojo los datos del M15 TF en la tercera vela H4 y como resultado proceso las 16 velas dentro de la tercera barra. Pero, ¿cómo hago para obtener algunas barras más en M15 además de esas 16, porque ya serán de la 4ª vela en H4? Por favor, guíame, dame una pista.

Para recuperar los datos de M15 utiliza el siguiente código:

Si necesitas una barra, no la multipliques y ya está.

Y otro consejo gratuito: renuncia a los segundos. Lo que es más claro cuando se lee el código de otra persona o el propio después de algún tiempo 1800 o 2*PeriodSeconds(PERIOD_M15) que significa 2 barras de periodo M15 expresado en segundos. ¿Y qué será una semana o un mes en segundos? ¿Debo recalcular cada vez o atascar mis células de memoria con información innecesaria?

 
Alexey Viktorov:

Basado en este deseo.

Si necesitas una barra, no la multipliques y ya está.

Y un consejo más, gratis: prescinde de los segundos. Lo que es más claro cuando se lee el código de otra persona o el propio después de algún tiempo 1800 o 2*PeriodSeconds(PERIOD_M15) que significa 2 barras de periodo M15 expresado en segundos. ¿Y qué será una semana o un mes en segundos? ¿Debo recalcular cada vez o atascar mis células de memoria con información innecesaria?

Sí, Alexey, gracias por la orientación y la dirección. Me olvidé por completo de la función PeriodSeconds ;).
 
int file = FileOpen("expert_file", FILE_WRITE | FILE_BIN);
   if (file != INVALID_HANDLE){
      uint file_bytes = FileWriteArray(file, file_data);
      FileClose(file);
      Print("Bytes count: ", file_bytes);
      Print("Error: ", GetLastError());
   } else{
      return false;  
   }    

Intentando escribir un array de bytes en un archivo.

Registro

El propio archivo.

Es decir, el programa devuelve que ha escrito 186368 bytes en el archivo, pero el propio archivo está completamente vacío. Y no hay ningún error.

 

Hola.

Hay un problema. Se ha hecho un depósito de, digamos, 1k en una cuenta de corretaje. Luego, este depósito se reponía con 5k más. Como resultado en el informe de la "historia" de MT5 el 1k inicial se muestra como un depósito y la reposición se muestra como un beneficio, y naturalmente todos los resultados de las operaciones van por encima.


Pregunta: ¿Puedo establecer manualmente el tamaño del saldo inicial de las operaciones, a partir del cual debe calcular el beneficio?


Gracias de antemano ^^

 
MQL_User:

¿Hay alguna forma de determinar a partir del OnChartEvent si se ha pulsado una tecla en el teclado cuando el ratón ha hecho clic en el gráfico?

Hay una función llamada GetAsyncKeyState. ¿Se puede utilizar en el código?

Intenté una construcción de este tipo:

#importar "user32.dll"
int GetAsyncKeyState(int a0);
#importar

printf("--"+(GetAsyncKeyState(88));

Pero la carga de la DLL no está permitida.

He marcado la casilla "Permitir la importación de DLL" al principio. No ayudó.
 
Tal vez me equivoque de hilo. ¡¡¡Que los dioses me perdonen Mcl!!! Necesito escribir un indicador, que daría una señal de una combinación de cuatro o cinco indicadores.Establecer en el sótano.Tal vez hay una plantilla. ¡¡¡¡¡¡¡¡¡¡O un asesor preparado.Posible consejo por favor!!!!!!!!!!
 
¿Cómo puedo añadir un asesor experto a una carpeta mql5 y que se muestre en la sección de asesores?
Razón de la queja: