Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Laquelle ?
J'ai essayé sur deux indicateurs. Les deux fonctionnaient bien, mais plus maintenant.
2) il y a souvent des problèmes lorsqu'on essaie de tester le run avec la connexion aux cores (fonctionne au nième run). voir l'image.
Un groupe de télépathes se penche déjà sur votre problème.
Il n'est pas nécessaire d'être télépathe pour comprendre que la fonction iCustom() ne fonctionne pas comme elle le devrait.
pour le tester, vous pouvez exécuter le code de l'Expert Advisor :
double buffer[] ;
ResetLastError() ;
int MA_handle = iCustom(NULL, 0, "Examples_Custom Moving Average", 21, 0, MODE_SMMA) ;
//int MA_handle = iMA(NULL, 0, 21, 0, MODE_SMMA, PRICE_MEDIAN) ;
Print("MA_handle = ", MA_handle, " error = ", GetLastError()) ;
int copy = CopyBuffer(MA_handle, 0, 0, 5, buffer) ;
if (copy == -1) Print("Failed to get Custom Moving Average indicator") ;
sinon
for (int i = 0 ; i < 5 ; i++) Print("buffer[", i, "] = ", buffer[i] ;
et le message "Failed to get Custom Moving Average indicator values" s'affiche.
i.e., CopyBuffer donne une erreur (retourne -1) pour le handle de l'indicateur iCustom(). si nous prenons l'indicateur standard iMA(), le même code fonctionne !
Regardez la direction d'indexation du tableau résultant, peut-être doit-il être étendu.
tout va bien avec la direction de l'indexation et dans les versions précédentes cela fonctionnait aussi. en 448 et 450 cela ne fonctionnait pas.
J'ai suggéré à plusieurs reprises que les développeurs devraient tester la fonctionnalité principale du terminal de manière plus approfondie,
mais de build en build ils obtiennent des erreurs critiques différentes au lieu de critiques.
C'est-à-dire qu'une chose est réparée et qu'une autre qui fonctionnait normalement se casse et qu'il n'y a pas de fin en vue.
Le glissement avant la copie des données, il faut du temps pour calculer l'indicateur, donc même si la poignée revient correctement, les données n'ont pas encore été calculées,
En général, il est recommandé d'appeler les indicateurs dans l'inite, et de demander les données déjà dans OnTick() ou d'autres fonctions spéciales.
Encore une fois, vous copiez 5 données à partir de la barre zéro, mais dans le tampon de copie, la barre zéro est quelque part autour de 1970 (dépend des paramètres de la barre maximale), c'est pourquoi j'ai dit de regarder l'indexation du tableau.
Le glissement avant la copie des données, il faut du temps pour calculer l'indicateur, donc bien que la poignée revienne correctement, les données n'ont pas encore été calculées.
Sleep(1000) ; // 1 sec après avoir appelé iCustom() a aidé, MAIS. Dois-je prendre le temps de retard maintenant ? Comment puis-je savoir combien de temps le processus de calcul va prendre ?
c'est une erreur de donner la poignée d'indicateur correcte pointant vers des déchets ! et cela devait fonctionner correctement avant car il n'y avait pas de tel problème.
en général, il est recommandé d'appeler les indicateurs dans les initiales, et de demander les données déjà dans OnTick() ou d'autres fonctions spéciales.
C'est un bon conseil pour moi, merci ) car si j'avais fait comme ça, je n'aurais pas vu le problème....
Encore une fois, vous copiez 5 données de la barre zéro, mais dans copyBuffer la barre zéro est quelque part autour de 1970 (dépend des paramètres de la barre maximale), c'est pourquoi j'ai dit de regarder l'indexation du tableau.
D'après ce que j'ai compris de la documentation d'aide, dans CopyBuffer() la barre zéro est en fait "le temps présent", et déjà quand vous le copiez, le tableau est étendu.
Sleep(1000) ; // 1 sec. après avoir appelé iCustom() a aidé, MAIS... Comment puis-je savoir combien de temps le processus de calcul va prendre ?
c'est une erreur de donner la poignée d'indicateur correcte indiquant les déchets ! et cela devait fonctionner correctement avant, car il n'y avait pas un tel problème.
Les options suivantes de l'indicateur (encerclées en rouge) peuvent-elles être définies par programme ?
Je n'ai pas trouvé de moyen de le faire.
Je ne sais pas si c'est un bug, mais je pense qu'il y a des erreurs dans le code des bibliothèques pour tous les types de manœuvres (SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA) pour le maître, voirCSignalTEMA::ShortCondition()
Également dans la bibliothèque SignalMA dans
Je ne sais pas si c'est un bug, mais je pense qu'il y a des erreurs dans le code des bibliothèques pour tous les types de manœuvres (SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA) pour le maître, voir CSignalTEMA::ShortCondition()
Également dans la bibliothèque SignalMA dans
https://www.mql5.com/ru/forum/1111/page391#comment_67358
Donnez la ligne complète de l'appel.
/i:<chemin du dossier MQL5>.
Donnez la chaîne d'appel complète.
Voici toutes les options essayées :
Après chaque tentative, une vérification a été effectuée pour voir si le fichier existait sur le chemin
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\44 D6FB562C883F0C70690F3306A3851D\MQL5\Scripts\sInstallerTestScript.ex5
L'intrus sur le chemin
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\44 D6FB562C883F0C70690F3306A3851D\MQL5\Include\InstallerTestInclude\IncInstallerTest.mqh
existe.
Le contrôle d'existence a été effectué par la fonction :