MetaEditor build 1463 - page 15

 
fxsaber:
ArrayPrint - similaire.
Voici un exemple https://www.mql5.com/ru/forum/160673/page2#comment_3827986
MetaEditor build 1467
MetaEditor build 1467
  • www.mql5.com
Объясните, почему вот этот текст, отформатированный исключительно пробелами, нет ни одного -tab-,: после применения стилизатора, преобразуется в та...
 
Rashid Umarov:
Voici un exemple https://www.mql5.com/ru/forum/160673/page2#comment_3827986

Ce n'est pas différent de ce que vous avez vous-même écrit ci-dessus.

ArrayPrint a cependant beaucoup plus de paramètres d'entrée. Le dernier paramètre "flags" est intéressant.

 

En général, dès que le testeur raccroche. J'ai pu identifier plusieurs fonctions qui en sont la cause. Le plus courant est le commentaire.

Essayez ici d'exécuter un tel indicateur dans le testeur :

#property indicator_separate_window

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
  {
   Comment("OnCalculate");
   return rates_total;
  }

La vitesse n'est pas maximale, ce qui fait que le test prend un certain temps et qu'il se bloque. C'est vrai, mais pas toujours - je ne comprends pas de quoi cela dépend, si ce sont les mouvements de la souris ou autre chose. En général, vous pouvez tester plusieurs fois, il devrait se bloquer.

 
La fonction ArrayPrint sera disponible sur le site web ce soir.
 
Alexey Navoykov:

En général, dès que le testeur raccroche. J'ai pu identifier plusieurs fonctions qui en sont la cause. Le plus courant est le commentaire.

Essayez ici d'exécuter un tel indicateur dans le testeur :

#property indicator_separate_window

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
  {
   Comment("OnCalculate");
   return rates_total;
  }

La vitesse n'est pas maximale, ce qui fait que le test prend un certain temps et qu'il se bloque. C'est vrai, mais pas toujours - je ne comprends pas de quoi cela dépend, si ce sont les mouvements de la souris ou autre chose. En général, vous pouvez le tester plusieurs fois, il devrait se bloquer.

Avec trois vitesses de test :

  • maximum
  • maximum moins un pas
  • maximum moins deux étapes
L'affichage de l'onglet journal dans le testeur est gelé, car on considère qu'à de telles vitesses, la sortie des impressions ralentira fortement le processus, et il n'est tout simplement pas réaliste de suivre les informations sur les ouvertures/fermetures.

De manière générale, fournissez des preuves plus précises de ce qu'est votre "gel du testeur".

Ajouté : et décrire plus précisément la situation : version, build, serveur, symbole, délai, mode de test...

Ajouté : merde, mon éditeur et mon testeur ont été bloqués. Le mode de génération des tics était "Tous les tics".

 
Alexey Navoykov:

En général, dès que le testeur raccroche. J'ai pu identifier plusieurs fonctions qui en sont la cause. Le plus courant est le commentaire.

Essayez ici d'exécuter un tel indicateur dans le testeur :

#property indicator_separate_window

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
  {
   Comment("OnCalculate");
   return rates_total;
  }

La vitesse n'est pas maximale, ce qui fait que le test prend un certain temps et qu'il se bloque. C'est vrai, mais pas toujours - je ne comprends pas de quoi cela dépend, si ce sont les mouvements de la souris ou autre chose. En général, vous pouvez le tester plusieurs fois, il devrait se bloquer.

Et qu'est-ce que c'est ici :

   return rates_total;

?

 

En effet :

//+------------------------------------------------------------------+
//|                                               Indicator_Test.mq5 |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
                 )
  {
   Comment("OnCalculate");
   return (rates_total);
  }

Test à la vitesse maximale, mode de génération de tics "All ticks" - le testeur raccroche. L'accrochage signifie ce qui suit :

Accrochage

Si vous commentez la ligne de commentaire, tout est testé.

Dossiers :
 
Vladimir Karputov:

Test à la vitesse maximale, mode de génération de tics "All ticks" - le testeur raccroche.

Il ne dépend pas de la vitesse, du mode ou du délai. Il peut geler dans tous les cas.

A propos, certaines autres fonctions, par exemple ChartGetInteger(0, CHART_WIDTH_IN_BARS) conduisent également à des blocages dans mon programme. Mais je n'arrive pas à reproduire un exemple isolé avec eux. Cependant, je pense que Commentaire suffira.

 

Qu'est-ce que c'est ?

HistoryCenter   delete old files from C:\Program Files\BCS Broker MetaTrader 5 Terminal\bases\FxPro-ECN\history\EURUSD, last access time 2016.04.12 10:37
HistoryCenter   delete old files from C:\Program Files\BCS Broker MetaTrader 5 Terminal\bases\FxPro-ECN\history\GBPUSD, last access time 2016.04.12 10:37
HistoryCenter   delete old files from C:\Program Files\BCS Broker MetaTrader 5 Terminal\bases\FxPro-ECN\history\USDCHF, last access time 2016.04.12 10:37
HistoryCenter   delete old files from C:\Program Files\BCS Broker MetaTrader 5 Terminal\bases\FxPro-ECN\history\USDJPY, last access time 2016.04.12 10:37
 
fxsaber:
Veuillez changer MqlTick en
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
C'est-à-dire introduire un nouveau type datetime_msc.
Il serait préférable de créer simplement le champ msc et d'y écrire séparément les millisecondes (0-999).