Questions sur l'assistant MQL5 et la bibliothèque standard de classes de trading - page 6
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
Maître et classes pour lui déplacé jusqu'à présent dans le "mode de maintenance". Pour la création des classes multivariantes les plus simples sont déjà adaptés (pas prêt maintenant, mais plus tard je vais mettre ici un exemple).
J'ai créé une classe multi-devises basée sur celle générée par l'assistant. Mais je devais corriger la classe des experts.
Au tout début, dans la méthode INIT(), il y a une vérification du symbole de travail et donc pas de multidevise. Le chèque a été retiré et tout s'est bien passé. Regardez l'époque - l'idée au moins que ?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
Bonjour Modérateur !
J'ai une telle question :
MQL5 Wizard dispose de 20 modules de signaux qui effectuent des analyses de divergence, de surachat, de survente, etc. Pourriez-vous nous dire s'il est possible d'emprunter un tel module de signaux à l'assistant MQL5 pour en effectuer l'analyse, mais à partir d'un indicateur personnalisé de votre propre conception et ce qu'il faut faire pour cela ? Faudra-t-il beaucoup retravailler (redesign) ou suffit-il de changer quelque chose dans le module (sa copie) par rapport à la livraison standard ?
Merci d'avance !
ForexMoneyMaker:
Savez-vous s'il est possible d'emprunter un tel module de signaux à l'assistant MQL5 pour en effectuer l'analyse, mais à partir d'un indicateur personnalisé de votre propre conception, et ce qu'il faut faire pour cela ? Faudra-t-il beaucoup retravailler (modifier), ou suffira-t-il de changer quelque chose dans le module (sa copie) par rapport à la livraison standard ?
Bonne question ! Et voici pourquoi : il est vraiment possible de créer un nouveau module avec des modifications minimales des modules standard, simplement en insérant un autre indicateur au lieu d'un seul. Je ne sais pas quand nous serons en mesure d'écrire nous-mêmes un article sur ce sujet, alors je vous le propose :
Qui a connaissances et le désir d'écrire un article "Comment créer votre propre sur la base du module standard de signaux" - écrivez-moi dans le message personnel.
J'ai créé une classe multi-devises basée sur celle générée par l'assistant. Mais je devais corriger la classe des experts.
Au tout début, dans la méthode INIT(), il y a une vérification du symbole de travail et donc pas de multidevise. Le chèque a été retiré et tout s'est bien passé. Regardez l'époque - l'idée au moins que ?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
L'idée est la même, mais :
1. Il n'est pas bon de changer la classe CExpert. Il est bon d'en hériter en surchargeant la méthode Init(...).
2) Il n'est pas nécessaire de modifier la classe CExpert. Vous devez l'écrire :
Pour l'instant...
Bonjour Modérateur !
J'ai une telle question :
MQL5 Wizard dispose de 20 modules de signaux qui effectuent des analyses de divergence, de surachat, de survente, etc. Pourriez-vous nous dire s'il est possible d'emprunter un tel module de signaux à l'assistant MQL5 pour en effectuer l'analyse, mais à partir d'un indicateur personnalisé de votre propre conception et ce qu'il faut faire pour cela ? Faudra-t-il beaucoup retravailler (redesign) ou suffit-il de changer quelque chose dans le module (sa copie) par rapport à la livraison standard ?
Merci d'avance !
L'idée est la même, mais :
1. il n'est pas bon de modifier la classe CExpert. Il est bon d'en hériter en surchargeant la méthode Init(...).
2. vous n'avez pas besoin de modifier la classe CExpert. Vous devez l'écrire :
Jusqu'à présent...
Vous devez redéfinir la méthode Init() et en exclure la vérification du symbole de travail. Mais la p. 2 ne convient pas, car la méthode Init(), entre autres, contient une vérification du nombre de chiffres Digits et si le symbole de travail contient 5 chiffres, et celui qui est testé contient 3 chiffres, il y aura une erreur avec les arrêts/profits. J'ai hérité et passé outre. Tout fonctionne maintenant.
Bien sûr, je ne suis pas un grand spécialiste de la POO, mais il s'avère que pour configurer le programme de manière flexible pour un nombre différent de symboles testés, il faut carrément remplir, par exemple, 21 morceaux de code (tous les symboles), puis par méthode de choix des paramètres d'entrée passer telle ou telle section de code. J'ai fait la même chose sans OOP, mais tous les handles et les valeurs des indicateurs dans l'init ont été écrits dans des tableaux dynamiques, et ensuite OnTick utilisait déjà ces tableaux. Donc, je n'ai pas encore vu d'avantages de la POO ?
P S. Je ne l'ai pas écrit correctement. Il y a peut-être un moyen de connecter dynamiquement les données (gestionnaires et valeurs des indicateurs) au cours du réglage du nombre de caractères travaillant simultanément. Le problème est que tout cela devrait être branché dans Init et utilisé dans OnTic/OnTimer.
Il est nécessaire de redéfinir la méthode Init(), en excluant la vérification du symbole de travail. Et p.2 ne convient pas, parce que la méthode Init(), entre autres choses, vérifie le nombre de chiffres Digits, et si le symbole de travail a 5 chiffres, et celui qui est testé a 3 chiffres, il y aura une erreur avec les arrêts/profits. J'ai hérité et passé outre. Tout fonctionne maintenant.
Bien sûr, je ne suis pas un grand spécialiste de la POO, mais il s'avère que pour configurer de manière flexible le programme pour un nombre différent de symboles testés, il faut carrément remplir, par exemple, 21 morceaux de code (tous les symboles), puis par méthode de choix des paramètres d'entrée passer telle ou telle section de code. J'ai fait la même chose sans OOP, mais tous les handles et les valeurs des indicateurs dans l'init ont été écrits dans des tableaux dynamiques, et ensuite OnTick utilisait déjà ces tableaux. Donc, je n'ai pas encore vu d'avantages de la POO ?
P S. Je ne l'ai pas écrit correctement. Il y a peut-être un moyen de connecter dynamiquement les données (gestionnaires et valeurs des indicateurs) pendant le réglage du nombre de caractères travaillant simultanément. Le problème est que tout cela devrait être branché dans Init et utilisé dans OnTic/OnTimer.
C'est ainsi. Au fait, merci pour le conseil sur le point 2. Je vais ajouter un contrôle et un changement de chiffres.
Merde ! Je viens de tout installer et quand j'ai mis à jour la version 485, l'erreur est réapparue :
2011.08.08 17:13:04 Core 1 tester s'est arrêté car erreur critique OnInit
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 OnInit : erreur d'initialisation des indicateurs
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpert::InitIndicators : erreur d'initialisation des indicateurs de l'objet argent
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::InitIndicators : les paramètres de réglage ne sont pas vérifiés
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetOtherSeries : le changement de série temporelle est interdit
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetPriceSeries : la modification des séries temporelles est interdite
2011.08.08 17:13:04 Core 1 EURUSD,H4 : l'historique commence à partir du 2009.01.02 04:00
2011.08.08 17:13:04 Core 1 EURUSD,H4 : cache de l'historique réservé pour une estimation de 4692 barres
Merde ! Je viens de tout installer et quand j'ai mis à jour vers 485, l'erreur est réapparue :
Les agents ont-ils été mis à jour ? L'EA a-t-il été recompilé dans la nouvelle version ?
C'est justement ça, j'ai recompilé !