Join our fan page
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
YZ_Summer_Time - librería para MetaTrader 5
- Visualizaciones:
- 1113
- Ranking:
- Publicado:
- 2016.03.10 12:11
- Actualizado:
- 2016.11.22 07:33
Comprueba si una fecha pertenece al horario invernal o estival. La función determina la hora (estival o invernal).
El paso al horario de invierno se realiza la noche del último domingo de octubre. El horario estival se activa la noche del último domingo de marzo.
No existe una forma más segura para calcular el horario estival o invernal.
El código ha sido desarrollado para la depuración de los eventos dependientes de las noticias.
//
// Perfeccioné el algoritmo el 2014.10.09
//
// YURAZ yzh@mail.ru
// la función determina el horario, estival o invernal
// el paso al horario invernal se realiza la noche del último domingo de octubre
// el paso al horario estival se realiza la noche del último domingo de marzo
// no existe una forma más segura para calcular el horario estival o invernal
// retorna 0 - horario estival
// retorna 1 - horario invernal
//
int YZ_summer_time(datetime pdt)
{
MqlDateTime dt;
TimeToStruct(pdt,dt);
int code=1;
if(dt.mon>=11 || dt.mon<=2) // ЗИМА
{
code=1;
}
if(dt.mon>=4 && dt.mon<=9) // ЛЕТО
{
code=0;
}
datetime tSeek;
MqlDateTime dtf;
if(dt.mon==10) // октябрь
{
if(dt.day<25) // la noche del último domingo de octubre se produce el paso al horario de invierno
code=0; // todavía es verano
else
{
TimeToStruct(pdt,dtf);
tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00"); // establecemos el último día de octubre
TimeToStruct(tSeek,dtf);
for(int i=31; i>=25; i--)
{
if(dtf.day_of_week==0 ) // Es necesario encontrar precisamente la noche del sábado al domingo
break;
tSeek=tSeek-86400; // ( ENCONTRAR precisamente las 2 de la madrugada, es decir, el propio paso no tiene sentido, puesto que el mercado fórex está cerrado la noche del sábado al domingo )
TimeToStruct(tSeek,dtf);
}
if(pdt<tSeek)
{
code=0; // verano
}
else
code=1; // invierno
}
}
if(dt.mon==3) // marzo
{
if(dt.day<25) // la noche del último domingo de marzo se pasa al horario estival
code=1; // todavía es invierno
else
{
TimeToStruct(pdt,dtf);
tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00"); // establecemos el último día de marzo
for(int i=31; i>=25; i--)
{
if(dtf.day_of_week==0 ) // Es necesario encontrar precisamente la noche del sábado al domingo
break;
tSeek=tSeek-86400; // ( ENCONTRAR precisamente las 3 de la madrugada, es decir, el propio paso no tiene sentido, puesto que el mercado fórex está cerrado la noche del sábado al domingo )
TimeToStruct(tSeek,dtf);
}
if(pdt>tSeek)
{
code=0; // verano
}
else
code=1; // invierno
}
}
return( code);
}
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/11932
Ejemplo de implementación de una matriz hash con una clave de cadena.
Heatmaps, color gradients and scales in MQL5El objetivo de este código es mostrar un ejemplo de creación de escalas, gradientes y mapas de calor en MQL5.
El legendario Ilan 1.6 Dynamic pertenece a la serie de los llamados "promediadores". Gracias a sus avanazadas fórmulas de gestión de capital, permite salir con beneficios incluso de una posición que a ciencia cierta tendría pérdidas. Ahora Ilan 1.6 Dynamic está disponible en los códigos fuente para MetaTrader 5.
XEnvelopesIndicador Envelopes clásico con uso de algoritmos de promediación universal y función para dar un color determinado al fondo del canal.