Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 88
- Ranking:
- Publicado:
- Actualizado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Biblioteca para el control de sesiones de negociación. Al inicio cuenta los tiempos de las sesiones de negociación para los 7 días de la semana (puede haber negociación de criptomonedas los sábados y domingos), hasta 10 sesiones por día. Luego en OnTick() puede hacer chequeos, y si un tick vino fuera de la sesión de negociación, puede salir del procesamiento posterior de la misma.
Ejemplo de uso:
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 //+------------------------------------------------------------------+ // #define LoadSessionFromInputs // Leer sesiones desde entradas #include <Forester\Control_Trade_Sessions.mqh> // conectar el código para controlar la sesión de negociación int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// Obtener las horas de apertura/cierre del mercado y guardarlas en matrices por días de la semana. Se ejecuta una vez al iniciar el Asesor Experto (ver estática). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // tus acciones }
El resultado es una impresión como esta:
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
Se utilizan nuevas funciones MQL5 para leer la sesión de trading de cualquier día, incluyendo fines de semana.
Trabaja lo más rápido posible, sólo se hace 1 comprobación en cada tick dentro de la sesión de trading:
.
if(time < this.NextTradeStop ) { return true; }Donde NextTradeStop es la hora de finalización de la sesión de negociación actual.
En cada tick fuera de la sesión de negociación también se realiza 1 comprobación:
if(time < this.NextTradeStart ) { return false; }Sólo en la transición entre sesiones se accede a las matrices para obtener la hora de la siguiente sesión.
Por ejemplo en mi DC la sesión de negociación es de 00:15 a 23:55. Con el primer tick después de las 00:15 NextTradeStop se fijará a las 23:55 y entonces sólo se comprobará esta condición durante todo el día.
Sus sesiones de negociación
También puede especificar la hora de las sesiones de negociación manualmente. Para activar esta opción, añada la línea
.
#define LoadSessionFromInputs // Leer sesiones de entradas
Se crearán 7 sinputs para introducir las sesiones de negociación por días de la semana.
Introduzca las horas de las sesiones sin espacios, estrictamente con : - y ,
Así se ve en la pestaña de parámetros:

Y así es como se mostrará en el registro:
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : los ticks reales comienzan a partir de 2022.05.10 00:00:00, se utiliza cada generación de ticks
2022.01.10 00:05:00 Día: 1 Sesiones comerciales: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Día: 2 Sesiones de negociación: 1: 00:15-23:55
2022.01.10 00:05:00 Día: 3 Sesiones de negociación: 1: 00:10-17:45, 2: 17:55-23:00, 3: 23:05-23:55
2022.01.10 00:05:00 Día: 4 Sesiones comerciales: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Día: 5 Sesiones de negociación: 1: 00:15-23:55
2022.01.10 00:05:00 Día: 6 Sesiones de negociación: 1: 00:15-23:55
2022.01.10 00:05:00 Mercado cerrado. OnTick retorno
...
Si la hora de finalización de la sesión es inferior a la hora de inicio, por ejemplo 20:00-8:00, la sesión continuará hasta las 8:00 del día siguiente. Esto puede ser útil en los casos en que la sesión de negociación se encuentra en una zona horaria diferente de la hora del servidor.
La hora de las sesiones de negociación también puede especificarse en el código sin entradas. Para ello se ha creado la función LoadFromInputs(). Puede ser llamada sin Inputs, pero directamente desde el código con un array de cadenas, como en el ejemplo.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
Si el Asesor Experto es multidivisa y los diferentes instrumentos tienen diferentes horas de sesión de negociación, puede hacer una instancia separada de TRADE_SESSIONS para cada instrumento y llamar a LoadFromInputs() con los datos de sesión y comprobar isSessionTrade(). Para ello, tendrá que modificar el código de forma similar a este ejemplo.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/48059
Candle Fitness
El concepto Candlestick Fitness se utiliza en la codificación de Algos HFT basados en algoritmos de optimización de poblaciones.
Filtro PHSB
Este Screener se creó para simplificar el proceso de búsqueda de activos que cotizan a precios reducidos. El uso inicial puede tardar un poco más debido al proceso de carga de datos para todos los instrumentos seleccionados. La herramienta puede escanear todos los activos disponibles del broker o limitarse a clases de activos específicas.
Moving Averages-14 different types
Este es un indicador para calcular 14 tipos de medias móviles basadas en el precio de cierre.
Confluence Index Stoch+RSI+MACD
MULTI TF Confluencia Índice Stoch+RSI+MACD