Règles de structure. Apprendre à structurer des programmes, explorer les possibilités, les erreurs, les solutions, etc. - page 13

 

Il suffit de s'entraîner pour comprendre le problème. Je ne parle pas du cas manuel+automatique - je ne le pratique pas. Mais d'après ma propre expérience :

"C'est quoi ce bordel avec certains ordres ! Que se passe-t-il en général ?

Alors, regardons l'histoire. Il semble que ce soit devenu clair. Une sorte de défaillance (du côté du courtier, par exemple).

Il n'y a aucun moyen d'intervenir manuellement - il y a des centaines d'ordres (et tous ne sont pas problématiques). Cette merde n'a pas été prévue dans le TS.

Pour interférer dans le code TS, vous devez réfléchir longuement à la manière de le gérer correctement. Qu'est-ce que je peux faire maintenant ?

Eh bien, je suis en train d'écrire un script délicat qui change certains ordres dans la façon dont je vois maintenant".


Combien de temps cela prendra-t-il pour écrire ce script sur le filet. Mais sur MQL4, cela prendra un ordre de grandeur de temps en moins.

Je dirais même qu'avec le filet, il est peu probable que vous compreniez et ressentiez le problème dans l'exemple ci-dessus.

Pratiquez et ne pratiquez que le trading réel.

 
MetaDriver:
C'est des conneries.
J'aimerais bien. Pourquoi n'existe-t-il pas un agrégateur de stratégies décent pour le 5 ? Il est totalement dans le coup.
 
hrenfx:

Il suffit de s'entraîner pour comprendre le problème. Je ne parle pas du cas manuel+automatique - je ne le pratique pas. Mais d'après ma propre expérience :

"C'est quoi ce bordel avec certains ordres ? ! Que se passe-t-il en général ?

Eh bien, regardons l'histoire. Il semble que ce soit devenu clair. Une sorte de défaillance (du côté du courtier, par exemple).

Il n'y a aucun moyen d'intervenir manuellement - il y a des centaines d'ordres (et tous ne sont pas problématiques). Cette merde n'a pas été fournie dans le TS.

Pour interférer dans le code TS, vous devez réfléchir longuement à la manière de le gérer correctement. Qu'est-ce que je peux faire maintenant ?

Eh bien, je suis en train d'écrire un script délicat qui change certains ordres dans la façon dont je vois maintenant".


Il faudra beaucoup de temps pour écrire ce script sur les filets. Mais dans MQL4, cela prendra beaucoup moins de temps.

Le pilote de marché (le synchronisateur) trouve simplement (par déduction) la différence entre la position réelle (sur le serveur du courtier) et la position de marché recommandée (signal de la stratégie) et envoie un ordre pour éliminer la différence.Et quelles que soient les défaillances qui ont eu lieu et de quel côté AVANT ce moment, la meilleure chose à faire dans toute situation, immédiatement après une défaillance de quelque nature que ce soit ou une perte/un rétablissement de la connexion (quelle que soit la durée !), est de ramener la position sur le marché à celle qui est recommandée. Il n'y a aucune exception à cet axiome.


Je dirais même que sur le filet, il est peu probable que vous compreniez et ressentiez le problème dans l'exemple ci-dessus.

Ça, c'est sûr.

La pratique et seulement la pratique du trading réel.

Eh bien, personne ne le conteste.
 
TheXpert:
Si seulement. Pourquoi n'y a-t-il pas d'agrégateur normal pour 5 ? Il est tout à fait dans le sujet.

Si nous parlons d'un agrégateur de stratégies "pour le marché", c'est-à-dire pour faire tourner un tas d'EAs isolés sur le réel (ou sur une démo tout au plus), avec la possibilité de suivre leur trade individuel - moi, par exemple, je n'en ai rien à faire de cette tâche... :)))))

Par conséquent, la maintenance de cette boîte à outils est beaucoup plus difficile que sa rédaction. Il n'y a donc pas de masochistes, c'est pourquoi il n'existe pas d'"agrégateur normal".

Pour ce qui est du "pas normal", c'est-à-dire pour une utilisation individuelle avec combinaison de toutes les stratégies dans un seul EA - j'ai montré la voie, je vous ai même montré le pilote gratuitement. Prêt intégrateur-agrégateur, quel est le problème ? ;)

 
MetaDriver:

Vous avez beaucoup de problèmes avec elle, et il est impossible de les résoudre purement sans les ordres de la CCA.

Les ordres OCO ne sont pas nécessaires. L'architecture est la même que celle décrite ci-dessus, et l'agrégation de plusieurs CT est une réalité, même en cas de compensation.

Dans cette architecture, tous les CTs sont exécutés en virtualité - leur propre testeur avec un historique jusqu'au moment présent. Et puis les poses sommaires sont synchronisées avec la réalité.

Bien entendu, la visualisation de cet environnement virtuel est presque une visualisation de MT4.

Vous comprenez que tout agrégateur FOREX sur le même MT4 fait exactement ce non-sens en particulier. Autrement dit, vous exécutez votre TS dans un environnement virtuel - dans votre MT4. L'environnement virtuel vous est fourni par le pont de l'agrégateur. Et le côté réel que vous ne voyez pas réellement (sur quel LP ce qui a exécuté là), mais vous êtes magnifiquement montré tout.

 
hrenfx:

Les ordres OCO ne sont pas nécessaires. L'architecture est la même que celle décrite ci-dessus, et l'agrégation de plusieurs CT est une réalité même en cas de compensation.

Dans cette architecture, tous les CTs sont exécutés en virtualité - leur propre testeur avec un historique pour le moment présent. Et puis les poses sommaires sont déjà synchronisées avec la réalité.

Bien entendu, la visualisation de cet environnement virtuel est presque une visualisation de MT4.

Vous comprenez que tout agrégateur FOREX sur le même MT4 fait exactement ce non-sens en particulier. C'est-à-dire que vous exécutez dans un environnement virtuel votre TS dans votre MT4. L'environnement virtuel vous est fourni par le pont de l'agrégateur. Et le côté réel que vous ne voyez pas réellement (sur lequel LP ce qui a été exécuté là), mais vous êtes magnifiquement montré tout.

Donc, je suis d'accord avec cela. Je ne suis pas d'accord avec Andrew dans son affirmation qu'il n'y a pas d'"agrégateurs normaux". Pour un usage individuel, un tel agrégateur peut être créé sans aucun problème en principe. Mon schéma n'a tout simplement pas de testeurs virtuels, mais ils peuvent être créés sous forme d'indicateurs, le problème de la visualisation est alors grandement simplifié.
 
hrenfx:

Dans cette architecture, tous les CTs sont exécutés en virtualité - leur propre testeur avec un historique jusqu'au moment présent. Et puis les poses totales sont synchronisées avec la réalité.

Solution trop complexe. Il n'y a pas assez de transparence pour le développeur final.
 
MetaDriver:

Je n'ai pas le problème de distinguer entre les conditions d'achat et les conditions de vente. Cela ne devrait pas être au niveau de la stratégie. La tâche de la stratégie est de prédire si le marché va monter ou descendre dans le moment suivant, et avec quelle probabilité. La position recommandée sur le marché en dépend. Ce qui était là dans le passé, qu'il y ait des positions ouvertes (dans un sens ou dans l'autre) maintenant ou non - cela n'a absolument aucune importance. Si vous ne vous y mettez pas, vous pouvez passer la moitié de votre vie à résoudre des problèmes inexistants. Parfois, vous pouvez même les résoudre très joliment.

Comment cela peut-il ne pas avoir d'importance ? Toute stratégie, à son niveau logique, connaît toujours son état actuel ! Prenons une stratégie de croisement simple : elle n'a que deux états, elle est soit acheteuse, soit vendeuse. Sans mémoriser sa position, il ouvrira une position longue chaque fois qu'il verra que la moyenne rapide est supérieure à la moyenne lente. Alors, que doit faire le synchronisateur ? Dites-lui : "non, vous avez déjà une position longue, je ne la laisserai pas en ouvrir une autre !

Ma solution est universelle, la stratégie décide par elle-même du nombre d'ordres et de la direction dans laquelle elle peut rester ouverte. Si vous voulez une position pour acheter et deux pour vendre, pas de problème. La classe de base dispose de toutes les informations nécessaires pour prendre des décisions. Au niveau du terminal, il n'y a pas de position nette, alors que la stratégie elle-même fonctionne dans un mode multi positions confortable.

Le Conseiller Expert basé sur le modèle que j'ai suggéré aura automatiquement les propriétés d'un multi-expert. Je n'aurai pas à ajouter ou à modifier quoi que ce soit. Les positions de différents EA sur un même symbole ne s'effondreront pas en filet, il est aussi facile de programmer une grille ou un casier dans ce modèle que dans toute autre stratégie. En d'autres termes, une unification complète de la mise en œuvre du programme est réalisée indépendamment de la logique du conseiller expert!

 
C-4:

Comment cela pourrait-il ne pas avoir d'importance ? Toute stratégie, à son niveau logique, connaît toujours son état actuel ! Prenons une stratégie de croisement simple : elle n'a que deux états, elle est soit acheteuse, soit vendeuse. Sans mémoriser sa position, il ouvrira une position longue chaque fois qu'il verra que la moyenne rapide est supérieure à la moyenne lente. Alors, que doit faire le synchronisateur ? Dites-lui : "non, vous avez déjà une position longue, je ne la laisserai pas en ouvrir une autre !

Ma solution est universelle, la stratégie décide par elle-même du nombre d'ordres et de la direction dans laquelle elle peut rester ouverte. Si vous voulez une position pour acheter et deux pour vendre, pas de problème. La classe de base dispose de toutes les informations nécessaires pour prendre des décisions. Au niveau du terminal, il n'y a pas de position nette, alors que la stratégie elle-même fonctionne dans un mode multi positions confortable.

Le Conseiller Expert basé sur le modèle que j'ai suggéré aura automatiquement les propriétés d'un multi-expert. Je n'aurai pas à ajouter ou à modifier quoi que ce soit. Les positions de différents EA sur un même symbole ne s'effondreront pas en filet, il est aussi facile de programmer une grille ou un casier dans ce modèle que dans toute autre stratégie. En d'autres termes, une unification complète de la mise en œuvre du programme est réalisée indépendamment de la logique du conseiller expert!

Le signal est un changement de la situation vers celle qui est acceptable pour une position de trading dans une certaine direction.

Pourquoi ne pas signer les signaux avec une signature individuelle, le signal change, la signature change.

Ensuite, l'exécution fonctionnera non seulement avec le signal, mais aussi avec la signature, si le signal a déjà été élaboré, il n'est pas nécessaire de le négocier à nouveau.

 
Urain:

Un signal est un changement de la situation qui est acceptable pour une position de négociation dans une certaine direction.

Pourquoi ne pas signer les signaux avec une signature individuelle, le changement de signal modifiera la signature.

Ensuite, l'exécution fonctionnera non seulement avec le signal, mais aussi avec la signature, si le signal a déjà été élaboré, il n'est pas nécessaire de le négocier à nouveau.

Dans ce cas, nous devrons stocker l'historique des signaux élaborés, ce qui est très coûteux. Considérons à nouveau le croisement de 2 moyennes. Supposons que nous redémarrions le Conseiller Expert. Il n'y a pas de nouveau cross pour l'entrée et l'EA devra en quelque sorte restaurer son historique de trading et comprendre qu'il y a eu un crossover et qu'il devrait être dans l'état Buy et que ce signal a été traité et que nous ne devrions pas ouvrir une nouvelle position, mais nous devons trouver l'ancienne position, mais elle ne sera pas facile à trouver, car la position actuelle n'appartient pas forcément à un seul EA .... En somme, c'est un cauchemar. C'est la voie épineuse suggérée par hrenfx : écrire un testeur d'historique dans chaque robot, qui collecterait les signaux historiques, calculerait s'ils ont fonctionné ou non, puis stockerait les volumes de stratégies, etc. En conséquence, la complexité du développement augmente d'un ordre de grandeur, alors qu'il n'existe toujours pas de solution fiable.