Erros, bugs, perguntas - página 1700

 
fxsaber:

Esta é a ideia por detrás do indicador não removível.

Trata-se de organizar uma ligação a "si mesmo"? Por isso, não é "apanhado", é você que escreveu o indicador de uma forma tão exótica.

Se estiver confuso com este comportamento do indicador, simplesmente não o faça.

Onde adicioná-lo e como poderia, pelo menos teoricamente, ajudar. Isto é um bug no terminal. É um erro grave. Tive sorte - vejo no registo que o indicador funciona. Contudo, há muitos indicadores que funcionam no terminal sem qualquer informação sobre eles. Mas o tema surge, e porque é que o meu CPU está tão carregado num terminal vazio?

Há muitas maneiras de "dar um tiro no pé". O indicador pode ser trivializado. E é muito mais fácil fazê-lo por acidente do que escrever acidentalmente o seu desenho. Será isto também um "bug terminal"?

 
Anton:

Trata-se de organizar uma referência a "você mesmo"? Por isso, não é "apanhado", é você que escreveu o indicador tão exoticamente.

Se estiver confuso com este comportamento do indicador, simplesmente não o faça dessa forma.

Há muitas maneiras de "dar um tiro no pé". O indicador pode ser trivializado. E é muito mais fácil fazê-lo por acidente do que escrever acidentalmente o seu desenho. Será isto também um "bug terminal"?

É um bug terminal quando é possível executar um indicador pesado sem saber, num terminal completamente vazio (sem gráficos abertos). E depois há questões, porque é que o seu terminal carrega a CPU num ponto plano? É um insecto! Não há gestor de tarefas interno, não há controlo.
 
Anton:

Trata-se de organizar uma referência a "você mesmo"? Por isso, não é "percebeu", foi você que escreveu o indicador de forma tão exótica.

Não é exótico, é uma tentativa de auto-identificação no indicador. A tentativa de o fazer de uma forma mais civilizada acabou por ser uma chatice.
#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);
}
Portanto, é uma chatice, porque o Service Desk foi enganado, para o dizer de forma suave.
 
fxsaber:
Não escrevo na MQL5 há muito tempo, não sou um programador. Conheço um pouco a MQL4 e agora conheço um pouco a MQL5. Qual é a razão do meu encontro quase diário com insectos no MT5? Na verdade, quase todos os dias um homem na rua encontra acidentalmente insectos! Do que se trata, porque é que está tão cru? Não há nenhum testador? Eu não mentiria para dizer que a MT está a começar a ficar irritante. E ainda mais irritante é a percepção de que não posso programar em mais nada.

A sério? Difícil de acreditar :)

Experimente

 
pako:

A sério? Difícil de acreditar :)

Experimente

Só preciso para o comércio. Não vou ficar pedrado se construir um terminal, testador e outras coisas. A minha vida não é medida em centenas de anos.
 
fxsaber:
Não é exótico, é uma tentativa de auto-identificação num indicador. Tentou fazê-lo de uma forma mais civilizada, mas acabou por ser uma chatice, porque no Servicedesk era enganador, para o dizer de forma suave.

Por favor, tenha em atenção o ponto 2:

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

Sobre a resposta no servicedesk - todas as pessoas cometem por vezes erros.

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
Операции с графиками / ChartWindowFind - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
Só preciso de um para o comércio. Não vou conseguir um zumbido na construção de um terminal, um testador e assim por diante. A minha vida não é medida em centenas de anos.
Tirámos as datas do MT, processamo-las numa dll.
 
pako:
Levou datas de mt, processadas em dll.
Sem problemas de linguagem, problemas de visualização (indicadores) e data (copyticks). Escrever isto numa DLL é uma perda de tempo.
 
Anton:

Por favor, tenha em atenção o ponto 2:

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

Sobre a resposta no balcão de serviço - todas as pessoas cometem por vezes erros.

Obrigado, a única coisa que falta fazer é resolver a ambiguidade do ShortName.
 
fxsaber:
Sem problemas de linguagem, problemas de visualização (indicadores) e data (copyticks). Escrever isto numa DLL é uma chatice.
Há algum peixe nas carraças?