Caractéristiques du langage mql5, subtilités et techniques - page 61
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
J'ai maintenant rencontré un problème lorsque l'historique contient plus de 1000 transactions et lorsque j'appelle la fonction de traitement de l'historique, par exemple, pour calculer le bénéfice de l'historique. + L'information sur le graphique commence à ralentir et le terminal se raccroche. C'est-à-dire que les citations sont accompagnées d'un délai.
Sans le code, on ne peut que deviner.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Particularités de mql5, trucs et astuces
Alexey Navoykov, 2017.07.21 17:04
Il est décevant qu'il n'y ait pas d'héritage multiple dans MQL. Cependant, nous pouvons le faire fonctionner de toutes les manières possibles - avec des modèles et des macros - comment les éviter).
Voici ce que j'ai fait.Toutes les classes sources doivent être déclarées comme des modèles définissant la classe mère.
Bien sûr, il y a quelques subtilités, liées au fait que les classes sont héritées séquentiellement (dans l'ordre que nous avons défini), plutôt que simultanément (comme dans un véritable héritage multiple). En particulier, ils auront des priorités différentes lorsqu'une surcharge se produit. En outre, si une même classe de modèle participe plusieurs fois à la chaîne d'héritage, il s'agira de classes complètement différentes, qui ne sont en aucun cas liées les unes aux autres. Nous devons donc être prudents. Mais il n'y a aucun problème avec les interfaces, vous pouvez hériter sans restrictions.
Mais qu'en est-il sans déclaration sous forme de modèles ?
Par exemple, nous avons deux bibliothèques autosuffisantes prêtes à l'emploi :
classe CLib1 : public CClass1 { };et
classe CLib2 : public CClass2 { } ;
Nous devons faire en sorte qu'il y ait un tel héritage dans la classe du programme :
CLib1--> CLib2 --> CProgram pour que les deux bibliothèques soient disponibles dans la classe CProgram. Et la bibliothèque CLib1 sera disponible dans CLib2.
Cela empêche les deux bibliothèques d'être modifiées de quelque façon que ce soit.
Est-ce possible ?
Avec un héritage multiple, ce serait probablement comme ceci
classe CProgram : public CLib1,CLib2 { } ;
Et sans déclaration type ?
Par exemple, nous avons deux bibliothèques autosuffisantes prêtes à l'emploi :
classe CLib1 : public CClass1 { };et
classe CLib2 : public CClass2 { } ;
Nous devons créer un tel héritage dans la classe du programme :
CLib1--> CLib2 --> CProgram pour que les deux bibliothèques soient disponibles dans la classe CProgram. Et la bibliothèque CLib1 sera disponible dans CLib2.
Cela empêche les deux bibliothèques d'être modifiées de quelque façon que ce soit.
Est-ce possible ?
Avec un héritage multiple, ce serait probablement comme ceci
classe CProgram : public CLib1,CLib2 { } ;
Vous ne perdrez rien si vous faites cela :
class CProgram { CLib1 lib1; CLib2 lib2; };
Vous ne perdrez rien en faisant cela :
La meilleure façon d'obtenir des données à partir des fonctions de copie asynchrones (CopyRates, CopyTicks, etc.) est probablement via EventChartCustom.
Particulièrement pertinent pour les indicateurs.
Il est possible de savoir que le serveur de transaction a changé, et pas seulement le compte -AccountInfoString (ACCOUNT_SERVER) dans OnDeinit (EA, pas indicateur) retournera le nouveau serveur de transaction.
Mémo
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Mon mécontentement aux testeurs de stratégie. aux développeurs MQL
fxsaber, 2017.12.04 09:11
Résultat
Il existe toute une classe d'indicateurs qui superposent des graphiques d'autres symboles sur le graphique des prix. Ils se font de la même manière - par le biais de tampons indicateurs.
Cependant, dans MT5, il existe un merveilleux OBJ_CHART, qui vous permet de réaliser cette tâche de manière beaucoup plus belle et sans tampons d'indicateurs.
Par exemple, vous pouvez placer n'importe quel indicateur et voir immédiatement comment il se présente sur un autre symbole.
Schéma esclave - plusieurs graphiques sont affichés en arrière-plan du graphique principal.
Par exemple, vous pouvez lancer n'importe quel indicateur et voir immédiatement comment il se présente sur un autre symbole.
Schéma esclave - plusieurs graphiques sont affichés en arrière-plan du graphique principal.