Erros, bugs, perguntas - página 1028

 
tol64:

Depois a) porque é que funciona para o objecto b) se o substitui, começa a desmoronar-se

'0x00000008' - can't convert enum

Nem todas, apenas 18 em 21 linhas.

Vou tentar reescrevê-los a todos, ainda não está claro. Parece ser de um tipo.

 
Silent:

Depois a) porque é que funciona para o objecto b) se o substitui, começa a desmoronar-se

Nem todas, apenas 18 em 21 linhas.

Vou tentar reescrevê-los a todos, ainda não está claro. Parece ser de um tipo.

ENUM_TIMEFRAMES current_period_tf=PERIOD_CURRENT;
   string n="";
   if(_Period==PERIOD_M1)  {current_period_tf=PERIOD_M1;};
   if(_Period==PERIOD_M2)  {current_period_tf=PERIOD_M2;};
   if(_Period==PERIOD_M3)  {current_period_tf=PERIOD_M3;};
   if(_Period==PERIOD_M4)  {current_period_tf=PERIOD_M4;};
   if(_Period==PERIOD_M5)  {current_period_tf=PERIOD_M5;};
   if(_Period==PERIOD_M6)  {current_period_tf=PERIOD_M6;};
   if(_Period==PERIOD_M10) {current_period_tf=PERIOD_M10;};
   if(_Period==PERIOD_M12) {current_period_tf=PERIOD_M12;};
   if(_Period==PERIOD_M15) {current_period_tf=PERIOD_M15;};
   if(_Period==PERIOD_M20) {current_period_tf=PERIOD_M20;};
   if(_Period==PERIOD_M30) {current_period_tf=PERIOD_M30;};
   if(_Period==PERIOD_H1)  {current_period_tf=PERIOD_H1;};
   if(_Period==PERIOD_H2)  {current_period_tf=PERIOD_H2;};
   if(_Period==PERIOD_H3)  {current_period_tf=PERIOD_H3;};
   if(_Period==PERIOD_H4)  {current_period_tf=PERIOD_H4;};
   if(_Period==PERIOD_H6)  {current_period_tf=PERIOD_H6;};
   if(_Period==PERIOD_H8)  {current_period_tf=PERIOD_H8;};
   if(_Period==PERIOD_H12) {current_period_tf=PERIOD_H12;};
   if(_Period==PERIOD_D1)  {current_period_tf=PERIOD_D1;};
   if(_Period==PERIOD_W1)  {current_period_tf=PERIOD_D1;};
   if(_Period==PERIOD_MN1) {current_period_tf=PERIOD_MN1;};
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
 
tol64:
Sim, fiz, obrigado, está a fazer tic-tac ).
 
Silent:
Sim, fiz, obrigado, está a fazer tic-tac ).

Agora tente assim:

   string n="";
   ENUM_TIMEFRAMES current_period_tf=_Period;
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

 
MetaDriver:

Agora tente assim:

Experimentei-o, não consigo voltar automaticamente da M1. Se eu enumerar como acima

if(_Period==PERIOD_M1)  {current_period_tf=PERIOD_M1;};

Posso regressar de vez em quando, mas se atribuir _Período de uma vez, caio para a M1 e fico lá.

upd não poupa mesmo que eu tenha passado para o fim do indicador

     if(_Period==PERIOD_M1) {ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);};

Não sei porque é que se entupem, estou a tentar perceber.

 

Isto é uma muleta em vez de sincronização (numa saída quando não há carraças). A ideia é como um tanque - há um erro - mudar para M1 e regressar.

   if(_LastError!=0)
     {
      ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
      ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
     };
   if(_LastError==0)
     {
      ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);
     };
// и контрольный
   if(_Period==PERIOD_M1) {ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);};
só que de M1 nem sempre é libertado.
 
Silent:

Experimentei-o, de M1 não posso voltar atrás automaticamente. Se eu enumerar como acima

Posso voltar de vez em quando, mas se atribuir _Período de uma vez, caio para a M1 e fico lá.

O seu caso é curado por um pequeno deslize.

   string n="";
   ENUM_TIMEFRAMES current_period_tf=_Period;
   ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);
   Sleep(150);
   ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);
   ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

O meu é pior (a propósito, o seu caso costumava funcionar sem Slip, deixou de funcionar há algumas semanas).

O mesmo esquema deixou de funcionar sem escorregadelas assustadoras em outros gráficos (não actuais):

void cChartReInit::Run() // Scanning all charts and reinit if button is pushed
  {
   for(long i=ChartNext(0);i>0;i=ChartNext(i))
    {
     if(!ChartGetInteger(i,CHART_WINDOW_IS_VISIBLE)) continue;
     long wc = ChartGetInteger(i,CHART_WINDOWS_TOTAL);
     long wi = ObjectFind(i, pButtonName);
     if(--wc!=wi) { CreateReinitButton(i); ChartRedraw(i); continue;}
     if(ObjectGetInteger(i,pButtonName,OBJPROP_STATE))
       {
        ObjectSetInteger(i,pButtonName,OBJPROP_STATE,false);
        ENUM_TIMEFRAMES cp = ChartPeriod(i);
        Sleep(1350);  // раньше это было не нужно
        ChartSetSymbolPeriod(i, ChartSymbol(i), ((cp==PERIOD_M1) ? PERIOD_M5 : PERIOD_M1));
        Sleep(1350);  // раньше это было не нужно
        ChartSetSymbolPeriod(i, ChartSymbol(i), cp);
       }
     ChartRedraw(i);
    } // for(Charts)
  }
Código a partir daqui: https://www.mql5.com/ru/code/224
ChartReinit
ChartReinit
  • votos: 7
  • 2010.11.29
  • Vladimir Gomonov
  • www.mql5.com
Кнопочная переинициализация чарта с перерасчетом всех индикаторов, а также простенький и прозрачный объектно-ориентированный пример обработки всех чартов из одного эксперта.
 
MetaDriver:

O seu caso é tratado com um pequeno deslize.

O meu é pior (a propósito, o seu caso sem um deslize costumava funcionar, parou há algumas semanas atrás).

Mas o mesmo esquema deixou de funcionar sem escorregadelas assustadoras em outros gráficos (não actuais):

Código a partir daqui: https://www.mql5.com/ru/code/224/10323

O deslize não funciona em indicadores, pois não?

Ligação a 404 lançamentos de página

 
Silent:

O deslize não funciona em indicadores, pois não?

É uma ligação de 404 páginas.

Sim.

Experimente uma espécie de loop dispendioso...

Poderia fazê-lo com um temporizador, mas eu não gosto de tudo isso.

// Corrigido o link. Primeiro através de "meus códigos", agora através de um login comum em kodobaza. // Funciona agora? Ou preciso de desbloquear o login para obter um link público?

 
MetaDriver:

Sim. :(

Experimente algum tipo de ciclo dispendioso...

Posso fazê-lo através de um temporizador, mas não gosto de tudo isto.

Tentei anexar o OnTimer com o ChartRedraw em vez de mudar para outro período de tempo - sem resposta, ele actualiza-se, mas o erro pende.

Vou dar outra vista de olhos.

A actualização tem uma suspeita de que tudo isto está relacionado com os fios. Em algum lugar, não correspondem, um pende com um erro, o outro faz o seu próprio tiquetaque. Ras-sincronização, no entanto. E não há nenhum comando para um recálculo completo.

Eu também tentei

#define   RESET 0

   if(_LastError!=0)
     {
     return(RESET);
     };
não parece estar a funcionar de todo. No entanto, foi levado para a kodobase.
Razão: