Discusión sobre el artículo "La implementación del modo multidivisa en MetaTrader 5" - página 2

 
Lizar:

Pero el hecho de que el experto en el probador no pueda cargar el espía es extraño. ¿Funciona en la demo?

Obtiene un error

ERR_INDICATOR_CANNOT_CREATE

4802

No se puede crear el indicador

Vea por qué no se puede crear el indicador.
 
Yedelkin:
Obtiene un error

ERR_INDICATOR_CANNOT_CREATE

4802

No se puede crear el indicador

Vea por qué no se puede crear el indicador.

Todavía no puedo averiguarlo. En la demo funciona, pero en el tester no carga (no crea) . Intentado incluso esto:

#property tester_indicator "iSpy.ex5"
No ayuda.
 
Lizar:

Todavia no consigo ninguna pista. En la demo funciona, pero en el tester no carga (no crea) . Intentado incluso esto:

No ayuda.

Por el método de punción científica, que trabajó en el probador:

   if(iCustom("GBPUSD",PERIOD_M1,"iSpy.ex5",ChartID(),0)==INVALID_HANDLE) 

Y fue suficiente para insertar sólo en la primera condición, para "GBPUSD". Ahora la pregunta - ¿por qué exactamente así?

 
Yedelkin:

Según el método científico, así funcionó en el probador:

Y fue suficiente insertarlo sólo en la primera condición, para "GBPUSD" . Ahora la pregunta es - ¿por qué exactamente así?

Vaya, el "pinchazo científico" es una gran cosa en nuestro negocio. Bueno, por qué es así es una pregunta para los desarrolladores, en mi opinión.

Gracias por ayudarme a averiguarlo.

 
Lizar:

Hay una línea en la función OnCalculate() del MCM del panel de control del espía:

Por defecto price[rates_total-1] es igual al precio de cierre de la última barra no finalizada, que a su vez es igual al último precio de oferta. es decir, por defecto siempre obtenemos el precio de oferta del espía.

Si quieres obtener el precio ask forzosamente, sustituye esta línea, por ejemplo, por....

Gracias, pero un poco mal, es decir, usted puede obtener ya sea oferta o demanda. Pero necesito obtener ambos precios ask y bid a la vez para analizar situaciones como esta.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
tres ticks y la oferta no cambia, por lo tanto (posiblemente) la demanda ha cambiado. me gustaría obtener información más completa.

¿Es posible ?

 
Trolls:

Gracias, pero un poco mal, es decir, usted puede obtener ya sea oferta o demanda. Pero para obtener ambos precios a la vez, tanto el bid como el ask, hay que analizar situaciones como esta.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
tres garrapatas y la oferta no cambia, por lo tanto (posiblemente) la demanda ha cambiado. le gustaría recibir información más completa.

¿Es posible?

Es posible, hay varias maneras:

1. tener dos espías en el mismo símbolo bajo diferentes id's. Uno enviará bid y el otro enviará ask.

2. tener un espía en el mismo símbolo, pero hacer que envíe dos eventos bid y ask secuencialmente bajo diferentes id.

3. Hay más opciones, pero ya están asociados con modificaciones significativas en el esquema de pasar parámetros a OnChartEvent - Yo no aconsejo.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
Utilice el espía como "semáforo de llegada de un nuevo tick", y en el Asesor Experto obtenga información completa sobre el tick utilizando SymbolInfoTick.
 
Kos:
Utilice el espía como "semáforo de llegada de un nuevo tick", y en el Asesor Experto obtenga información completa sobre el tick utilizando SymbolInfoTick.

Gran solución.
 

Dame una pista, si no te importa. El artículo contiene un ejemplo de enumeración

enum ENUM_CHART_EVENT_SYMBOL
  {
   CHARTEVENT_INIT      =0,          // Evento "Inicialización"
   CHARTEVENT_NO        =0,          // Eventos Desconectados

   CHARTEVENT_NEWBAR_M1 =0x00000001, // Evento "nueva barra" en el gráfico de 1 minuto
   CHARTEVENT_NEWBAR_M2 =0x00000002, // Evento "nueva barra" en el gráfico de 2 minutos
   CHARTEVENT_NEWBAR_M3 =0x00000004, // Evento "nueva barra" en el gráfico de 3 minutos
   CHARTEVENT_NEWBAR_M4 =0x00000008, // Evento "nueva barra" en el gráfico de 4 minutos
   
   ...
   
   CHARTEVENT_ALL       =0xFFFFFFFF, // Todos los eventos están activados
  };

y un ejemplo de trabajo con los valores de esta enumeración:

if((flag_event & CHARTEVENT_NEWBAR_M1)!=0) EventCustom(CHARTEVENT_NEWBAR_M1,price_current

Construcciones similares se observan en la biblioteca estándar. Por lo que entiendo, estamos hablando de números hexadecimales y operaciones bitwise, pero un par de artículos generales encontrados en Internet no ayudaron a aclarar el significado y el propósito de su uso en MQL5. ¿Podría decirme dónde se puede familiarizarse de forma clara y precisa con las peculiaridades de la lógica hexadecimal utilizada en MQL5?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Yedelkin:

Dame una pista, si no te importa. El artículo contiene un ejemplo de enumeración

y un ejemplo de trabajo con los valores de esta enumeración:

Construcciones similares se observan en la biblioteca estándar. Por lo que entiendo, estamos hablando de números hexadecimales y operaciones bitwise, pero un par de artículos generales encontrados en Internet no ayudaron a aclarar el significado y el propósito de su uso en MQL5. ¿Podrías decirme donde se puede leer claramente y con claridad las peculiaridades de la lógica hexadecimal utilizada en MQL5?

La lógica hexadecimal es la misma en todas partes. Puedes leer sobre sistemas numéricos aquí. Allí puedes leer sobre sistemas numéricos posicionales y ver referencias a los 16 y binarios. También hay ejemplos de conversión de sistema a sistema allí.

Todas las operaciones bit a bit estan pensadas para el sistema binario. Sobre las operaciones bit a bit en MQL5 aqui.