Si vous créez votre propre dll, cela n'a pas de sens de décomposer une partie du code en MQL et une autre partie en libe. Tout MySQL sera placé dans cette dll.
Si vous créez votre propre dll, cela n'a aucun sens de diviser une partie du code en MQL et une partie en lib. Tout MySQL sera intégré dans cette dll.
Bien sûr ! Vous n'êtes pas obligé d'écrire en MQL du tout, si vous le pouvez. Presque tout est dans la DLL. Je commence à tout transférer sur mon application. Je vais gérer le terminal à distance.
I). Il est demandé de trouver un algorithme pour l'énumération des fractions, de sorte que :
A + B + C + n + ... = 100%
Chaque élément de l'ensemble {A, B, C, n} doit avoir des critères standards : contraintes latérales maximales et minimales et pas incrémental de type : start, stop, steep ;
Un exemple du problème:
Étant donné un ensemble
Y{A,B,C,n} ;
Chaque élément de cet ensemble peut varier de -100% à +100%, par pas de 10%. La somme de tous les éléments modulo doit être égale à 100% : A+B+C+n=100%.
Trouvez une matrice D(x,nombre_d'éléments_multiples_Y) qui décrit la distribution de toutes les fractions possibles entre A, B, C, n, par ex :
A B C
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Exemples de constatations erronées :
A B C
-50 30 120 - l'élément C est supérieur à la limite de 100%.
35 30 35 - l'échelon n'est pas égal à 10 %.
70 30 10 - somme non égale à 100
-50 60 90 - la somme de tous les éléments modulo n'est pas égale à 100% (50+60+90=200)
II*). Trouver la solution de la recherche de fractions pour l'ensemble N avec l'optimiseur MT5/MT4 de sorte que les contraintes de chaque élément de l'ensemble puissent être définies avec les contraintes standard Start, Step, Stop.
En guise d'introduction, voici un algorithme qui met en œuvre un cas particulier du problème :
//+------------------------------------------------------------------+//| 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);
}
//+------------------------------------------------------------------+
Comme vous pouvez le constater, chaque élément de l'ensemble, sauf le dernier, nécessite une boucle for supplémentaire. Ce n'est pas une bonne solution, car lorsque vous modifiez le nombre d'éléments de l'ensemble, vous devez insérer ou supprimer des boucles supplémentaires.
En guise d'introduction, voici un algorithme qui met en œuvre un cas particulier du problème :
Comme vous pouvez le constater, chaque élément de l'ensemble, à l'exception du dernier, nécessite une boucle for supplémentaire. Ce n'est pas une bonne solution, car lorsque vous modifiez le nombre d'éléments de l'ensemble, vous devez insérer ou supprimer des boucles supplémentaires.
Faites une seule boucle while pour l'un de A ou B ou C.
faire une seule boucle while sur l'un de A ou B ou C.
En son sein, analyser si des lacunes sont à atteindre
Le fait est que B et C seront toujours combinés l'un avec l'autre, et vous avez besoin d'une nouvelle boucle pour cela. Ce problème peut peut-être être résolu de manière récursive, mais il existe peut-être des algorithmes plus simples.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Je suppose que je peux oublier le travail à part entière avec MySQL dans MQL (sans mes dlls)... dommage....
Comment ne pas aimer la bibliothèque ?
Dans le cas d'un retour de pointeur, il doit être statique et dans le même processus.
Comment ne pas aimer la bibliothèque ?
Si vous créez votre propre dll, cela n'a pas de sens de décomposer une partie du code en MQL et une autre partie en libe. Tout MySQL sera placé dans cette dll.
Si vous créez votre propre dll, cela n'a aucun sens de diviser une partie du code en MQL et une partie en lib. Tout MySQL sera intégré dans cette dll.
Algorithme d'énumération des fractions
I). Il est demandé de trouver un algorithme pour l'énumération des fractions, de sorte que :
A + B + C + n + ... = 100%
Chaque élément de l'ensemble {A, B, C, n} doit avoir des critères standards : contraintes latérales maximales et minimales et pas incrémental de type : start, stop, steep ;
Un exemple du problème:
Étant donné un ensemble
Y{A,B,C,n} ;
Chaque élément de cet ensemble peut varier de -100% à +100%, par pas de 10%. La somme de tous les éléments modulo doit être égale à 100% : A+B+C+n=100%.
Trouvez une matrice D(x,nombre_d'éléments_multiples_Y) qui décrit la distribution de toutes les fractions possibles entre A, B, C, n, par ex :
A B C
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Exemples de constatations erronées :
A B C
-50 30 120 - l'élément C est supérieur à la limite de 100%.
35 30 35 - l'échelon n'est pas égal à 10 %.
70 30 10 - somme non égale à 100
-50 60 90 - la somme de tous les éléments modulo n'est pas égale à 100% (50+60+90=200)
II*). Trouver la solution de la recherche de fractions pour l'ensemble N avec l'optimiseur MT5/MT4 de sorte que les contraintes de chaque élément de l'ensemble puissent être définies avec les contraintes standard Start, Step, Stop.
En guise d'introduction, voici un algorithme qui met en œuvre un cas particulier du problème :
Comme vous pouvez le constater, chaque élément de l'ensemble, sauf le dernier, nécessite une boucle for supplémentaire. Ce n'est pas une bonne solution, car lorsque vous modifiez le nombre d'éléments de l'ensemble, vous devez insérer ou supprimer des boucles supplémentaires.
En guise d'introduction, voici un algorithme qui met en œuvre un cas particulier du problème :
Comme vous pouvez le constater, chaque élément de l'ensemble, à l'exception du dernier, nécessite une boucle for supplémentaire. Ce n'est pas une bonne solution, car lorsque vous modifiez le nombre d'éléments de l'ensemble, vous devez insérer ou supprimer des boucles supplémentaires.
Faites une seule boucle while pour l'un de A ou B ou C.
En son sein, analyser s'il y a des lacunes
faire une seule boucle while sur l'un de A ou B ou C.
En son sein, analyser si des lacunes sont à atteindre
Le fait est que B et C seront toujours combinés l'un avec l'autre, et vous avez besoin d'une nouvelle boucle pour cela. Ce problème peut peut-être être résolu de manière récursive, mais il existe peut-être des algorithmes plus simples.