Erros, bugs, perguntas - página 1005

 
ns_k:

Boa tarde!

Os amortecedores indicadores guardam valores entre execuções de indicadores ou há alguma falha com o meu terminal?

Construí um indicador, depois comentei o algoritmo de contagem e carreguei em compilar - todos os valores permanecem no gráfico. Penso que posso ter de voltar a colocar o indicador no gráfico para actualizar os valores tampão; coloco-o com o ciclo de cálculo em falta e ainda tem os mesmos valores. Teve de reiniciar o terminal para se ver livre dele.

Por favor, comente sobre isto.

Obrigado!

Parece que ainda existem condições que deixam valores já calculados nos amortecedores. Não compreendo exactamente quais são estas condições. O problema desaparece depois de reiniciar o terminal. De facto, é por isso que eu não escreveria um pedido ao serviço.

Em geral, talvez não seja um insecto, mas uma característica?

Obrigado!

 
ns_k:

Parece haver condições sob as quais os valores já calculados permanecem nos amortecedores. O que são exactamente estas condições, não compreendo. Depois de reiniciar o terminal, o problema desapareceu. De facto, é por isso que eu não escreveria uma candidatura ao serviço.

Em geral, talvez não seja um insecto, mas uma característica?

Obrigado!

Basta repor os valores da matriz a zero antes do enchimento ou durante a inicialização:

ArrayInitialize(buffer_data,EMPTY_VALUE);
 
ns_k:

Parece haver condições sob as quais os valores já calculados permanecem nos amortecedores. O que são exactamente estas condições, não compreendo. Depois de reiniciar o terminal, o problema desapareceu. De facto, é por isso que eu não escreveria um pedido ao serviço.

Em geral, talvez não seja um insecto, mas uma característica?

Obrigado!

Os valores precisam de ser reajustados
 
tol64:

Antes do enchimento ou durante a inicialização, basta repor os valores da matriz a zero:

Obrigado!!!
 

Seria bom se o menu de contexto com o botão direito do rato pudesse ter um item separado com indicadores personalizados

Obrigado!

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

Outra pergunta, por favor :)

Qual é a forma de exibir comentários na janela indicadora e não na janela do gráfico?

Obrigado!

 
ns_k:

Como podem os comentários ser exibidos na janela indicadora e não na janela do gráfico?

Não há qualquer disposição para este comportamento. Utilizar objectos se for realmente necessário.
 

Boa tarde!

É melhor tornar a janela de propriedades indicadoras não modais,se possível.

Obrigado!

 
ns_k:

Boa tarde!

É melhor tornar a janela de propriedades indicadoras não modais,se possível.

Obrigado!

E adicionar um botão Aplicar. Por outras palavras, alterámos o valor, premimos o botão Aplicar e veremos as alterações sem fechar a janela. Seria muito mais conveniente.

E pela centésima vez - a possibilidade de alterar o tamanho da janela das propriedades.

P.S. Escrever mais no Service Desk.

 

Não sei onde estou a ficar burro, por assim dizer.

int OnCalculate (const int rates_total,      // size of input time series
                 const int prev_calculated,  // bars handled in previous call
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread
                 )

  {
   
   
   
   doDrawIndicator(gSymbols[0],rates_total,g1ThermB);


//Comment(rates_total);
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int doDrawIndicator(string xSymbol, int xRatesTotal, double &xBuffer[])//,double &xPrice[],double &xBuffer[])
  {
   double l1Close[]; // , l2Close[];
   datetime lTime[];
   datetime lEnd,lStart;
   int copied;
   ArrayInitialize(xBuffer,0);
   lEnd=TimeCurrent();
   lStart=(TimeCurrent()/86400)*86400+3600;

   copied=CopyTime(xSymbol,Period(),lStart,lEnd,lTime);
   if(copied==-1){Print("Can't copy time",__FUNCSIG__);return(0);}
   copied=CopyClose(xSymbol,Period(),lStart,lEnd,l1Close);
   if(copied==-1){Print("Ждите...1");return(0);}

   sThermometer lT;
  // Print("rates_total=",rates_total);
   //Comment(xSymbol);
   Comment(copied);
   g1RM=new CRangeManager(1,0.2,20,xSymbol);
 
   for(int i=0;i<copied;i++)
     {
      lT=g1RM.getStateByValue(l1Close[copied-i-1]);
      if(gThermRange==Up && lT.cTemperature.State<7 || gThermRange==Down && lT.cTemperature.State>6 )
        {
         xBuffer[xRatesTotal-i-1]=lT.cTemperature.Temperature;
        }
      else
        {
         xBuffer[xRatesTotal-i-1]=0;
        }
     }

     
   delete g1RM;
   return(1);

  }

O indicador não actualiza, ou seja, continuo a ver 739 dizer no canto esquerdo (atirado sobre as minúcias como se entende). E assim que eu carregar em compilar, o indicador é actualizado. Em que parte do código está o erro?

Obrigado!