MetaTrader 4 Build 529 beta lançado com novo compilador - página 42

 
zigan:


Isso é novidade para mim! Estou tão acostumado com o duplo cinco por cinco:

Nunca me ocorreu que possa haver um todo... há um intervalo de 1 a 3. E qual é o objetivo da representação inteira? Só para que funcione mais rápido?



Eu não sei, acho que os desenvolvedores tinham algum propósito ou nenhum propósito ...
 
St0nE:

Sim, é assim que eu defino a nova barra e agora, em 509 ela funciona estável.

Hoje eu atualizei para 537 e recebi um erro ao trabalhar com uma matriz. Abriu o novo documento, e sim, há duas maneiras de usar as Barras.

Foi por isso que perguntei aqui. Se você não se importa, pode sugerir outra forma viável de definir uma nova barra?

Obrigado...


void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
Mas deve ser entendido que, se você mudar o período do gráfico, a função irá falhar. Eu não tenho tempo para codificar agora, a falha é corrigida pelo iTime()
 
alexvd:

Você pode descrever as configurações definidas no testador de estratégia, os parâmetros de entrada, o modelo de geração de tick... + anexar o Expert Advisor a ser testado.

Envie tudo isso para o Service Desk.


Aplicação #882960
 

Para os desenvolvedores de

Por favor, implemente REASON_TEMPLATE como um motivo para a desinicialização da EA.

É claro que eu também gostaria de ter uma "lista completa" de todas as razões possíveis, não diferente da MT5.

 
VOLDEMAR:

Mas você deve entender que a função falhará quando o período do gráfico for alterado ... Não tenho tempo para codificar agora. A falha é corrigida via iTime()

Obrigado! E é tudo...

Meu período não muda na hora, então ainda não é relevante... :-)

Entendo que esta função funcionará a cada tique, não será mais lenta do que minha variante?

 
St0nE:

Obrigado! E é tudo...

Meu período não muda na hora, então ainda não é relevante... :-)

Presumo que esta função funcionará a cada tique, não será mais lenta que a minha variante?



Sua versão não pode ser usada, você solicita o número de barras na história e compará-la, faz sentido logicamente, mas com o tipo de história que os corretores nos dão, esta abordagem não pode ser usada ... Simplesmente não vai funcionar corretamente ...

Há frequentemente buracos na história, muitos corretores têm diferentes períodos na história, alguns de 1970 e outros do início de 2012, o número de barras será diferente, se você mudar o cronograma para um menor ou maior o número de barras também mudará, o terminal irá bombear o histórico ou os buracos serão fechados, o número também mudará ....

 

Lançado 538 construído com correções.

Em particular o bug iVolume corrigido

 
VOLDEMAR:


Sua versão não pode ser usada, você solicita o número de barras na história e compara, sim logicamente faz sentido, mas com o tipo de corretores de história que nos dão, esta abordagem não pode ser usada ... Simplesmente não vai funcionar corretamente ...

Há frequentemente buracos na história, muitos corretores têm diferentes períodos na história, alguns de 1970 e outros do início de 2012, o número de barras será diferente, se você mudar o cronograma para um menor ou maior o número de barras também mudará, o terminal irá bombear o histórico ou os buracos serão fechados, o número também mudará ....


que diferença faz quantas barras existem desde 1970 ou desde 2012? o que precisamos é determinar se há uma nova barra. quando você muda o cronograma, o terminal reinicia, ExpertBars=Bars; nova barra ExpertBars!=Bars apareceu, então o código
bool éNewBar=false;

if (ExpertBars!=Bars) {
ExpertBars=Bars;
isNewBar=verdadeiro;
}
funcionando
 
As descrições dos problemas foram para o Service Desk, incluindo a versão mais recente - 538. Os programas são anexados.
 
mr_Johns:

Que diferença faz quantas barras existem desde 1970 ou 2012? O que precisamos fazer é detectar quando há uma nova barra. Quando mudamos os prazos, nós somos reinicializados, ExpertBars=Bars; uma nova barra ExpertBars!=Bars apareceu, então o código
O bool éNewBar=false;

se (ExpertBars!=Bars) {
ExpertBars=Bars;
isNewBars=true;
}
trabalhando

então boa sorte ))))
Razão: