Erreurs, bugs, questions - page 324

 
Urain:

Je n'ai pas clarifié cette question à l'époque, et maintenant j'ai des doutes.

Quelle est la bonne façon de réserver la mémoire ?

comme ceci

ou comme suit

Et corriger l'aide, c'est très ambigu.

ZS Dans les variantes données, il est sous-entendu que la taille de la mémoire allouée en tenant compte de la réservation doit être de 2016.

Pour l'instant, cela fonctionne comme suit

ArrayResize(array,10,2000);

Cela permettra d'allouer un tampon pour les éléments 2010 et 10 d'entre eux seront disponibles.

Cela pourraitprobablement changer dans un avenir proche.

 
alexvd:

Pour l'instant, cela fonctionne comme suit

Cela allouera un tampon de 2010 éléments et 10 d'entre eux seront disponibles.

Celapourrait changer bientôt.

Pourquoi pas 2000 tampons dont 10 sont disponibles ?

C'est plus logique à mon avis.

 
alexvd:

Pour l'instant, il fonctionne comme suit

Cela allouera un tampon de 2010 éléments et 10 d'entre eux seront disponibles.

...

Je comprends, dans un endroit comme celui-ci :

int reserved=0;// размер распределённой памяти
//+------------------------------------------------------------------+
//| изменение размера массива                                        |
//+------------------------------------------------------------------+
int Resize(int size)
  {
   int step=4;// резервирование с шагом 2^4=16
   int new_reserv=0;
   if((size>>step<<step)>=reserved)
     {
      reserved=((size>>step)+1)<<step;
      new_reserv=reserved-size;// сколько памяти нужно дорезервировать      
      ArrayResize(arr,size,new_reserv);      
     }
   else ArrayResize(arr,size);     
   Print("ArrayResize(arr,"+size+","+new_reserv+"); reserved="+reserved);
   return(size);
  }

...

Cela pourraitprobablement changer dans un avenir proche.

Qu'est-ce qui ne va pas avec le système actuel de licenciement ?

 

Je ne sais pas si c'est un bug ou non, mais lors de l'optimisation des Expert Advisors basés sur un indicateur lourd comme le CCFp(Cluster Indicator), à la fin de la passe, la fenêtre suivante apparaît sur l'agent local : Strategy Tester Agent has stopped working.

En fermant cette fenêtre, le programme ne s'ouvre pas et en quelques secondes, il poursuit l'optimisation, et les résultats de la passe sont enregistrés dans le rapport.

Les informations suivantes sont présentes dans le code de l'EA

void OnDeinit(const int reason)
{
IndicatorRelease(CCp_Handle) ;
}

Si la ligne IndicatorRelease(CCp_Handle) ; est commentée, l'optimisation se fait sans erreur.

Je ne suis pas bon en programmation, mais ma question est la suivante : quand dois-je utiliser cette fonction dans les indicateurs et les Expert Advisors ? Dans mon code de l'indicateur CCFp il utilise aussi la désinitialisation avec la libération des handles d'un tas de muvings.

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
Dossiers :
optim.jpg  580 kb
 
52_rus:

Je ne sais pas si c'est un bug ou non, mais lors de l'optimisation des Expert Advisors basés sur un indicateur lourd comme le CCFp(Cluster Indicator), à la fin de la passe, la fenêtre suivante apparaît sur l'agent local : Strategy Tester Agent has stopped working.

En fermant cette fenêtre, le programme ne s'ouvre pas et en quelques secondes, il poursuit l'optimisation, et les résultats de la passe sont enregistrés dans le rapport.

Veuillez écrire au Service Desk. Joignez le code source et les conditions d'optimisation.
 

Les interruptions de connexion sont devenues plus fréquentes/longues.

 20110224

...

GI 1 Réseau 15:02:34 '728041' : connexion à MetaQuotes-Demo perdue

HJ 0 Network 13:19:25 '728041' : connexion à un point d'accès avec une qualité de 83% (précédent : 83%)

...


20110302

...

KJ 0 Réseau 08:53:17 '728041' : recherche de points d'accès sur le réseau

IL 0 Réseau 08:54:14 '728041' : analyse du réseau terminée

ME 0 Network 08:54:14 '728041' : connexion automatique à un meilleur point d'accès avec une qualité de 93 % (précédente : 61 %)

LK 1 Network 08:54:14 '728041' : connexion à MetaQuotes-Demo perdue

ES 0 Network 12:05:25 '728041' : connexion à un point d'accès avec une qualité de 92 % (précédent : 0 %)

KN 0 Réseau 12:05:26 '728041' : autorisé sur MetaQuotes-Demo via Access Point 1 Europe

MF 0 Network 12:05:26 '728041' : terminal synchronisé avec MetaQuotes Software Corp.

OR 0 Network 15:08:22 '728041' : recherche de points d'accès sur le réseau

QD 0 Réseau 15:09:18 '728041' : analyse du réseau terminée

...


20110303

...

FI 1 Network 21:26:45 '728041' : connexion à MetaQuotes-Demo perdue

PL 0 Network 10:10:49 '728041' : connexion à un point d'accès avec une qualité de 83 % (précédent : 83 %)

...

 
Je veux utiliser des variables externes dans le script afin de pouvoir définir la valeur requise avant de l'exécuter. Dans MT4, cela a été mis en œuvre en utilisant #property show_iputs, mais dans MT5, ce n'est pas possible (il y a #property script_show_inputs, mais il ne donne rien). Si quelqu'un a été confronté à une telle question, veuillez indiquer comment procéder.
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
DenisR:
Je veux utiliser des variables externes dans le script afin de pouvoir définir la valeur requise avant de l'exécuter. Dans MT4, cela a été mis en œuvre en utilisant #property show_iputs, mais dans MT5, ce n'est pas possible (il y a #property script_show_inputs, mais il ne donne rien). Si quelqu'un a rencontré ce problème, veuillez indiquer comment procéder.
Lesvariables d'entrée fonctionneraient-elles ?
 
Yedelkin:
Lesvariables d'entrée fonctionneraient-elles ?
Merci, tout fonctionne.
 
DenisR:
Je veux utiliser des variables externes dans le script afin de pouvoir définir la valeur requise avant de l'exécuter. Dans MT4, cela a été mis en œuvre en utilisant #property show_iputs, mais dans MT5, ce n'est pas possible (il y a #property script_show_inputs, mais il ne donne rien). Si quelqu'un a rencontré ce problème, veuillez indiquer comment procéder.
Merde... Le terminal est accompagné de tant d'exemples... ...tant d'exemples... Le script SymbolInfoSample.mq5, par exemple