Nettoyage dans le testeur - page 5

 
JRandomTrader #:

Mais, lorsque vous travaillez sur FORTS, vous ne devez pas vous fier aux données de position.

Mes robots gardent la trace de leurs transactions et se souviennent du prix d'ouverture de la position initiale (pas après la dernière compensation), et l'utilisent pour calculer les profits, SL, ...

À propos, une autre raison de ne pas se fier aux données de position : FORTS est un système de compensation, et plusieurs robots peuvent négocier sur le même symbole, en plus du trading manuel. Et quelle est l'utilité pratique de cette position combinée ?

Ainsi, chaque robot se souvient et "mène" sa position.

 
JRandomTrader #:

Je vous ai montré. Prenez ce dernier prix et volume moyen de la position, le prix de la nouvelle transaction et son volume. Tout sera calculé correctement.

Oui, oui, je l'ai maintenant... après m'être posé la question, j'ai trouvé :-)
 
JRandomTrader #:

À propos, une autre raison de ne pas se fier aux données relatives aux positions : FORTS est un système de compensation, et plusieurs robots ainsi que le trading manuel peuvent négocier sur le même symbole. Et quelle est l'utilité pratique de cette position combinée ?

Ainsi, chaque robot se souvient et "mène" sa position.

spc. Il y a naturellement toutes ces transactions et positions sur le marché - SONARELY ? (DANS LA MÊME DIRECTION) ?
 
Roman Shiredchenko #:
spc. Là naturellement, toutes ces transactions et positions sur le marché sont SONARELY ? (DANS UNE SEULE DIRECTION) ?

Les robots peuvent avoir différentes stratégies, de tendance et de contre-tendance, et ils peuvent travailler sur différentes échelles de temps, de sorte que les poses peuvent être dans n'importe quelle direction. Et dans MT, vous ne pouvez voir que le "total".

 
JRandomTrader #:

Les robots peuvent avoir différentes stratégies, de tendance et de contre-tendance, et ils peuvent travailler sur différentes échelles de temps, de sorte que les poses peuvent être dans n'importe quelle direction. Et dans MT, vous ne pouvez voir que le "total".

c'est-à-dire que vous pouvez essentiellement tenir un registre de trading dédié pour chaque direction et c'est tout... :-)

C'est difficile bien sûr... tous virtuels - tous les avantages et les inconvénients. Il n'y a qu'une seule position en commun... Filet.

C'est certainement une moquerie - si vous faites tout sur un seul instrument...

 
Roman Shiredchenko #:

c'est-à-dire que vous pouvez essentiellement tenir un registre du commerce dédié à chaque secteur d'activité et c'est tout... :-)

C'est difficile bien sûr... tout est virtuel - tous les avantages et les inconvénients. Il n'y a qu'une seule position en commun... Filet.

Bien sûr, c'est une moquerie - si vous faites tout sur un seul instrument...

Mais il n'y a pas beaucoup d'options ici. Soit un robot "idéal" sur le symbole, soit la diversification - plusieurs vrais robots.

 
JRandomTrader #:

Et il n'y a pas beaucoup d'options ici. Soit un seul robot "parfait" sur le symbole, soit la diversification - plusieurs vrais robots.

Si nous pouvons faire une remarque générale : en dehors du transfert des prix d'ouverture de la position cumulée après la compensation, quels sont les pièges " cachés " auxquels il faut faire attention lors des transactions ?

Il y a essentiellement des commissions, des échanges - je pense que vous pouvez les voir. Et l'histoire des accords et des positions peut être comptée... (c'est ainsi que, selon l'algorithme de trading, la position réelle ou ses parties - étaient UNIQUEMENT dans le plus !)

À quoi d'autre pensez-vous que nous devrions faire attention lorsque nous faisons du trading ?

 
Roman Shiredchenko #:

Puis-je faire une remarque générale : à part le transfert des prix d'ouverture des positions globales après la compensation, quels sont les autres pièges "cachés" auxquels il faut faire attention lors des transactions ?

Il y a essentiellement des commissions, des échanges - je pense que vous pouvez les voir. Et l'histoire des accords et des positions peut être comptée... (c'est ainsi que, selon l'algorithme de trading, la position réelle ou ses parties - étaient UNIQUEMENT dans le plus !)

À quoi d'autre pensez-vous que nous devrions faire attention lorsque nous faisons du trading ?

Cette commission, qui est visible lors de la transaction, n'est que la commission de l'échange. La commission du courtier n'est pas visible dans la transaction. Du moins, c'est le cas pour le courtier qui l'ouvre.

Je regarde les transactions par OnTrade (ou OnTradeTransaction), je les calcule immédiatement et je les écris dans State et dans le log.

J'ajoute au cas où : vous devez garder à l'esprit qu'un ordre peut entraîner plusieurs transactions avec un volume partiel.

 
JRandomTrader #:

La commission qui est visible dans la transaction est uniquement la commission de la bourse. La commission du courtier n'est pas visible dans la transaction. Du moins, c'est le cas pour l'ouvreur.

Je regarde les transactions par OnTrade (ou OnTradeTransaction), les calcule immédiatement et les écrit dans l'état et dans le journal.

J'ajoute au cas où : vous devez garder à l'esprit qu'un ordre peut entraîner plusieurs transactions avec un volume partiel.

Merci ! !!
 

Il y a aussi un problème d'organisation, si quelqu'un sait comment le résoudre de la meilleure façon - écrivez-le en mots, je le mettrai en code :

en général, comment comprendre que le cycle des ordres, une nouvelle position - PROFIT a commencé - pour prendre en compte le prix moyen d'ouverture de la position (la compensation change sa valeur) :

pour être clair, je peux à la fois du terminal via les touches moi-même et par un robot avec magik....

En général, j'ai besoin d'un point de rapport - pour calculer le prix d'entrée moyen de la position.

Puis-je utiliser les données d'ici + par exemple lire le moment où la position précédente a clôturé en profit et prendre une différence avec le temps réel du serveur à partir de là, comme si je démarrais un cycle à partir du terminal - sans robot :

Je veux dire quelque chose comme ça :

// --- определение границ требуемой торговой истории
   datetime end=TimeCurrent();                 // текущее серверное время
   datetime start=end-PeriodSeconds(PERIOD_D1);// установим начало на сутки назад
comme la position passée est du côté positif - alors la comptabilité du cycle actuel a déjà commencé. et les ordres - vous devez déjà compter à la fois le prix d'entrée et le volume pour calculer le prix d'entrée moyen de la position agrégée...

https://www.mql5.com/ru/articles/211


Получение информации по ордерам из истории

Работа с историческими ордерами почти ничем не отличается от работы с действующими ордерами за одним только исключением. Если количество действующих ордеров в кэше mql5-программе не может быть больше одного, то результат HistoryOrdersTotal() и количество  исторических ордеров в кэше зависит от того, какой объем торговой истории был загружен функцией HistorySelect(start, end), HistorySelectByPosition() или HistoryOrderSelect().
Важно: если торговая история не была загружена в кэш mql5-программы одной из функций  HistorySelect(), HistorySelectByPosition() или HistoryOrderSelect(), то работать с историческими ордерами и сделками невозможно. Обязательно запрашивайте требуемую историю сделок и ордеров перед получением данных по торговой истории.

Для примера приведен скрипт, который ищет последний ордер за последний день и выводит по нему информацию. 

// --- определение границ требуемой торговой истории
   datetime end=TimeCurrent();                 // текущее серверное время
   datetime start=end-PeriodSeconds(PERIOD_D1);// установим начало на сутки назад
//--- запросим в кэш программы торговую историю за день
   HistorySelect(start,end);
//--- получим количество ордеров в истории
   int history_orders=HistoryOrdersTotal();
//--- получим тикет ордера из истории, имеющего последний индекс в списке
   ulong order_ticket=HistoryOrderGetTicket(history_orders-1);
   if(order_ticket>0) // получили в кэш исторический ордер, работаем с ним
     {
      //--- статус ордера
      ENUM_ORDER_STATE state=(ENUM_ORDER_STATE)HistoryOrderGetInteger(order_ticket,ORDER_STATE);
      long order_magic      =HistoryOrderGetInteger(order_ticket,ORDER_MAGIC);
      long pos_ID           =HistoryOrderGetInteger(order_ticket,ORDER_POSITION_ID);
      PrintFormat("Ордер #%d: ORDER_MAGIC=#%d, ORDER_STATE=%d, ORDER_POSITION_ID=%d",
                  order_ticket,order_magic,EnumToString(state),pos_ID);

     }
   else              // неудачная попытка получения ордера

     {
      PrintFormat("Всего в истории %d ордеров, не удалось выбрать ордер"+
                  " с индексом %d. Ошибка %d",history_orders,history_orders-1,GetLastError());
     }

--------------------------------------------------------------

Bien entendu, l'idéal serait de le clôturer indépendamment du résultat du cycle précédent - bénéfice ou perte.

Le début - le nouveau a été marqué pour le calcul dans le code - le prix moyen du nouveau cycle actuel des moyennes, par exemple, ou des actions - il n'a pas d'importance ...

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
Raison: