Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 539

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

comp, 2016.03.23 09:49

¿Cómo puedo saber el período del gráfico por ChartID?ChartGetInteger no permite hacer esto en una sola acción.

Hasta ahora he llegado a una solución de muleta guardando una plantilla y analizando el punto en ella.

¿Cómo se puede saber con normalidad?

UtilizarChartPeriod

ChartPeriod

Devuelve el valordel período del gráfico especificado.

ENUM_TIMEFRAMESChartPeriod(
longchart_id=0// ID del gráfico
);

Parámetros

chart_id=0

[ID de la carta. 0 significa el gráfico actual.

Valor devuelto

Valor del tipoENUM_TIMEFRAMES. Si no hay gráfico, se devuelve 0.

 
Karputov Vladimir:

UtilizarChartPeriod

Gracias.
 

¡Buenas tardes!

¿Cómo se puede determinar el estado del panel de operaciones con un solo clic (desplegado o colapsado)?

 
Dígame cómo buscar preguntas sobre el tema correcto en este hilo para principiantes. El hilo ha crecido hasta convertirse en una enorme capa de preguntas y respuestas, por lo que ya no es posible buscar manualmente. Si ya ha dudado en hacer una pregunta, es posible que ya haya sido respondida aquí hace tiempo, pero la búsqueda se hace en todo el sitio y no en esta sección particular "para principiantes" ?
 
Alexander:
Dígame cómo buscar preguntas sobre el tema correcto en este hilo para principiantes. El hilo ha crecido hasta convertirse en una enorme capa de preguntas y respuestas, por lo que la búsqueda manual ya no es posible. Hacer una pregunta ya vacila, tal vez ya ha sido contestada aquí hace mucho tiempo, y la búsqueda se hace en todo el sitio y no en esta sección particular "para principiantes" ?

Escriba en una búsqueda en Google: search site:https://www.mql5.com/ru/forum/6343

"Buscar" es lo que estás buscando.

 
Pregunta sobre el lenguaje µl4 - ¿Por qué la función"crear objeto" no funciona durante la optimización, cuando se utiliza un objeto para almacenar datos de varias variables, resulta ser 20 veces más rápida que cuando se utiliza la función openfail->failride->failclose, que ralentiza mucho la optimización y las pruebas?
 

¡Buenas tardes!

No consigo averiguar cómo procesar las barras durante dos horas, digamos de las 15 a las 17 horas, hora del servidor, para las últimas 250 sesiones de negociación.

¿Podría darme una sugerencia conceptual?

mql5

 
Stairway_2_7:

¡Buenas tardes!

No consigo averiguar cómo procesar las barras durante dos horas, digamos de las 15 a las 17 horas, hora del servidor, para las últimas 250 sesiones de negociación.

¿Podría darme una sugerencia conceptual?

mql5

Utilizar las funciones con consulta de tiempo

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

Sergey,

Gracias por la respuesta.

Para mi tarea es más conveniente

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00");

datetime stop =StringToTime("2016.03.25 15:55");

MqlRates rates[];

ArraySetAsSeries(rates,true);

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(copiado>0)

{

Print("Barras copiadas: "+copiado);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d";

de la cuerda;

int size=fmin(copiado,10);

for(int i=0;i<tamaño;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

tasas[i].altas,

tasas[i].baja,

rates[i].close,

rates[i].tick_volume);

Imprimir(out);

}

}

else Print("Fallo en la obtención de datos históricos del símbolo ",Symbol());

}

¿Cómo puedo eliminar los sábados y domingos?

Más concretamente, ¿hacer una operación similar para los últimos, digamos, 250 días de cotización?

 
Stairway_2_7:

Sergey,

Gracias por la respuesta.

Para mi tarea es más conveniente

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00");

datetime stop =StringToTime("2016.03.25 15:55");

MqlRates rates[];

ArraySetAsSeries(rates,true);

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(copiado>0)

{

Print("Barras copiadas: "+copiado);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d";

de la cuerda;

int size=fmin(copiado,10);

for(int i=0;i<tamaño;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

tasas[i].altas,

tasas[i].baja,

rates[i].close,

rates[i].tick_volume);

Imprimir(out);

}

}

else Print("Fallo en la obtención de datos históricos del símbolo ",Symbol());

}

¿Cómo puedo eliminar los sábados y domingos?

Para ser más precisos, ¿cómo hacer una operación similar para los últimos, digamos, 250 días de cotización?

Intenta trabajar con esta estructura

struct MqlDateTime 
  { 
   int year;           // год 
   int mon;            // месяц 
   int day;            // день 
   int hour;           // час 
   int min;            // минуты 
   int sec;            // секунды 
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота) 
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0) 
  };
Razón de la queja: