Histoire d'un tic-tac - page 18

 
Alexander:

Est-ce qu'il est en cours de diffusion ?

Nous ne l'avons pas, nous avons essayé selon votre description.

Après le "traitement" :

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

Historique des tiques

Karputov Vladimir, 2015.10.21 09:24

...

Je teste maintenant le "remède" - je vais supprimer complètement l'historique des dossiers "history" et "ticks" du serveur MetaQuotes-Demo.


L'historique de la profondeur de 500 ticks est donné presque instantanément, l'historique global des barres étant échangé. La taille des fichiers ticks est de 200-400 Kb pour 10 mois.

 

Et je voulais obtenir des tics dans le testeur, il donne ce qu'il est :)

void OnTick()
  {
//---
 MqlTick ExTicks[];
 CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,D'2015.10.16 23:59',1);

 

Voyez comment les ticks fonctionnent dans la version 1194, où les millisecondes et les drapeaux ont été ajoutés.

Dans le testeur, les ticks ne sont pas donnés jusqu'à ce que nous terminions l'intégration complète des ticks dans le testeur de stratégies de trading dans la prochaine version.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

Test du tick paging lorsque la connexion internet est interrompue. L'indicateur de test ci-dessous :

//+------------------------------------------------------------------+
//|                                                         test.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.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int   InpShowTicks=50;    // клубина истории тиков
//--- parameters
MqlTick     arr_mql_tick[];      // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
   Comment("");
   ResetLastError();
//--- новый размер массива структур тиков
   if(ArrayResize(arr_mql_tick,InpShowTicks)==-1)
     {
      Print("Error OnInit #1",GetLastError());
      return(INIT_FAILED);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int count;
   string text  =IntegerToString(count)+"; ";
   int copied=CopyTicks(_Symbol,arr_mql_tick,COPY_TICKS_INFO,0,InpShowTicks);
   text+="Запрошено "+IntegerToString(InpShowTicks)+" тиков, скачано "+IntegerToString(copied);
   Comment(text);
   count++;
   return(rates_total);
  }
//+------------------------------------------------------------------+

L'algorithme est le suivant :

Démarrer l'indicateur. Attendez que le nombre de ticks téléchargés soit égal à la quantité demandée.

Déconnectez-vous d'Internet (le terminal doit émettre un bip). En même temps :

  1. test #1, "count" =40,
  2. Test n°2, "nombre" =47,
  3. test #3, "count" =12.

Allumez l'internet.

L'indicateur essaie de télécharger des ticks, avec une demande de 50, mais 21-23 sont téléchargés. Cela dure jusqu'à ce que "count" soit supérieur à 100.

La répétabilité est bonne, vérifiée plus de trois fois.

Dossiers :
test.mq5  3 kb
 
Karputov Vladimir:

Test du tick paging lorsque la connexion internet est interrompue. L'indicateur testé se trouve ci-dessous :


Gardez à l'esprit que la demande de ticks dans l'indicateur fonctionne légèrement différemment de la demande de ticks dans le conseiller expert.

L'indicateur n'a pas le droit de freiner, il reçoit donc en une seule fois le nombre de ticks disponibles pour la demande.

Le conseiller expert travaille dans son propre flux, il peut donc attendre un peu. Pour le conseiller expert, plusieurs tentatives sont faites pour échanger les ticks par demande.

 
Slawa:

Veuillez noter que la demande de tick dans l'indicateur fonctionne légèrement différemment de la demande de tick dans le conseiller expert.

L'indicateur n'a pas le droit de freiner, il reçoit donc en une seule fois le nombre de ticks disponibles pour la demande.

Le conseiller expert travaille dans son propre fil, il peut donc attendre un peu. Plusieurs tentatives sont faites pour que le conseiller expert échange des ticks par requête.

C'est compréhensible. Mais combien de temps faut-il pour qu'elle s'accumule ? Dans l'exemple ci-dessus, la demande porte sur 50 ticks. S'il n'y a pas de ticks à charger immédiatement, cela prendra 30 secondes.

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

 
Renat Fatkhullin:

Voyez comment les ticks fonctionnent dans la version 1194, où les millisecondes et les drapeaux ont été ajoutés.

Dans le testeur, les ticks ne sont pas donnés jusqu'à ce que nous terminions l'intégration complète des ticks dans le testeur de stratégies de trading dans la prochaine version.

Y aura-t-il des changements similaires pour MT4 ?
 

Je l'ai vérifié sur un autre ordinateur dans la soirée :

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

Préchargé 200000000 ticks avec un script - ticks chargés en 6 secondes environ. Je n'ai pas pu voir de différence :

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

... Je demande 500 ticks - les ticks sont chargés presque instantanément (je pense que c'est uniquement dû au fait que j'ai demandé un tel nombre auparavant), puis je demande 5000 - quatre minutes se sont écoulées, et un peu moins de 2000 ticks sur 5000 sont chargés et ce nombre n'augmente pas.

 
Pas dans MT4, malheureusement.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

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

1

- que signifie cette valeur ?

Dossiers :
Raison: