Erreurs, bugs, questions - page 942

 

stap:

Comme la question porte sur les tests, il faut tenir compte de ce qui suit. Les séquences de tic-tac sont générées pendant les tests . Les séquences de ticks sont générées sur la base des valeurs historiques des 4 points de contrôle (Open, High, Low et Close). Ainsi, dans le testeur, le conseiller expert traite les ticks générés sur la base des valeurs de l'offre.

Le deuxième point. Actuellement, les données historiques ne stockent pas les valeurs de prix. Il suffit de regarder le tableau dans la section"Référence MQL5- Accès aux séries temporelles et aux indicateurs". Parmi les fonctions comme CopyClose() ou CopyLow(), vous ne trouvez pas la fonction CopyLast(). Par conséquent, même si on le souhaite, il est impossible de générer une file d'attente de tics sur la base des valeurs de prix.

Essayez également de lire les articles Fundamentals of Testing in MetaTrader 5 et Tick Generation Algorithm in MetaTrader 5 Strategy Tester.

 
Yedelkin:

Puisque la question porte sur les tests...


Tout d'abord, je vous remercie pour votre réponse rapide. Vos informations se sont avérées utiles à la compréhension.

Je l'ai vérifié et il est vrai que les ordres stop sont déclenchés avant le prix indiqué dans l'ordre comme prix d'exécution (il y a un fait de faire une transaction réelle) parce que les prix d'achat et de vente sont égaux au prix d'exécution de l'ordre.

Il s'avère donc que le terminal contrôle l'exécution de l'ordre en attente non pas en fonction du prix des transactions effectuées, mais en fonction du prix des offres d'achat ou de vente entrantes. Du moins, c'est ce qu'il fait dans le mode de test EA. Veuillez me corriger si je me trompe.

En outre, j'ai décidé de mener une petite expérience. La tâche consiste à trouver les valeurs historiques de l'offre et de la demande disponibles et utilisées pour tester les Expert Advisors. Entrées : Bourse - FORTS, serveur - un des courtiers, instrument - RIH3, période du 17.12.12 au 12.03.13, Expert Advisor avec le code a été testé dans le Strategy Tester afin d'obtenir les valeurs historiques Ask et Bid (le test a été effectué en mode OHLC sur M1).

MqlTick last_tick;

if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Last = ",last_tick.last);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());

Le résultat était intéressant. Les valeurs des spreads Ask et Bid se sont avérées constantes et égales de 10 à 340 pips à différents intervalles de temps. Par exemple, de 10:00:00 20.02.13 à 18:49:59 25.02.13 l'écart sur chaque tick était de 140 points, et de 19:00:00 25.02.13 à 18:44:59 26.02.13 l'écart était de 30 points, puis de 19:00:00 26.02.13 à 18:49:59 dans chaque tick il était de 270 points, etc. Bien sûr, je ne suis pas un mammouth de la bourse, mais des écarts de 140, 270 pips et plus dans un RTS à terme liquide sont une rareté.

Ma seule conclusion est donc que, pour tester les Expert Advisors dans le Strategy Tester, le terminal MT5/courtier/bourse (je ne sais pas qui d'autre) n'offre sûrement pas les prix historiques Ask et Bid.

Deux questions se posent donc :

1. Comment tester de manière fiable un EA (=stratégie de trading) si les ordres en attente sont exécutés en mode test en utilisant des prix ask et bid qui ne correspondent pas à leurs valeurs réelles. Si je travaille sur le forex dans le terminal Quik, j'ai la ferme conviction que les ordres en attente ne doivent pas fonctionner aux prix ask et bid (= les prix auxquels aucune transaction n'a été effectuée. Par exemple, pour un instrument peu liquide, je peux envoyer au prix put avec un énorme spread), mais seulement si la transaction réelle est effectuée sur le marché au prix mentionné dans l'ordre comme prix d'exécution.

2. Si les cours acheteur et vendeur en mode test ne sont pas historiquement fiables, alors à quels cours l'exécution des ordres en attente en mode transaction réelle serait-elle surveillée - également aux cours acheteur et vendeur ? Sont-elles réelles et fiables, c'est-à-dire qu'elles proviennent de la bourse ? S'il est indiqué dans le manuel du terminal que "L'exécution de tous les types d'ordres dans les symboles avec le mode "Exécution en bourse" est effectuée par le dernier prix (prix de la dernière transaction exécutée)", alors pourquoi le mode de test des symboles avec le mode d'exécution en bourse montre-t-il que les ordres en attente sont exécutés aux prix acheteur et vendeur dans leurs propriétés ? Ou est-ce seulement en mode test et dans le trading réel, ce sera comme décrit dans le manuel, c'est-à-dire que les ordres en attente seront contrôlés/exécutés aux prix des transactions qui ont réellement eu lieu ?

Je m'excuse d'avoir trop écrit, j'ai pensé partager mes pensées, peut-être que quelqu'un y trouvera une utilité pour l'histoire...




 
stap: Il semble donc que le terminal contrôle l'exécution des ordres en attente non pas en fonction du prix des transactions exécutées, mais en fonction du prix des cotations d'achat ou de vente entrantes. Au moins dans le mode de test EA. Veuillez me corriger si je me trompe.

Vous savez, en raison de l'absence d'une version de la plateforme pour la bourse russe, je n'ai pas encore suivi le fonctionnement du terminal en mode d'exécution boursière. Mais je peux immédiatement proposer de diviser les questions sur le fonctionnement du terminal en mode d'exécution d'échange et le fonctionnement du testeur en mode d'exécution d'échange.

Pour vérifier l'exactitude de l'affirmation selon laquelle "tous les types d'ordres fonctionnent au dernier prix" lorsque le terminal fonctionne en mode d'exécution d'échange, essayez (je ne vois rien de mieux pour l'instant) de placer plusieurs ordres en attente au-dessus et au-dessous des cotations actuelles et exécutez également votre code décrit ci-dessus. Et essayez de suivre visuellement à quels prix (bid, ask ou dernier) les ordres sont exécutés.

La tâche consiste à trouver les valeurs historiques de l'offre et de la demande disponibles et utilisées pour tester les EA.

Il n'est pas tout à fait correct de parler de "valeurs historiques de demande". J'ai écrit hier qu'une série de tick est générée sur la base de certaines valeurs d'enchères enregistrées. Les valeurs des demandes, en revanche, sont très probablement modélisées sur la base des valeurs des offres et des écarts. Par exemple, comme vous l'avez testé en mode OHLC sur M1, ici c'est simplement ask==bid+spread.

Je ne connais pas la nature des contrats à terme RTS, c'est pourquoi je ne peux pas me prononcer sur l'écart de "pips". Mais en EURUSD, par exemple, un point correspond à 0,00001.

Il y a donc deux questions :

Faites-vous plus simple. Les développeurs connaissent les bonnes réponses aux questions concernant le travail du testeur dans votre situation. Trouvez donc la section "Service Desk" dans votre profil et demandez-leur d'introduire la possibilité de traiter les ordres en attente en mode d'exécution en bourse aux derniers prix (selon le manuel MT5). Décrivez un peu votre situation et voyez la réponse. Peut-être que tout a déjà été pensé avant nous :)

 
Yedelkin: Vous savez, en raison de l'absence d'une version de la plate-forme pour le marché boursier russe...


Merci pour les commentaires et les conseils perspicaces !

Les courtiers BCS et Otkritie offrent déjà la possibilité d'effectuer des transactions sur la bourse russe (jusqu'à présent uniquement sur le marché des contrats à terme et des options FORTS) via le terminal MT5.

 
stap: Les courtiers BCS et Otkritie offrent déjà la possibilité d'exécuter des transactions sur la bourse russe (jusqu'à présent uniquement sur le marché des contrats à terme et des options FORTS) via le terminal MT5.
La déclaration était : "en raison de l'absence d'une version de la plate-forme pour lemarché boursier russe". En d'autres termes : pour le marché boursier russe.
 
Comment puis-je retrouver mon mot de passe d'investisseur si la lettre d'inscription du courtier est perdue ? Je ne trouve pas mon mot de passe.
 
foton: Comment puis-je retrouver mon mot de passe d'investisseur si la lettre d'inscription du courtier est perdue ? Merci.
Avez-vous essayé de contacter votre courtier ?
 
Comment mettre un blocage dans un message privé?
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Zeleniy:
Comment mettre un blocage dans un message privé?
De vous-même ? ))
 
tol64:
De vous-même ? ))

De vous, pour ne pas allumer l'ordinateur au signal et revoir les lécheurs.

Raison: