Errori, bug, domande - pagina 1700

 
fxsaber:

Questa è l'idea dietro l'indicatore non rimovibile.

Si tratta di organizzare un collegamento con "se stesso"? Quindi non è "ottenuto", sei tu che hai scritto l'indicatore in modo così esotico.

Se siete confusi da questo comportamento dell'indicatore, semplicemente non fatelo.

Dove aggiungerlo e come potrebbe almeno teoricamente aiutare. Questo è un bug del terminale. Si tratta di un bug serio. Sono stato fortunato - vedo nel log che l'indicatore funziona. Tuttavia, ci sono molti indicatori che lavorano nel terminale senza alcuna informazione su di loro. Ma l'argomento viene fuori, e perché la mia CPU è così carica su un terminale vuoto?

Ci sono molti modi per "darsi la zappa sui piedi". L'indicatore può essere banalizzato. Ed è molto più facile farlo per sbaglio che scrivere per sbaglio il tuo disegno. Anche questo è un "bug terminale"?

 
Anton:

Si tratta di organizzare un riferimento a "se stessi"? Quindi non è "ottenuto", sei tu che hai scritto l'indicatore in modo così esotico.

Se siete confusi da questo comportamento dell'indicatore, semplicemente non fatelo in questo modo.

Ci sono molti modi per "darsi la zappa sui piedi". L'indicatore può essere banalizzato. Ed è molto più facile farlo per sbaglio che scrivere per sbaglio il tuo disegno. Anche questo è un "bug terminale"?

Si tratta di un bug del terminale quando è possibile eseguire un indicatore pesante senza saperlo su un terminale completamente vuoto (senza grafici aperti). E poi ci sono domande: perché il vostro terminale carica la CPU su un punto piatto? È un bug! Non c'è un task manager interno, nessun controllo.
 
Anton:

Si tratta di organizzare un riferimento a "se stessi"? Quindi non è "preso", sei tu che hai scritto l'indicatore in modo così esotico.

Non è esotico, è un tentativo di auto-identificarsi nell'indicatore. Cercare di farlo in un modo più civile si è rivelato una seccatura.
#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);
}
Quindi è un peccato, perché il Service Desk è stato ingannato, per usare un eufemismo.
 
fxsaber:
Non scrivo in MQL5 da molto tempo, non sono un programmatore. Conosco MQL4 e ora conosco un po' MQL5. Qual è la ragione del mio incontro quasi quotidiano con i bug in MT5? Infatti, quasi ogni giorno un uomo per strada trova accidentalmente degli insetti! Cosa significa tutto questo, perché è così crudo? Nessun tester? Non mentirei se dicessi che MT comincia a diventare fastidioso. E ancora più fastidiosa è la realizzazione che non posso programmare in nient'altro.

Davvero? Difficile da credere :)

Prova

 
pako:

Davvero? Difficile da credere :)

Prova

Ho bisogno solo per il commercio. Non mi sballerò se costruisco un terminale, un tester e altre cose. La mia vita non si misura in centinaia di anni.
 
fxsaber:
Non è esotico, è un tentativo di auto-identificarsi in un indicatore. Cercare di farlo in un modo più civile si è rivelato una seccaturaQuesto perché a Servicedesk era fuorviante, per usare un eufemismo.

Si prega di notare il punto 2:

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

Riguardo alla risposta nel servicedesk - tutte le persone fanno errori a volte.

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
Операции с графиками / ChartWindowFind - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
Ne ho bisogno solo di uno per il commercio. Non mi ecciterò a costruire un terminale, un tester e così via. La mia vita non si misura in centinaia di anni.
Abbiamo preso le date di MT, le abbiamo elaborate in un dll.
 
pako:
Prese le date da mt, elaborate in dll.
Nessun problema con la lingua, problemi con la visualizzazione (indicatori) e la data (copioni). Scrivere questo su una DLL è una perdita di tempo.
 
Anton:

Si prega di notare il punto 2:

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

Riguardo alla risposta nel service desk - tutte le persone fanno errori a volte.

Grazie, l'unica cosa rimasta da fare è risolvere l'ambiguità ShortName.
 
fxsaber:
Nessun problema con la lingua, problemi con la visualizzazione (indicatori) e la data (copioni). Scrivere questo su una DLL è una seccatura.
C'è un pesce nelle zecche?