Si haces tu propia dll, no tiene sentido dividir parte del código en MQL y parte en lib. todo MySQL irá dentro de esta dll.
Por supuesto. No hace falta que escriba en MQL, si puede. Casi todo está en la DLL. Empezando a transferir todo a mi aplicación. Gestionaré el terminal de forma remota.
I). Se requiere encontrar un algoritmo para enumerar fracciones, de manera que:
A + B + C + n + ... = 100%
Cada elemento del conjunto {A, B, C, n} debe tener criterios estándar: restricciones de lado máximo y mínimo y paso incremental de tipo: inicio, parada, empinado;
Un ejemplo del problema:
Dado un conjunto
Y{A,B,C,n};
Cada elemento de dicho conjunto puede variar de -100% a +100%, en pasos de 10%. La suma de todos los elementos del módulo debe ser igual al 100%: A+B+C+n=100%.
Encuentre una matriz D(x,número_de_elementos_múltiples_Y) que describa la distribución de todas las fracciones posibles entre A, B, C, n, por ejemplo
A B C
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Ejemplos de conclusiones incorrectas:
A B C
-50 30 120 - el elemento C es mayor que el límite del 100%
35 30 35 - el paso no es igual al 10%
70 30 10 - suma no igual al 100%
-50 60 90 - suma de todos los elementos módulo no igual al 100% (50+60+90=200)
II*). Encontrar la solución de la búsqueda de fracciones para el conjunto N con el optimizador MT5/MT4 de manera que las restricciones de cada elemento del conjunto se puedan establecer con las restricciones estándar Start, Step, Stop.
Como nota introductoria, he aquí un algoritmo que implementa un caso especial del problema:
//+------------------------------------------------------------------+//| Optimizator.mq5 |//| Copyright 2011, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2011, MetaQuotes Software Corp."#property link "https://www.mql5.com"#property version "1.00"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---int A, B, C;
int handle = FileOpen("test.csv",FILE_WRITE,'\t');
for(A=0; A<=100;A+=10)
{
for(B=0;B<=100-A;B+=10){
C=100-(A+B);
FileWrite(handle,A,B,C);
}
}
FileClose(handle);
}
//+------------------------------------------------------------------+
Como puede ver, cada elemento del conjunto, excepto el último, requiere un bucle for adicional. Esta no es una buena solución, porque al cambiar el número de elementos del conjunto, hay que insertar o eliminar bucles adicionales.
Como nota introductoria, he aquí un algoritmo que implementa un caso especial del problema:
Como puede ver, cada elemento del conjunto, excepto el último, requiere un bucle for adicional. Esta no es una buena solución, porque al cambiar el número de elementos del conjunto, hay que insertar o eliminar bucles adicionales.
Haz un solo bucle while para una de las opciones A, B o C.
Dentro de ella, analizar si para las lagunas que se alcancen
La cuestión es que todavía B y C se combinarán entre sí, y se necesita un nuevo bucle para ello. Quizá este problema pueda resolverse de forma recursiva, aunque puede haber algoritmos más sencillos.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Supongo que puedo olvidarme de trabajar a fondo con MySQL en MQL (sin mis dlls)... lástima...
¿Qué es lo que no le gusta de la biblioteca?
En el caso de la devolución de un puntero, tiene que ser estática y en el mismo proceso.
¿Qué es lo que no le gusta de la biblioteca?
Si haces tu propia dll, no tiene sentido dividir parte del código en MQL y parte en la libe. todo MySQL irá dentro de esta dll.
Si haces tu propia dll, no tiene sentido dividir parte del código en MQL y parte en lib. todo MySQL irá dentro de esta dll.
Algoritmo de enumeración de fracciones
I). Se requiere encontrar un algoritmo para enumerar fracciones, de manera que:
A + B + C + n + ... = 100%
Cada elemento del conjunto {A, B, C, n} debe tener criterios estándar: restricciones de lado máximo y mínimo y paso incremental de tipo: inicio, parada, empinado;
Un ejemplo del problema:
Dado un conjunto
Y{A,B,C,n};
Cada elemento de dicho conjunto puede variar de -100% a +100%, en pasos de 10%. La suma de todos los elementos del módulo debe ser igual al 100%: A+B+C+n=100%.
Encuentre una matriz D(x,número_de_elementos_múltiples_Y) que describa la distribución de todas las fracciones posibles entre A, B, C, n, por ejemplo
A B C
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Ejemplos de conclusiones incorrectas:
A B C
-50 30 120 - el elemento C es mayor que el límite del 100%
35 30 35 - el paso no es igual al 10%
70 30 10 - suma no igual al 100%
-50 60 90 - suma de todos los elementos módulo no igual al 100% (50+60+90=200)
II*). Encontrar la solución de la búsqueda de fracciones para el conjunto N con el optimizador MT5/MT4 de manera que las restricciones de cada elemento del conjunto se puedan establecer con las restricciones estándar Start, Step, Stop.
Como nota introductoria, he aquí un algoritmo que implementa un caso especial del problema:
Como puede ver, cada elemento del conjunto, excepto el último, requiere un bucle for adicional. Esta no es una buena solución, porque al cambiar el número de elementos del conjunto, hay que insertar o eliminar bucles adicionales.
Como nota introductoria, he aquí un algoritmo que implementa un caso especial del problema:
Como puede ver, cada elemento del conjunto, excepto el último, requiere un bucle for adicional. Esta no es una buena solución, porque al cambiar el número de elementos del conjunto, hay que insertar o eliminar bucles adicionales.
Haz un solo bucle while para una de las opciones A, B o C.
Dentro de ella, analice si hay lagunas
hacer sólo un bucle while en uno de los A, B o C.
Dentro de ella, analizar si para las lagunas que se alcancen
La cuestión es que todavía B y C se combinarán entre sí, y se necesita un nuevo bucle para ello. Quizá este problema pueda resolverse de forma recursiva, aunque puede haber algoritmos más sencillos.