Es hora de convertir las bibliotecas a MQL5 - página 5

 

Por cierto, ¿no podrían los comandos de almacenamiento estar en un lenguaje humano? - Ya sabes, como:

"Enviar al depósito".

"Descargar desde el repositorio".

"Sincronizar con el repositorio".

"Sincronizar con ME".

Y los comandos que ahora son - bueno, no está claro. Y en esto me solidarizo con Urain. Y si hay algo que alguien no entiende intuitivamente, es poco probable que esta persona quiera dedicar tiempo a estudiar los comandos para utilizar la nueva funcionalidad, sobre todo si antes prescindía de ella (funcionalidad).

 

Este hilo se está convirtiendo en una lista de deseos, voy a poner el mío aquítambién .

En cuanto a las bibliotecas numéricas, éstas son:

  • interpolación, suavización y aproximación
  • manejo de matrices
  • Optimización (búsqueda de un extremo), métodos:

Univariante: método de la razón áurea, dicotomía, método de la parábola, búsqueda de malla, método de Fibonacci, búsqueda trinaria
Métodos directos: Método de Gauss, método de Nelder-Meade, método de Hook-Jeeves, método de la configuración, método de Rosenbrock
Primera orden: Descenso del gradiente, método Zeutendijk, descenso de coordenadas, método del gradiente conjugado, métodos Quasi-Newton, algoritmo Levenberg-Marquardt
Segunda orden: Método Newton, Método Newton-Raphson
Estocástico: Método Monte Carlo, Recocido Simulado, Algoritmos Evolutivos, Algoritmos Genéticos, Evolución Diferencial, Algoritmo de Hormigas, Método de Enjambre de Partículas

La lista de Wikipedia, probablemente no la necesite entera.

  • ¿Redes neuronales?

Además de las bibliotecas de métodos numéricos:

  • gráfico

Y en el lenguaje para construir un análogo de la API de Java Reflection

  • Definición de la clase de objeto.
  • Obtenga información sobre modificadores, campos, métodos y constructores.
  • Crea una instancia de la clase, cuyo nombre es desconocido hasta la ejecución del programa (especificado por la cadena).
  • ...

Y expresiones regulares.

Y a eso, sería un buen añadido poder ejecutar el programa no en una ventana de gráfico de caracteres. Pero en una ventana normal. Ya es obvio que no se pueden evitar las "aplicaciones" de los usuarios, así que por qué vincularlas a un símbolo, ya que se puede acceder a cualquiera, para cualquier operación. Generalmente, en el 5, el colgado por defecto de un símbolo es completamente innecesario. Este es el lote de indicadores y aplicaciones expertas para las que es realmente útil.

Y, como mínimo, hacer un bloqueo de los eventos "popping" al gráfico desde los elementos de la interfaz, ahora es molesto arrastrar un objeto de la ventana junto con el desplazamiento del gráfico (¿o quizás ya lo es?).

Gracias por los métodos estáticos - mis singletons ya no son funciones globales.

 
Renat:
Hemos realizado un enorme trabajo para afinar el compilador de MQL5 y facilitar la conversión de las bibliotecas existentes escritas en otros lenguajes.

Y el lenguaje MQL5 sigue evolucionando. Se espera que pronto aparezcan nuevas funciones, como un potente perfilador de código.

Ahora tenemos que realizar dos tareas:
1) seleccionar bibliotecas de terceros útiles para la conversión
2) Reunir voluntarios para llevar a cabo proyectos de reconversión (nosotros lo financiaremos).

Nos gustaría empezar con una lista de proyectos potenciales. Ayuda con enlaces y una breve descripción, por favor.
Creo que es más rentable para los que están dispuestos a poner bibliotecas en el mercado, ya que es un arreglo a largo plazo, y estás ofreciendo un pago único. Por supuesto, si estás dispuesto a ofrecer entre 10.000 y 50.000 dólares o más por proyecto, otra conversación, entonces estoy dispuesto a mover algo.
 
-Alexey-:
Creo que es más rentable para los que están dispuestos a poner bibliotecas en el mercado, ya que es un arreglo a largo plazo, y estás ofreciendo un pago único. Por supuesto, si estás dispuesto a ofrecer entre 10.000 y 50.000 dólares o más por proyecto, otra conversación, entonces estoy dispuesto a cambiar algo.
Muy interesante, ¿qué es lo que está dispuesto a ofrecer? ¿Sólo una pequeña pista, por favor?
 
Más trabajo con números complejos, con números grandes. Convertir coordenadas, con la posterior creación de gráficos tridimensionales.
 
TheXpert:
Muévete:)
¡Ay! ¡Ay! :)
 

Otra pregunta - si usted está tratando de hacer MQL5 tan cerca de C ++ como sea posible, ¿por qué no reconsiderar la cuestión sobre #ifdef o #if definido o simplemente #if?

A continuación, voy a plantear una cuestión relativa a la depuración de las bibliotecas, ¿acaso no te has dado cuenta?

Небольшой вопрос -- сейчас есть возможность нормально дебажить библиотеки? Просто не всегда все баги вылазят сразу -- некоторые могут остаться и вылезти уже во время активного пользования библиотекой.

Por supuesto, se resuelve parcialmente con el control interno, pero a la luz del creciente código de la biblioteca es muy relevante.

E.M.N.I., los descansos en las bibliotecas no funcionan.

 
Renat:
Es extraño oír hablar de "acceso garantizado a la dll" cuando ha funcionado perfectamente en MQL4 y MQL5 durante 7 años.

Funciona bien cuando tomas una dll de C++ (o C#) con un archivo de cabecera, lo pones en la carpeta apropiada, incluyes el archivo de cabecera original (o los archivos) a través de #include en tu código y ya está. ¿Es posible hoy en día?

 
¿Es esto posible en algún otro lenguaje que no sea C/C++?

La completa falta de seguridad de C/C++ y el acceso directo a los datos no va bien con los lenguajes que se preocupan mínimamente por la seguridad. Los archivos de cabecera *.h pueden ser utilizados en MQL5 casi tal cual, renombrados a MQH. Pero los lugares que operan con enlaces y acceso directo a los datos deben ser corregidos.

Los enlaces con DLL funcionan bien.

 
Renat:
. . . Los archivos de cabecera *.h pueden ser utilizados en MQL5 casi tal cual, renombrados en MQH. Pero habrá que corregir los lugares que funcionan con enlaces y acceso directo a los datos.

Supongo que tendrá que cambiar muchas cosas.

En realidad, no hay nada malo en el acceso directo a los datos. Después de todo, el propio MetaTrader está probablemente escrito en C/C++, y nada. Además, los enlazadores suelen permitir incluso inserciones en ensamblador, y eso también está bien. Recuerde que MetaTrader que se ejecuta bajo Windows directa o indirectamente utiliza una gran cantidad de dlls del sistema, y tampoco hay nada malo en ello.

No creo que debamos privar al usuario de su derecho a elegir. Realmente me gustaría la opción de poder tomar, por ejemplo, ALGLIB-dll y su(s) archivo(s) de cabecera nativo(s) y utilizar una biblioteca fiable sin "ensuciarme las manos", pero simplemente decirle al compilador de MQL que este archivo de cabecera es C++ y no MQL.

Uno podría preguntarse: ¿y si esta biblioteca es maliciosa y peligrosa? Pero decidí usarlo yo mismo.

En otras palabras - el contenido programado por MQL puede ser tan seguro como usted quiera, pero si me atreví a usar algo externo, es mi problema personal. Así como la seguridad de mi sistema operativo, que, por cierto, también puede suponer una amenaza para MetaTrader.

Razón de la queja: