Aprender y escribir juntos en MQL5 - página 3

 
FlyAgaric   :

"Me parece bastante sencillo...".

Utilizar MS Visual Studio gratuito (o cualquier otro análogo) como entorno de desarrollo.

Liberaremos el "adaptador" estándar mql5.exe para permitir la compilación desde otros IDEs. Sin embargo, la depuración sólo funcionará desde el MetaEditor.

Sin embargo, personalmente dudo que tenga sentido trabajar con código MQL5 de otros IDEs.

El MetaEditor se mejorará aún más y también se integrará directamente con MQL5.com y su Code Base.

Y MQL4(MQL5) se implementará como una biblioteca utilizando uno de los lenguajes (VB, C++ y C#). Este último,

en mi opinión, es la más expresiva. Ahora tienes un entorno de desarrollo depurado y probado en el tiempo

con todos los atributos necesarios. Y el código compilado es el más adecuado para Windows.

Si quieres escribir un código lo más rápido posible, puedes hacer tus propias DLL y llamarlas desde MQL5.

Según los autores, todo funcionará entre 4 y 20 veces más rápido en MQL5. No se ha notado. Un simple indicador

La Media Móvil con algunos cambios menores es mucho más lenta que en MQL4.

He dado mi opinión, si ofende a alguien - por favor, disculpen.

De hecho, MQL5 es muchas veces más rápido que MQL4, aunque la optimización del código está desactivada antes del lanzamiento.

En cuanto nos acerquemos al lanzamiento del sistema, publicaremos las pruebas de rendimiento de código abierto para que cualquiera pueda comprobarlo y asegurarse.
 
Renat :


Si quieres escribir el código más rápido posible, puedes hacer tus propias DLLs y llamarlas desde MQL5.


MQL5 es realmente muchas veces más rápido que MQL4, aunque la optimización del código está desactivada antes del lanzamiento.


En cuanto nos acerquemos al lanzamiento del sistema, publicaremos pruebas de rendimiento abiertas con las fuentes, para que cualquiera pueda comprobarlo y asegurarse.

Gracias por su atención. No creí que nadie lo leyera en su día libre.

Renat, esos fueron mis pensamientos en voz alta. Me alegraré mucho si todo lo que tienes en mente sale bien.

En cuanto al uso de DLL, no he podido conseguirlo en MT4 o MT5. Lo escribí en C++ y C#.

Felicidades por las próximas vacaciones y mucha suerte a MetaQuotes Software Corp.

 
FlyAgaric   :

En cuanto a la utilización de una DLL, no he podido engancharla ni en MT4 ni en MT5. Estaba escribiendo en C++ y C#.

Enhorabuena por las próximas vacaciones y mucha suerte a MetaQuotes Software Corp.

Adjunte el proyecto DLL recortado con las fuentes en el archivo ZIP directamente al Foro - seguro que le ayudarán.

Gracias por las felicitaciones.

 

Hola a todos.

Ayudadme, chicos.

Necesito conseguir la hora de la última cita en el expreso. ¿Tal vez haya una forma sencilla de hacerlo?

Hasta ahora, estoy haciendo esto:

      err=0;
      do
        {
         rates_total=CopyTime(NULL,PERIOD_CURRENT,0,1,iTime);
         err++;
        }
      while(rates_total<=0 && err<QUANTITY_OF_ATTEMPTS);
      if(err>=QUANTITY_OF_ATTEMPTS)
        {
         cur_time=TimeCurrent();
        }
      else
        {
         cur_time=iTime[0];
        } 

¿Hay una forma más sencilla?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
vdv2001   :

Hola a todos.

Ayudadme, chicos.

Necesito conseguir la hora de la última cita en el expreso. ¿Tal vez haya una forma sencilla de hacerlo?

Hasta ahora, estoy haciendo esto:

¿Hay una forma más sencilla?

Consulte la estructura para ver los precios actuales
 

Buenas tardes.

Mi Asesor Experto está calculandoun perfil de mercado en M1, todo funciona bien cuando lo pongo en el gráfico, pero si apago el terminal y lo enciendo al cabo de unas horas, se produce un error y el Asesor Experto se bloquea.

Sospecho que es por el historial de paginación, la función de inicialización se ejecuta antes de que se carguen los datos actualizados (los cálculos principales se realizan en la inicialización) y por eso se bloquea.

Tengo una pregunta, ¿cómo puedo saber desde Init que los datos de la herramienta están completamente cargados? Cuando he comprobado si el terminal está conectado al servidor no siempre ayuda, es decir, si los datos "frescos" no son demasiados entonces funciona bien, si son unos cuantos días entonces se bloquea con un error o no calcula los últimos días.

¿Pueden decirme cómo levantar la bandera de que todos los datos están actualizados?

Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
  • 2010.01.26
  • Dmitry
  • www.mql5.com
Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
 
vdv2001   :

Buenas tardes.

Mi Asesor Experto está calculando un perfil de mercado en M1, todo funciona bien cuando lo pongo en el gráfico, pero si apago el terminal y lo enciendo al cabo de unas horas, se produce un error y el Asesor Experto se bloquea.

Sospecho que es por el historial de paginación, la función de inicialización se ejecuta antes de que se carguen los datos actualizados (los cálculos principales se realizan durante la inicialización) y por lo tanto se bloquea.

Tengo una pregunta, ¿cómo puedo determinar desde Init que los datos de la herramienta están completamente cargados? Cuando he comprobado si el terminal está conectado al servidor no siempre ayuda, es decir, si los datos "frescos" no son demasiados entonces funciona bien, si son unos cuantos días entonces se bloquea con un error o no calcula los últimos días.

¿Puedes decirme cómo levantar la bandera de que todos los datos están actualizados?

Mover la inicialización en el historial de OnInit() a OnTick() (hay que comprobar que el código se ejecuta sólo 1 vez) y todos los problemas con la paginación desaparecen

 
 
alsu   :

Mueva la inicialización en el historial de OnInit() a OnTick() (el código debe ser comprobado para ser ejecutado sólo una vez) y todos los problemas con la paginación desaparecerán.

Un problema ha desaparecido, pero después de la transferencia de los cálculos a OnTick() ha aparecido otro - los mercados que no funcionan en este momento tienen un gráfico vacío y la función OnTick( ) no se llama.

 
Rosh   :
Véase también Organizar el acceso a los datos


Gracias por resolverlo así:

int OnInit()
  {
//---
   while(!(bool)SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED))
     {
      Sleep(20);
     }
   if(ExtExpert.Init())
      return(0);
   else
      return(-1);
  }
Razón de la queja: