Erreurs, bugs, questions - page 2138

 

C'est une situation idiote avec les barres de caractères personnalisées. Je peux écrire dans l'historique (CustomRatesReplace) autant de barres que je veux, mais je ne peux pas les lire (CopyRates) ici (TERMINAL_MAXBARS).

Nous devons résoudre ce problème d'une manière ou d'une autre. Voir parfaitement le début de l'Histoire locale à travers

SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE);

Mais pour en venir au fait.

Peut-être pour donner une possibilité de changer TERMINAL_MAXBARS via MQL ? Ou faire en sorte que CopyRates surcharge sans limite MaxBars ?

 

J'ai remarqué ce comportement de MT5 depuis longtemps, mais j'ai maintenant décidé d'écrire.

Je travaille dans ME et MT5+tester. Parfois, je ne peux pas me connecter à l'agent et je dois redémarrer le terminal. Je me suis habitué à ce bug, donc ce n'est pas à cause de ça.

Je ferme donc le terminal et j'appuie sur F4 dans ME pour ouvrir le terminal. Et c'est là que commencent certaines absurdités.

ME se met plusieurs fois dans un état "Ne répond pas". Le terminal ne démarre pas. Après quelques secondes, j'appuie à nouveau sur F4 - la réaction est la même que précédemment.

En conséquence, en 20 secondes (minimum) sur une machine non faible (beaucoup de mémoire, SSD, 95% de CPU libre) le Terminal est lancé.

Si vous le comparez à MT4, c'est le paradis et la terre. MT4 est presque instantanément lancé par F4 depuis ME. MT5 - il se lance comme une application super brute.

 
fxsaber:

C'est une situation idiote avec les barres de caractères personnalisées. Je peux écrire dans l'historique (CustomRatesReplace) autant de barres que je veux, mais je ne peux pas les lire (CopyRates) ici (TERMINAL_MAXBARS).

Nous devons résoudre ce problème d'une manière ou d'une autre. Voir parfaitement le début de l'Histoire locale à travers

Mais pour en venir au fait.

Peut-être serait-il possible de modifier TERMINAL_MAXBARS via MQL ? Ou faire en sorte que CopyRates surcharge sans limite MaxBars ?

SD pense qu'il n'y a pas de problème lorsque vous ne pouvez pas obtenir l'historique des cotations plus loin que MaxBars. Cet exemple (l'un des nombreux scénarios où l'historique requis, qui se trouve déjà sur la machine locale)

L'hypothèse est que la limite est fixée pour économiser les ressources. Et à juste titre !

Imaginons un produit de marché, qui est conçu pour calculer les statistiques de la ligne d'équitation.

Il s'avère que l'utilisateur, avant d'appliquer ce produit, devra faire UnlimitBars. Et après l'avoir appliqué - pour le rendre.

pas impressionné. La béquille reste en vie !

 

Les indicateurs ne renvoient pas toujours ACCOUNT_LOGIN lors du démarrage du terminal

0 11:00:01.880 Testeur d'indicateur personnalisé EURUSD,H1 : chargé avec succès
0 11:00:01.887 tester EURUSD,H1 : OnInit 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) returned 0
0 11:00:01.887 testeur EURUSD,H1 : initialisé
0 11:00:01.887 tester EURUSD,H1 : OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) returned 0
0 11:00:05.980 tester EURUSD,H1 : OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) returned 0
0 11:00:06.654 tester EURUSD,H1 : OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) returned 0
0 11:00:07.030 tester EURUSD,H1 : OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) a retourné le numéro de compte
0 11:00:07.040 tester EURUSD,H1 : OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) a retourné le numéro de compte

Code source

//+------------------------------------------------------------------+
//|                                                       tester.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnInit "+text);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnCalculate "+text);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Je me trompe peut-être, mais à mon avis, aucun programme ne peut fonctionner si le numéro de compte n'est pas connu......

 
Vladimir Pastushak:

Je me trompe peut-être, mais à mon avis, aucun programme ne peut fonctionner si le numéro de compte n'est pas connu......

Je n'utilise jamais lenuméro de compte dans les EAs et les indicateurs, sauf pour le Report-dealing.

Mais je suis d'accord pour dire que même hors ligne, le numéro de compte (la dernière connexion avant que le terminal ne soit éteint) devrait toujours être disponible.

 
fxsaber:

Je n'utilise jamaisle numéro de compte dans les EA et les indicateurs, sauf pour les Report-doors.

Mais je suis d'accord pour dire que même hors ligne, le numéro de compte (dernière connexion avant l'extinction du terminal) devrait toujours être disponible.

En ligne également. Vous devez toujours savoir et comprendre sous quel compte ce qui s'est passé et à quel moment.

Comment pouvez-vous exécuter un programme si vous ne savez pas pour quel compte quelque chose est fait.

Ce n'est pas "sharash montash", les gens peuvent avoir des millions sur leurs comptes ici.....

 
Vladimir Pastushak:

En ligne également. Vous devez toujours savoir et comprendre sous quel compte ce qui s'est passé et à quel moment.

Comment pouvez-vous exécuter un programme si vous ne savez pas pour quel compte il est fait.

Il ne s'agit pas d'un "sharash montash", les gens peuvent avoir des millions sur leurs comptes ici.....

99% des EA n'analysent pas les numéros de compte.

 
fxsaber:

99% des conseillers n'analysent pas le numéro de compte

parce que 99,99% des EA sont des "sharash montash" ....

Je suis sûr que chaque EA de qualité devrait conserver son propre journal des opérations, que ce soit pendant le fonctionnement ou lors du déchargement de l'EA, l'utilisateur devrait obtenir le journal des opérations sur demande. En cas d'erreurs critiques, c'est obligatoire !

Par erreur critique, j'entends déconnexion, requêtes, code lent.

 
Vladimir Pastushak:

parce que 99,99% des EA sont des "sharash montash" ....

J'écris exactement ce genre de conseillers.

 
fxsaber:

J'écris exactement ce genre d'EA.

J'ai vu vos codes, vous êtes un programmeur très bon et compétent...


La situation n'est même pas sauvée

   if(!TerminalInfoInteger(TERMINAL_CONNECTED))
     {
      Print(m_lan?"Нет подключения к сети интернет! ":"No connection to the Internet! ");
      return false;
     }