Erreurs, bugs, questions - page 730

 

Pouvez-vous me conseiller sur la manière de résoudre ce problème ?
Après la première exécution de l'Expert Advisor dans le testeur (Read=false), un fichier csv avec des statistiques est créé.
Dans int OnInit() le code suivant :

  ResetLastError();
  if(Read)
  {
    filehandle=FileOpen(FileName,FILE_READ|FILE_CSV);
  }
  else
  {
    filehandle=FileOpen("razdvigka.csv",FILE_WRITE|FILE_CSV);
  }
Le fichier créé est stocké dans le répertoire : tester\Agent\MQL5\Files

Cependant, au deuxième passage (Read=true). Nous devons lire les données de ce fichier, mais le fichier est supprimé.

 
Vitya:

Pouvez-vous me conseiller sur la façon de résoudre ce problème ?
Après la première exécution de l'Expert Advisor dans le testeur (Read=false), un fichier csv avec des statistiques est créé.
Dans int OnInit() le code suivant :

Le fichier créé est stocké dans le répertoire : tester\Agent\MQL5\Files

Cependant, au deuxième passage (Read=true). Nous devons lire les données de ce fichier, mais le fichier est supprimé.

Dans ce cas, vous devez créer un fichier avec le drapeau FILE_COMMON. Le fichier sera créé dans le dossier partagé du terminal.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:
Dans ce cas, vous devez créer un fichier avec l'indicateur FILE_COMMON. Le fichier sera créé dans le dossier partagé du terminal.
filehandle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_COMMON);
Merci.
Je l'ai compris.
 
Rosh:
Consultez ChartIndicatorAdd
Merci !
 
Servicedesk, l'application #359447 est-elle en train de tâtonner ou avez-vous essayé en vain ?
 
x100intraday:
Servicedesk, l'application #359447 est-elle tripotée ou avez-vous essayé pour rien ?
Il y a beaucoup de discussions en cours. Mais aucune réponse n'est encore prête.
 

Si nous supposons que c'est l'indicateur), la première fois la date sera affichée, mais les réglages suivants sur le graphique (deuxième, troisième copie) n'afficheront pas la date.

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print(TimeCurrent());
   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
{
  
  
  
  return(rates_total);
  
}
 
Karlson:

Si nous supposons que c'est l'indicateur), il affichera la date pour la première fois, mais les paramètres suivants dans le graphique (deuxième, troisième copie) n'afficheront pas la date.

Maintenant la partie calcul de l'indicateur est supprimée de l'espace mql avec un délai.

si vous appliquez le même indicateur (avec les mêmes paramètres) à des graphiques différents (mais avec le même symbole/la même ligne de temps) - il n'y aura pas de réinitialisation.

Si, après avoir effacé la dernière copie, vous allez fumer, il y aura une réinitialisation au démarrage.

Un tel effet secondaire de l'optimisation. :)

Note : Fumer est mauvais pour VOTRE SANTÉ !

;)

 

Chers programmeurs,

Dites-moi, qu'est-ce qui, dans le code du programme mql5, affecte le plus la vitesse ? Le problème est qu'en créant mon propre programme et en augmentant le volume du code, j'ai été confronté au fait que sa vitesse a diminué de manière significative. Cependant, les conseillers experts standard du dossier Advisors and Examples, qui nécessitent un code plus important, sont beaucoup plus rapides.

En général, existe-t-il un article ou une explication sur la façon de mieux formater la structure du code sur le forum ? Donnez un conseil à un programmeur novice. Merci !

 
Alex5757000:

Chers programmeurs,

Dites-moi, qu'est-ce qui, dans le code du programme mql5, affecte le plus la vitesse ? Le problème est qu'en créant mon propre programme et en augmentant le volume du code, j'ai été confronté au fait que sa vitesse a diminué de manière significative. Cependant, les conseillers experts standard du dossier Advisors and Examples, qui nécessitent un code plus important, sont beaucoup plus rapides.

De manière générale, existe-t-il un article ou une explication sur la manière de mieux formater la structure du code sur le forum ? Donnez un conseil à un programmeur novice. Merci !

À mon avis, ce sont les boucles imbriquées qui affectent le plus la vitesse. Les boucles imbriquées jusqu'à la troisième profondeur constituent pratiquement une limite, au-delà de laquelle il faut faire très attention à la taille des boucles. Je prends mon P4 par exemple : il tourne à 3Hz, j'obtiens ~10k opérations par seconde.

Ce nombre signifie que les trois cycles imbriqués 1000x1000x10 seront exécutés en 1 seconde, si vous comprenez, si le 3ème cycle est augmenté à 100 vous obtenez 10 secondes.