La tâche de recherche des commandes - page 4

 
Михаил:

...

Donnez-moi un exemple (MT5) où vous devez absolument laisser un ordre précédemment placé sur le marché,

...

Par exemple, un stoppeur sur une position stop-loss.
 
Vladimir Pastushak:

En fin de compte, même si le système d'exploitation du serveur est en panne, vous pouvez utiliser un PC domestique qui rétablira le contrôle du compte au moment où il est nécessaire de redémarrer le servo.

Dans mon expérience de travail avec les serveurs VDS / VPS, le système d'exploitation n'a jamais fui, mais les redémarrages sont des événements imprévus et programmés.

L'essence de ma question est d'écrire correctement un code qui collecte des informations sur la situation actuelle...

Ce qui permet de RESTAURER, et non d'effacer. Sur quoi ai-je écrit ? A propos de la restauration, ce qui est bien. On m'a dit de le supprimer. Vous devriez faire plus attention ;)
 
Artyom Trishkin:
Un qui va RESTAURER, pas supprimer. Sur quoi ai-je écrit ? A propos de la restauration, ce qui est une bonne chose. On m'a dit que vous deviez supprimer. Vous devriez faire plus attention ;)

Je suis d'accord avec vous, pourquoi auriez-vous besoin d'un EA qui peut ouvrir et fermer des ordres en packs lorsque le système échoue, perdant tout sur le spread....

Le conseiller doit rassembler les informations par condition et ensuite travailler selon son algorithme ...

 
Vasiliy Sokolov:
Merde, mec, c'est pas des conneries. Vous avez vous-même défini la bonne direction : l'état doit être restauré par l'environnement actuel, ce que MT vous donne est l'option la plus fiable. Au lieu de cela, vous écrivez une longue et inutile classe Info, dans laquelle vous devez d'une manière ou d'une autre fourrer les valeurs trouvées par les fonctions externes. Oui, il contiendra éventuellement les variables dont vous avez besoin : le ticket maximum et minimum en termes de prix pour la commande, ainsi que d'autres éléments importants pour vous. Mais en réalité, le problème est résolu par un conteneur spécialisé d'ordres : Imaginez que vous avez une liste d'ordres, où chaque ordre représente une ligne de tableau avec de nombreuses colonnes (identifiant de l'ordre, heure d'ouverture, prix d'ouverture, profit, etc.) Vous effectuez un tri par l'une des colonnes, et vous obtenez exactement la séquence dont vous avez besoin. Ainsi, tout cela peut être fait à l'aide de classes, que vous aimez utiliser (bien que je n'y connaisse rien, désolé). J'écrirai comment le faire demain, si cela vous intéresse.
J'espère que vous n'avez pas juste secoué l'air... Ou plutôt des octets d'internet...
 
Dmitry Fedoseev:
Par exemple, un bouchon sur la position stop loss.

Qu'est-ce qui vous empêche de supprimer puis de réinstaller lors de l'initialisation ?

Pourquoi exactement RESTAURER le contrôle ?

 
Михаил:

Qu'est-ce qui vous empêche de supprimer puis de réinstaller lors de l'initialisation ?

Pourquoi avons-nous besoin de RESTAURER le contrôle ?

En effet, avec cette approche, nous ne collectons les informations sur l'environnement qu'une seule fois, au moment de l'initialisation,

Il arrive parfois que le courtier divise l'ordre ouvert, c'est-à-dire que vous envoyez 0,05 et que le courtier l'accepte comme 0,02 et 0,03.

Il est donc préférable de recevoir des informations sur l'environnement à chaque tic ou à un certain intervalle de temps.

Par exemple, je pense que l'EA devrait disposer en permanence de toutes les informations concernant le symbole négocié et les ordres.

 
Михаил:

1. qu'est-ce qui empêche de le supprimer lors de l'initialisation puis de le réinstaller ?

2. Pourquoi exactement RESTAURER le contrôle ?

1. Avez-vous entendu l'anecdote sur l'ablation des amygdales ? Il n'y a rien pour l'arrêter.

2. Redondance minimale, interférence minimale, et donc plus grande conformité au plan prévu. Les ordres en suspens sont exécutés sans le contrôle du conseiller-expert. Par conséquent, il serait plus raisonnable de laisser l'ordre sur le marché, puis de rétablir le contrôle. Le redémarrage ne dure que quelques minutes, si pendant ce temps l'ordre fonctionne, la stratégie ne sera probablement pas encore cassée, le conseiller expert analysera la situation et continuera. Si nous supprimons l'ordre, il ne sera pas placé au même endroit et nous devrons corriger la stratégie par l'ordre de marché, ce qui rend l'algorithme plus complexe.

Lors du redémarrage, nous devons tout supprimer et fermer, puis recommencer. Cela ne résiste pas à la critique.

Il existe un principe bien connu : "ne pas multiplier inutilement les entités". Et un principe similaire peut et doit être respecté ici - ne pas effectuer d'opérations commerciales inutiles.

 
Dmitry Fedoseev:

1. Avez-vous entendu l'anecdote de l'ablation des amygdales ? Rien ne se met en travers du chemin.

2. Un minimum d'actions inutiles, un minimum d'interférences, ce qui signifie un meilleur respect du plan prévu. Les ordres en suspens sont exécutés sans le contrôle du conseiller-expert. Par conséquent, il serait plus raisonnable de laisser l'ordre sur le marché, puis de rétablir le contrôle. Le redémarrage ne dure que quelques minutes, si pendant ce temps l'ordre fonctionne, la stratégie ne sera probablement pas encore cassée, le conseiller expert analysera la situation et continuera. Si nous supprimons l'ordre, nous ne pourrons pas le replacer au même endroit et nous devrons alors corriger la stratégie par l'ordre de marché, ce qui rend l'algorithme plus complexe.

Lors du redémarrage, nous devons tout supprimer et fermer, puis recommencer. Cela ne résiste pas à la critique.

Il existe un principe bien connu : "ne pas multiplier inutilement les entités". Et ce principe peut et doit être suivi ici - ne pas effectuer d'opérations commerciales inutiles.

Pour une raison quelconque, j'avais prédit cette réponse - RIEN de concret !

Je n'ai pas eu une seule panne en 4,5 ans et je n'ai pas eu un seul blocage en 3,5 ans d'utilisation du terminal.

Lorsque vous redémarrez le conseiller expert après un "crash" (si jamais cela se produit), le nombre et la nature des ordres que vous aviez ne comptent pas, et vous ne saurez jamais lesquels vous avez saisis.

Le nombre de commandes que vous avez passées n'a pas d'importance, mais le fait que vous ayez ou non une POSITION est important, car il se peut que vous deviez SUPPRIMER toutes vos commandes antérieures qui sont maintenant clôturées.

Parce qu'il se peut que vous deviez annuler des ordres qui ne correspondent pas à la position que vous avez déjà, et que vous souhaitiez revérifier tous vos ordres précédents qui ne correspondent pas actuellement à la position que vous avez.

Alors pourquoi rétablir le contrôle (une fois par an ! !!) si vous devez de toute façon supprimer les ordres précédents ?

Cela a-t-il un sens d'écrire une tonne de code ?

Pour quoi faire ?

 
Михаил:

J'ai en quelque sorte anticipé cette réponse - RIEN de concret !

Je n'ai pas eu une seule panne en 4,5 ans et en 3,5 ans d'utilisation du terminal, je n'ai jamais eu de problème.

Lorsque vous redémarrez le conseiller expert, après le "crash" (s'il se produit un jour), le nombre et la nature des ordres que vous aviez ne comptent pas, et vous ne saurez jamais lesquels.

Lorsque vous chargez un EA, si jamais vous en avez un, le nombre d'ordres que vous avez n'a pas d'importance, mais il est important que vous ayez ou non une POSITION car vous pouvez être amené à SUPPRIMER tous vos ordres précédents qui sont maintenant au niveau que vous avez entré.

Car il se peut que vous deviez annuler des ordres qui ne correspondent pas à la position que vous avez déjà, et que vous souhaitiez revérifier votre position si elle ne fonctionne pas.

Alors pourquoi rétablir le contrôle (une fois par an ! !!) si vous devez de toute façon supprimer les ordres précédents ?

Cela a-t-il un sens d'écrire une tonne de code ?

Pour quoi faire ?

Plus précisément, c'est vous qui êtes intéressé à occuper un tel poste pour une raison quelconque.

Personne ne vous interdit d'écrire des jouets pour votre propre usage. Vous avez pris cette position parce que vous écrivez pour vous-même et vous n'allez certainement pas vous rendre la vie plus difficile. Si vous étiez un client, vous auriez une position complètement différente.

Outre le redémarrage, vous pouvez également subir des interruptions de connexion, après quoi vous devez rétablir le contrôle. Le rétablissement du contrôle n'existe pas, car sans contrôle, il ne devrait rien y avoir du tout. À chaque tic, vous analysez la situation et prenez une décision.

Je comprends très bien votre point de vue, mais l'écriture d'un EA stable et redémarrable nécessite une approche assez différente et un autre regard sur l'algorithme. Ce n'est pas facile, et pour certaines personnes, c'est même impossible.

 
Dmitry Fedoseev:

Tout est spécifique, c'est vous qui êtes intéressé à occuper ce poste pour une raison quelconque.

Personne ne vous interdit d'écrire des jouets pour vous-même ou pour le testeur. Vous avez pris ce poste parce que vous écrivez pour vous-même, pour ne pas vous compliquer la vie. Si vous étiez un client, vous auriez une position complètement différente.

Outre le redémarrage, vous pouvez également subir des interruptions de connexion, après quoi vous devez rétablir le contrôle. Le rétablissement du contrôle n'existe pas, car sans contrôle, il ne devrait rien y avoir du tout. À chaque instant, vous analysez la situation et prenez une décision.

Et le client s'en soucie ? Le plus important pour le client est que le conseiller expert fonctionne !

Si la connexion est interrompue, vous ne perdez pas le contrôle, car le ticket de commande n'a pas été perdu !

P/S Et, Dimitri, qu'est-ce qui te fait penser que j'écris des jouets pour le testeur ?

Si je n'écris rien pour les clients et que je ne vends pas mes EA, cela n'a rien à voir avec le fait d'être un client.

cela ne signifie pas que ce sont des "jouets" !