Histoire d'un tic-tac - page 19

 
Karputov Vladimir:

Le champ flags de la structure MqlTicks contient souvent la valeur "24" (mode d'affichage "tous les ticks") :

- que signifie cette valeur ?

Tous les paramètres de chaque tick sont toujours renseignés, que les données aient changé ou non depuis le tick précédent. Cela vous permet d'avoir toujours le statut du prix actuel à tout moment sans avoir à rechercher les valeurs précédentes dans l'historique des tics. Par exemple, avec un tick, seul le prix de l'offre peut avoir changé, mais la structure contiendra d'autres paramètres en plus du nouveau prix : prix de l'offre précédente, volume, etc. Pour savoir quelles données ont changé avec le tick actuel, analysez leurs drapeaux :

  • TICK_FLAG_BID - le tick a modifié le prix de l'offre.
  • TICK_FLAG_ASK - le tick a modifié le prix de vente (ask)
  • TICK_FLAG_LAST - le tick a changé le prix de la dernière transaction.
  • TICK_FLAG_VOLUME - Le tick a changé de volume.
  • TICK_FLAG_BUY - Le tick s'est produit à la suite d'une transaction d'achat.
  • TICK_FLAG_SELL - un tick s'est produit à la suite d'une transaction de vente.
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:. - Страница 18 - Категория: общее обсуждение
 
Andrey Khatimlianskii:

J'ai joint un EA qui imprime ces codes dans OnInit() :

   Print(TICK_FLAG_BID," - тик изменил цену бид");
   Print(TICK_FLAG_ASK,"  - тик изменил цену аск");
   Print(TICK_FLAG_LAST," - тик изменил цену последней сделки");
   Print(TICK_FLAG_VOLUME," - тик изменил объем");
   Print(TICK_FLAG_BUY," - тик возник в результате сделки на покупку");
   Print(TICK_FLAG_SELL," - тик возник в результате сделки на продажу")

et le résultat :

2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     2 - тик изменил цену бид
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     4  - тик изменил цену аск
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     8 - тик изменил цену последней сделки
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     16 - тик изменил объем
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     32 - тик возник в результате сделки на покупку
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     64 - тик возник в результате сделки на продажу

Il n'y a pas de valeur "24" parmi les résultats.

 
Karputov Vladimir:

Il n'y a pas de valeur de "24" parmi les résultats.

8 || 16 = 24

 
Karputov Vladimir:

J'ai joint un EA qui imprime ces codes dans OnInit() :

et le résultat :

Il n'y a pas de valeur "24" parmi les résultats.

Opération OU par bit

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Effacer - les paramètres peuvent s'additionner, en fonction des paramètres de la structure MqlTick qui ont été modifiés avec l'arrivée du tick.
 

Quelqu'un d'autre peut-il tester l'indicateur du post sur la méthodologie :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Historique des tiques

Karputov Vladimir, 2015.10.22 15:07

C'est compréhensible. Mais combien de temps faut-il pour échanger ? Dans l'exemple ci-dessus, la demande porte sur 50 ticks et si les ticks ne sont pas chargés immédiatement, cela prend 30 secondes.

C'est encore pire. Je fais une demande de 500 ticks - les ticks sont chargés presque instantanément (je pense que c'est seulement parce que j'ai demandé cette quantité plus tôt), et ensuite je fais une demande de 5000 - quatre minutes se sont déjà écoulées, et j'ai un peu moins de 2000 ticks sur 5000 chargés et ce nombre n'augmente pas.


 
Renat Fatkhullin:

...

Dans le testeur, les ticks ne sont pas téléchargés jusqu'à ce que nous achevions l'intégration complète des ticks dans le testeur de stratégie dans la prochaine version.

La construction 1200 est sortie. Dans le testeur, les ticks ne sont pas téléchargés, mais dans le testeur, dans le Market Watch, les ticks ressemblent à de vrais ticks :

Testeur. Examen du marché.

 

J'ai trouvé comment obtenir des tiques à partir d'une certaine date. C'est simple : vous devez spécifier le temps en millisecondes.

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_03.mq5|
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.03"
#property description "Получение тиков с определённой даты"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200;  // количество запрашиваемых тиков
input datetime start=D'2015.10.16 23:59'; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики, время должно быть в миллисекундах!
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Из заказанных ",ticks," самый старый тик: ",ExTicks[0].time," bid: ",
            ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Из заказанных ",ticks," самый молодой тик: ",ExTicks[copied-1].time," bid: ",
            ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
Dossiers :
 

Bild 1200. Il y a un indicateur attaché au graphique qui appelle CopyTicks. Tout fonctionne. Mais après avoir rompu la connexion :

2015.10.26 09:58:06.721 Network '1783501': connection to MetaQuotes-Demo lost

et ensuite, quand la connexion est rétablie, CopyTicks refuse obstinément de rendre les ticks. Et c'est soit 50 ticks, soit 500.

 
Karputov Vladimir:

Bild 1200. Il y a un indicateur attaché au graphique qui appelle CopyTicks. Tout fonctionne. Mais après avoir rompu la connexion :

et ensuite, quand la connexion est rétablie, CopyTicks refuse obstinément de rendre les ticks. Et c'est soit 50 ticks, soit 500.

Et si vous vous connectez ensuite à un autre serveur ? Ou rescanner le réseau et se connecter au même ? L'erreur persiste-t-elle ?