Initialiser et réinitialiser automatiquement l'EA à partir d'un fichier - page 6

 
Romal001:
Bonsoir dites-moi la qualité de test du robot pendant combien d'années il ne devrait pas avoir de métiers déficitaires ??????????. Si vous pouvez me répondre, envoyez-moi un message in praesentia ; merci d'avance !
Étant donné la mauvaise qualité des données historiques, quelle que soit leur source, même quelques années ne constituent pas un indicateur. Le conseiller expert doit être optimisé et testé pour un courtier particulier, mais n'oubliez pas qu'un courtier "particulier" a beaucoup de "trous" dans son histoire. Par conséquent, les tests dépendent de la période sur laquelle l'EA fonctionne. Si vous êtes sur M1-M5, 6 à 12 mois suffisent pour tirer des conclusions. Si nous sommes sur M15 et plus, nous avons besoin de 12 mois pour tester et espérer que les données historiques sont correctes. Et ce ne sont pas les Ducascopy et autres qui nous sauveront ici.
 
Vasiliy Sokolov:
Vous ne poussez pas votre expérience mythique ici. De nombreuses personnes ici ont une réelle expérience du trading, y compris sur FORTS, y compris en utilisant MetaTrader 5. Si les traders n'ont pas d'argent sur le FORTS, ils doivent négocier sur le FORTS, et ensuite ils ne peuvent pas négocier sur le FORTS sur le marché réel.

En ce qui concerne l'expérience de Michael.

Il y a plus d'un an, lui et moi avons échangé nos services. Je lui ai fourni un service, et en retour il m'a écrit un EA pour MT5 FORTS. Au cours de l'année, il y a eu des crashs boursiers, des coupures de courant et des pannes de connexion, mais le robot qu'il a écrit n'a jamais commis la moindre erreur.

Le seul coup dur a été donné lorsque le serveur de la Bourse s'est planté en raison de dépassements de transactions, mais cela est dû au fait que les développeurs n'ont pas encore effectué un retour normal des codes du serveur de négociation.

Nous avons discuté de ce problème avec lui et je ne voulais pas bloquer l'EA sur le code de retour de requête invalide car le serveur de trading, parfois, en fonctionnement normal, renvoie ce code de retour (code 10013).

Si vous pensez qu'il s'agit d'un problème inventé qui n'existe que dans sa tête, veuillez lui indiquer comment le contourner.

 
kond777:

En ce qui concerne l'expérience de Michael.

Il y a plus d'un an, lui et moi avons échangé nos services. Je lui ai fourni un service, et en retour il m'a écrit un EA pour MT5 FORTS. Au cours de l'année, il y a eu des crashs boursiers, des coupures de courant et des pannes de connexion, mais le robot qu'il a écrit n'a jamais commis la moindre erreur.

Le seul coup dur a été donné lorsque le serveur de la Bourse s'est planté en raison de dépassements de transactions, mais cela est dû au fait que les développeurs n'ont pas encore effectué un retour normal des codes du serveur de négociation.

Nous avons discuté de ce problème avec lui et je ne voulais pas bloquer l'EA sur le code de retour de requête invalide car le serveur de trading, parfois, en fonctionnement normal, renvoie ce code de retour (code 10013).

Si vous pensez qu'il s'agit d'un problème artificiel qui n'existe que dans sa tête, veuillez lui indiquer comment le contourner.

Vous n'avez pas besoin de revoir quelque chose sur l'expérience de Mihail s'il a déjà dit que ses EA dans l'Inite sont stupidement supprimer les ordres et puis recommencer à nouveau, et cela se produit à chaque démarrage. Qu'y a-t-il à dire ?

Nous ne pouvons rien conseiller, car la portée de ces bêtises est inconnue, ni dans son esprit, ni dans celui de ses défenseurs. Ici vous avez écrit "bloquer le conseiller expert par le code de retour". Pourquoi le bloquer ? Vous devez faire ce qu'il faut. Vous avez vos propres principes de programmation de l'EA (personne n'a vu le code et il est peu probable qu'il le voie), alors réfléchissez vous-même à la manière de gérer vos propres situations particulières.

 
Romal001:
Bonsoir dites-moi la qualité des tests du robot pendant combien d'années il ne devrait pas avoir de métiers déficitaires ??????????. Si vous pouvez me donner la réponse dans un message privé, merci d'avance !
C'est possible. Sans perte de transactions, c'est irréaliste et suspect.
 
Dmitry Fedoseev:

Pourquoi nous en dire plus sur l'expérience de Mikhail alors que lui-même nous a déjà dit que ses EAs dans l'Inite suppriment bêtement les ordres puis recommencent, et ainsi de suite à chaque démarrage. Qu'y a-t-il à dire ?

Nous ne pouvons rien conseiller, car la portée de ces bêtises est inconnue, ni dans son esprit, ni dans celui de ses défenseurs. Ici vous avez écrit "bloquer le conseiller expert par le code de retour". Pourquoi le bloquer ? Vous devez faire ce qu'il faut. Vous avez vos propres principes de programmation de l'EA (personne n'a vu le code et il est peu probable qu'il le voie), alors réfléchissez vous-même à la manière de gérer vos propres situations particulières.

 
Oui. Les images en couleur pour adultes sont des arguments très forts.
 
Dmitry Fedoseev:

Pourquoi nous en dire plus sur l'expérience de Mikhail alors que lui-même nous a déjà dit que ses EAs dans l'Inite suppriment bêtement les ordres puis recommencent, et ainsi de suite à chaque démarrage. Qu'y a-t-il à dire ?

Nous ne pouvons rien conseiller, car la portée de ces bêtises est inconnue, ni dans son esprit, ni dans celui de ses défenseurs. Ici vous avez écrit "bloquer le conseiller expert par le code de retour". Pourquoi le bloquer ? Vous devez faire ce qu'il faut. Vous avez vos propres principes de programmation de l'EA (personne n'a vu le code et il est peu probable qu'il le voie), alors réfléchissez vous-même à la manière de gérer vos propres situations particulières.

Je ne défends personne, je ne fais qu'énoncer les faits dont je dispose.

Pour en revenir à l'erreur sur les codes de retour. Michael suggère de suspendre l'évaluation environnementale après trois demandes, arguant qu'il s'agit d'un oubli de la part des développeurs.

https://www.mql5.com/ru/forum/58012/page2#comment_2017705

Je pense, comme vous, que cela ne vaut pas la peine d'arrêter le travailleur EA, alors comment pensez-vous que le problème mentionné dans le lien ci-dessus peut être résolu ?

ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 2 - Категория: автоматические торговые системы
 

Évidemment, si :

Когда "подглючивает" сервер МТ5 или сбой на бирже, то происходит следующее:

L'examinateur envoie des ordres pour supprimer un ordre EXISTANT et la réponse revient

"Demande non valide"! !!! Et l'EA continue de "marteler" le serveur avec des ordres de suppression.

de l'ordre.

Alors il faut continuer à taper. Il n'est pas nécessaire de bloquer le conseiller expert. Peut-être que le nombre d'erreurs augmente et que l'intervalle de temps entre les tentatives augmente. La solution la plus simple est de faire plusieurs tentatives et de faire une pause jusqu'à l'ouverture de la prochaine barre.

 
Dmitry Fedoseev:

Cela a déjà été écrit ici - recalculez tout à nouveau. C'est-à-dire analyser la situation avec des ordres. Stocker certaines données dans des fichiers ou de toute autre manière (peut-être dans des variables globales) - ce n'est pas important. L'essentiel est que si certaines données sont nécessaires, elles sont stockées en liaison avec les tickets de commande, et dans ce cas il n'y a pas de problème de données périmées - nous avons la commande - nous avons les données, pas de commande - nous n'avons pas de données. Il peut y avoir des données qui ne sont pas liées à une commande spécifique, mais nous devons réfléchir à chaque cas et c'est un problème soluble.

Le défrichage est vraiment le problème le plus compliqué. Mais ce n'est pas un problème de stockage de données à long terme (ou de leur obsolescence), nous pouvons stocker des données dans des variables simples dans le conseiller expert (un peu risqué, mais seulement pour 5 minutes). La difficulté ici est de savoir comment y faire face plus tard. Nous pouvons créer un groupe de variables globales terminales pour chaque ordre et y stocker le prix d'ouverture. Ensuite, lorsque les ordres non marqués apparaissent (ou à l'ouverture d'une nouvelle journée), nous regardons les derniers ordres fermés dans l'historique, nous les faisons correspondre en fonction des caractéristiques qui peuvent être utilisées (par exemple, le lot), et nous réinitialisons toutes les variables globales de l'ordre fermé au nouvel ordre.

Merci. L'idée principale est claire. Je pensais qu'il existait une solution simple et universelle pour toutes les situations.
 
Andrey Khatimlianskii:

Je suis d'accord avec les intervenants précédents (presque tous).

  1. Nous restituons tout ce que nous pouvons de l'environnement du marché.
  2. Tout le reste est stocké avec une référence à quelque chose (ticket de commande, heure de début de journée, etc.).
Définissez simplement une "date d'expiration" différente pour chacune des variables stockées (elle ne peut pas être la même pour toutes), et ne chargez que si elle n'a pas expiré.

Dans votre exemple avec le nombre de demandes : ajoutez simplement une variable supplémentaire - l'heure de début du dernier jour. Le jour a changé - le compteur a été remis à zéro, et la nouvelle date a été enregistrée.

Pour l'exemple de la réouverture d'une position : vous devez décider quels événements peuvent rendre cette information inutilisable. Par exemple, comme l'a conseillé Mikhail, s'il n'y a pas de poste, oubliez tout, et s'il y en a un, considérez que les informations sont à jour.

En général, ce qu'il faut, ce n'est pas une recette générale, mais des spécificités.

Je vois.

Concrètement : demain, je vais réfléchir à la manière de prendre une position à la volée sur FORTS. En fait, ce dont j'ai le plus besoin, c'est de connaître le prix d'ouverture réel d'une position qui a été compensée (réouverte au prix de compensation).

La position sur FORTS est acquise par la somme des transactions sur un (ou plusieurs) ordre(s). Lors de la compensation, il y a une transaction technique sans ticket, nous devons trouver comment déterminer le prix POSITION_PRICE_OPEN qui était avant la compensation.

Raison: