Erreurs, bugs, questions - page 1700

 
Anton:

S'agit-il d'organiser une référence à "vous-même" ? Donc ce n'est pas "j'ai", c'est vous qui avez écrit l'indicateur de façon si exotique.

Si vous êtes dérouté par ce comportement de l'indicateur, ne le faites pas de cette façon.

Il existe de nombreuses façons de se "tirer une balle dans le pied". L'indicateur peut être banalisé. Et il est beaucoup plus facile de le faire par accident que d'écrire accidentellement votre conception. S'agit-il également d'un "bug terminal" ?

Il s'agit d'un bug du terminal lorsqu'il est possible d'exécuter un indicateur lourd sans le savoir sur un terminal complètement vide (sans graphiques ouverts). Et puis il y a les questions, pourquoi votre terminal charge-t-il le CPU sur un point plat ? C'est un bug ! Il n'y a pas de gestionnaire de tâches interne, pas de contrôle.
 
Anton:

S'agit-il d'organiser une référence à "vous-même" ? Donc ce n'est pas "je l'ai eu", c'est vous qui avez écrit l'indicateur de façon si exotique.

Ce n'est pas exotique, c'est une tentative d'auto-identification dans l'indicateur. Essayer de le faire d'une manière plus civilisée s'est avéré être un échec.
#property indicator_separate_window
#property indicator_buffers 0
#property indicator_plots   0

bool WhereIAm( long &Chart_ID, int &Sub_Window )
{
  const string PrevShortName = MQLInfoString(MQL_PROGRAM_NAME);  
  
  MathSrand((int)TimeCurrent());
  const string ShortName = (string)MathRand();
    
  IndicatorSetString(INDICATOR_SHORTNAME, ShortName);    
  
  Chart_ID = ChartFirst();

  Print(Chart_ID);
  
  while (Chart_ID > 0)
  {
    const int Total = (int)ChartGetInteger(Chart_ID, CHART_WINDOWS_TOTAL);
    
    for (Sub_Window = 0; Sub_Window < Total; Sub_Window++)
    {
      const int TotalIndicators = ChartIndicatorsTotal(Chart_ID, Sub_Window);
      
      for (int i = 0; i < TotalIndicators; i++)
        if (ShortName == ChartIndicatorName(Chart_ID, Sub_Window, i))
        {
          IndicatorSetString(INDICATOR_SHORTNAME, PrevShortName);
          
          return(true);
        }
    }
    
    Chart_ID = ChartNext(Chart_ID);
  }

  IndicatorSetString(INDICATOR_SHORTNAME, PrevShortName);
  
  return(false);
}


#define  TOSTRING(A) #A + " = " + (string)A + " "

void OnInit( void )
{
  long Chart_ID;
  int Sub_Window;
  
  if (WhereIAm(Chart_ID, Sub_Window))
    Print(TOSTRING(Chart_ID) + TOSTRING(Sub_Window));
    
  return;
}
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[] )
{
  return(rates_total);
}
C'est donc une déception, car le Service Desk a été induit en erreur, pour ne pas dire plus.
 
fxsaber:
Cela fait longtemps que je n'écris plus en MQL5, je ne suis pas un programmeur. Je connais MQL4 et maintenant je connais un peu MQL5. Quelle est la raison pour laquelle je rencontre presque quotidiennement des bugs dans MT5 ? En fait, presque chaque jour, un homme dans la rue trouve accidentellement des insectes ! Qu'est-ce que ça veut dire, pourquoi c'est si brut ? Pas de testeurs du tout ? Je ne mentirais pas en disant que MT commence à devenir ennuyeux. Et ce qui est encore plus ennuyeux, c'est de réaliser que je ne peux pas programmer autre chose.

Vraiment ? Difficile à croire :)

Essayez

 
pako:

Vraiment ? Difficile à croire :)

Essayez

Je n'en ai besoin que pour le commerce. Je ne serai pas défoncé si je construis un terminal, un testeur et d'autres trucs. Ma vie ne se mesure pas en centaines d'années.
 
fxsaber:
Ce n'est pas exotique, c'est une tentative d'auto-identification dans un indicateur. J'ai essayé de le faire d'une manière plus civilisée, mais ça s'est avéré être un échecC'est parce que chez Servicedesk, c'était trompeur, pour ne pas dire plus.

Veuillez noter le point 2 :

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Concernant la réponse dans le servicedesk - tout le monde fait parfois des erreurs.

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
Операции с графиками / ChartWindowFind - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
J'en ai besoin d'un seul pour le commerce. Je ne vais pas m'éclater à construire un terminal, un testeur, etc. Ma vie ne se mesure pas en centaines d'années.
On a pris les dates de MT, on les a transformées en dll.
 
pako:
J'ai pris des dattes au Montana, et je les ai traitées à l'usine.
Pas de problème de langue, mais des problèmes de visualisation (indicateurs) et de date (copier-coller). Écrire cela sur une DLL est une perte de temps.
 
Anton:

Veuillez noter le point 2 :

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

À propos de la réponse du service d'assistance - tout le monde fait parfois des erreurs.

Merci, la seule chose qui reste à faire est de résoudre l'ambiguïté du nom court.
 
fxsaber:
Pas de problème de langue, mais des problèmes de visualisation (indicateurs) et de date (copier-coller). Écrire cela sur une DLL est une déception.
Y a-t-il un poisson dans les tiques ?
 
pako:
Il y a des poissons dans les Tikes ?
C'est ce que je veux découvrir.