Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

aChartsAndMW5Class - librería para MetaTrader 5

Visualizaciones:
749
Ranking:
(19)
Publicado:
2017.04.27 16:45
\MQL5\Include\ \MQL5\Experts\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Clase que permite determinar con facilidad (a partir sus programas MQL5) cambios en la ventana "Observación del Mercado" (cambio de clasificación de los símbolos, adición, eliminación de un símbolo o conjunto de símbolos), la apertura y cierre de nuevos gráficos, así como la presencia/ausencia del panel comercial en el gráfico en el que funciona el programa. La clase funciona según el principio de envío de eventos de usuario al programa de control.

En el programa están disponibles los métodos públicos:

Método
 DescripciónValor devuelto
Métodos de trabajo con los gráficos
  
bool IsChartOneClick(void)
Retorna la bandera de presencia del comercio OneClick en el gráfico
bool true/false
uchar GetChartNumbers(void)
Retorna el número de gráficos abiertos del terminal
uchar Número de gráficos abiertos
long GetOpenedChartID(void)
Retorna el indicador del gráfico recién abierto
long ChartID()
string GetOpenedSymbol(void)
Retorna el nombre del símbolo del gráfico recién abierto
string ChartSymbol()
ENUM_TIMEFRAMES GetOpenedTimeframe(void)
Retorna el marco temporal del gráfico recién abiertoENUM_TIMEFRAMES ChartPeriod()
long GetClosedChartID(void)
Retorna el identificador del gráfico recién cerradolong ChartID()
string GetClosedSymbol(void)
Retorna el nombre del símbolo del gráfico recién cerradostring ChartSymbol()
ENUM_TIMEFRAMES GetClosedTimeframe(void)
Retorna el marco temporal del gráfico recién cerradoENUM_TIMEFRAMES ChartPeriod()
bool IsOpenedIsObject(void)
Retorna el signo de que el gráfico abierto es un objeto
bool true/false
bool IsClosedIsObject(void)Retorna el signo de que el gráfico cerrado era un objetobool true/false
bool CheckOpenChart(string symbol_name);
Comprueba si está abierto el gráfico del símbolo
bool true/false
bool CheckOpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe)
Comprueba si está abierto el gráfico del símbolo con el marco temporal indcado
bool true/false
long OpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe)
Abre el gráfico del símbolo
long ChartID()
bool IsOpenedAllCharts(void)
Retorna la bandera sobre la presencia de gráficos abiertos de todos los símbolos en la observación del mercado
bool true/false
Métodos de trabajo con la ventana "Observación del mercado"


bool PutSymbolToMarketWatch(string symbol_name)
Ubica un símbolo en la observación del mercado
bool true/false
bool IsExistSymbolInMW(string symbol_name, bool select=false)
Retorna la bandera sobre la presencia de un símbolo en la observación del mercado/en el servidor
bool true/false
int GetNumSymbolsInMW(void)
Retorna el número de símbolos en la observación del mercado
int Número de símbolos en la Observación del mercado
int GetNumAllSymbols(void)
Retorna el número de todos los símbolos disponibles
int Número de símbolos en el servidor
void ClearMarketWatch(void)Borra todos los símbolos posibles de la Observación del mercadovoid
Eventos de usuario enviados por la clase al programa de control:
Identificador
Valor
 Descripción
CHARTEVENT_CHART_OPEN32Evento de apertura de un nuevo gráfico
CHARTEVENT_CHART_CLOSE33Evento de cierre del gráfico
CHARTEVENT_MW_SYMBOL_ADD34Evento de adición de un símbolo a la observación de mercado
CHARTEVENT_MW_FEW_SYMBOL_ADD35Evento de adición de varios símbolos a la observación de mercado
CHARTEVENT_MW_SYMBOL_DEL36Evento de eliminación de un símbolo de la observación de mercado
CHARTEVENT_MW_FEW_SYMBOL_DEL37Evento de eliminación de varios símbolos de la observación de mercado
CHARTEVENT_MW_CHANGE_SORT38Evento de cambio de clasificación de los símbolos en la observación del mercado
CHARTEVENT_CHART_CHANGE_ONE_CLICK39Evento de apertura/cierre del panel OneClick

He hecho que los valores de los identificadores estén relacionados con los identificadores de la biblioteca gráfica de Anatoli (Anatoli Kazharski), aunque, claro, podrá establecerlos de la forma que prefiera usted.

Valores transmitidos junto con el evento al programa de control:

Identificador
 lparamdparam
 sparam
CHARTEVENT_CHART_OPENlong ChartID del gráfico abierto
ENUM_TIMEFRAMES Periodo del gráfico abierto
string Símbolo del gráfico abierto
CHARTEVENT_CHART_CLOSElong ChartID del gráfico cerradoENUM_TIMEFRAMES Periodo del gráfico cerradostring Símbolo del gráfico cerrado
CHARTEVENT_MW_SYMBOL_ADDint Número actual de símbolos
int Número anterior de símbolos
string Símbolo añadido
CHARTEVENT_MW_FEW_SYMBOL_ADDint Número actual de símbolosint Número anterior de símbolosstring Último símbolo utilizado
CHARTEVENT_MW_SYMBOL_DELint Número actual de símbolosint Número anterior de símbolosstring Símbolo eliminado
CHARTEVENT_MW_FEW_SYMBOL_DELint Número actual de símbolosint Número anterior de símbolosstring Último símbolo utilizado
CHARTEVENT_MW_CHANGE_SORTint Número actual de símbolosint Número actual de símbolosstring Último símbolo utilizado
CHARTEVENT_CHART_CHANGE_ONE_CLICKint coordenada X del límite derecho del panel
int coordenada Y del límite inferior del panel
string Descripción del estado del panel:
"CHART_IS_ONE_CLICK_ON" - hay panel
"CHART_IS_ONE_CLICK_OFF" - no hay panel

Para conectar la clase al programa, es necesario conectar a la zona global el archivo y crear un ejemplar de la clase:

#include <aChartsAndMWClass.mqh>
CChartsMW   mw;

Después, en OnTimer() del programa, se conecta el temporizador de la clase:

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- Activación del temporizador de la clase
   mw.OnTimerEvent();
  }
//+------------------------------------------------------------------+

Y en OnChartEvent() se conecta el procesador de eventos de clase:

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Conexión del procesador de eventos de clase
   mw.OnEvent(id,lparam,dparam,sparam);

  }
//+------------------------------------------------------------------+

Ahora en OnChartEvent() del programa se pueden recibir y procesar los eventos retornado por la clase.

Se muestra un ejemplo de la recepción de eventos de clase en el experto anexo exTestChartsMWClass.mq5

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/17448

SilverTrend v3 SilverTrend v3

SilverTrend v3 - comercio basado en el análisis de los precios High, Low y Close de las barras.

New Martin New Martin

New Martin - asesor que abre dos posiciones opuestas al iniciarse. Procesamiento de OnTradeTransaction. Al activarse el Take Profit se abre una posición (UNA) en la misma dirección. El cruce de dos indicadores МА será la señal de apertura de la posición con un lote aumentado.

Alpha Trend Spotter Price Action Alpha Trend Spotter Price Action

Indicador de señal de semáforo según la estrategia de movimiento de precio para encontrar la tendencia intradía más fuerte, con posibilidad de enviar alertas y mensajes Push y de correo sobre el cambio de tendencia.

Exp_TDI-2_ReOpen Exp_TDI-2_ReOpen

Sistema comercial Exp_TDI-2_ReOpen basado en el cruce de las líneas del indicador TDI-2 con rellando según tendencia