Erros, bugs, perguntas - página 3184

 

Não posso validar, nem sequer tenho o muving que está apontando.

 

Se eu abrir um gráfico com um símbolo pela primeira vez, por que a consulta de barras mensais via CopyTime() no MT4 leva menos de 0,05 segundos, mas no MT5 leva meio minuto ou mais ?

Ou o que eu estou fazendo de errado?

Eu estou anexando o código e abaixo está um link para um vídeo com demonstração:

https://drive.google.com/file/d/10HyBpWsuoocCYIkInycDChzpDkaALNWY/view?usp=sharing


MT4 (b1355)

MT5 (b3280)


Arquivos anexados:
 
Vasiliy Pushkaryov #:

Quando abro um gráfico com um símbolo pela primeira vez, por que a consulta das barras mensais via CopyTime() leva menos de 0,05 segundos em MT4, mas meio minuto ou mais em MT5?

Ou o que eu estou fazendo de errado?

Eu anexei o código e abaixo está um link para um vídeo com uma demonstração:

https://drive.google.com/file/d/10HyBpWsuoocCYIkInycDChzpDkaALNWY/view?usp=sharing


MT4 (b1355)

MT5 (b3280)


Acho que na MT4 todas as barras (m1 - mn1) estão explicitamente disponíveis localmente, mas na MT5 somente os preços da M1 estão disponíveis, a partir dos quais as barras mensais têm que ser geradas/calculadas.

 
Carl Schreiber #:

Presumo que na MT4 todas as barras (m1 - mn1) estão claramente disponíveis localmente, mas na MT5 somente os preços M1 estão disponíveis, a partir dos quais as barras mensais devem ser geradas/calculadas.

Tenho ambas as plataformas instaladas há menos de uma semana, não usei o símbolo XAGUSD antes de o vídeo ser tirado.

É que o MT5 está posicionado como um terminal mais novo e mais rápido. Eu gostaria de entender como você pode fazer o MT5 funcionar tão rápido quanto o MT4. O outro símbolo está copiando uma barra de 281 meses, em MT4 a velocidade é a mesma - menos de 0,05 segundos, em MT5 já são cerca de 50 segundos.

 
Valeriy Yastremskiy #:
Há um erro no manual no exemplo

Corrigido, obrigado!

 
Seria sensato adicionar a pasta " Projetos Compartilhados" ao padrão incluir caminhos de busca?

Ao incluir de tal projeto, o caminho precisa ser precedido por ".../", o que é um pouco confuso.

Isso não faria sentido?
 

Infelizmente, a "moda" da degradação da linguagem também chegou aqui.

"Copiar" implica exatamente a ação que está sendo realizada no momento e com outra pessoa, não uma descrição geral da ação.

Há alguns anos, teria sido logicamente correto dizer "quanto copiar".

 

ChartIndicatorGet() + CopyBuffer()

Segue código para entender a dificuldade:

//+------------------------------------------------------------------+ 
//| Programa Script da função start (iniciar)                        | 
//+------------------------------------------------------------------+ 
void OnStart() 
  { 
   //--- O número de janelas no gráfico (ao menos uma janela principal está sempre presente) 
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); 
   //--- Verifique todas as janelas 
   for(int w=0;w<windows;w++) 
     { 
      //--- o número de indicadores nesta janela/sub-janela 
      int total=ChartIndicatorsTotal(0,w); 
      //--- Passar por todos os indicadores na janela 
      for(int i=0;i<total;i++) 
        { 
         //--- obtém o nome abreviado do indicador 
         string name=ChartIndicatorName(0,w,i); 
         //--- obter o manipulador (handle) de um indicador 
         int handle=ChartIndicatorGet(0,w,name); 
         double   ma[1]; ma[0]=0;
         //--- Adicionar o log 
         if(CopyBuffer(handle,0,0,1,ma)!=1)
            Print("Fail");
         else
            PrintFormat("Window=%d,  Index=%d,  Name=%s,  Manipulador (handle)=%d,  Value in this momment=%f",w,i,name,handle, ma[0]);
         //--- You should obligatorily release the indicator handle when it is no longer needed 
         IndicatorRelease(handle); 
        } 
     } 
  }
//+------------------------------------------------------------------+

Insira os dois indicadores abaixo no gráfico antes de executar o script:

1) Moving Average, 18 periodos, in mode Exponential

2) Moving Average, 18 periodos, in mode Simple


No LOG vai observar que os valores de ambos serão iguais, mesmo tendo os 'handles' diferentes.

Alguém pode me ajudar a contornar esta situação?

Desde já, obrigado.

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2022.08.22
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
não recebo o codigo de validação jeito nenhum.
Razão: