Aprender e escrever juntos em MQL5 - página 21

 

потому что вы берете каждый раз новое время тика, и оно конечно не равно предыдущему.

Na última função, o tempo de início do bar foi o tempo de início do bar. por isso, também aqui, tome o tempo do bar, não o tempo do carrapato.

Explicar a alguém que não compreenda qual o parâmetro no código a alterar para qual parâmetro.

Como descrever o tempo da barra, não o tempo do carrapato?

 
Khomtchenko:

Explicar a alguém que não compreenda qual o parâmetro no código a alterar para qual.

Como descrever o tempo do bar em vez do tempo do tick?

e.g. https://www.mql5.com/ru/docs/series/copytime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTime - Документация по MQL5
 
Khomtchenko:

Explicar a alguém que não compreenda qual o parâmetro no código a alterar para qual.

Como descrever a hora de um bar e não de um carrapato?

Aqui está uma descrição popular do manipulador de eventos do "novo bar

Em geral, não seja preguiçoso para, por vezes, olhar para artigos e base de código antes de fazer uma pergunta

 

Вот тут все популярно описано Обработчик события "новый бар"

Em geral, não seja preguiçoso para olhar para artigos e bases de código antes de fazer uma pergunta.

Sim, eu olhei para lá. Começaram por uma boa saúde e acabaram com um monte de ficheiros que fazem algo específico, mas eu só preciso de uma função e é isso. Eles não me puderam dar o código do produto final. Fizeram uma confusão...
 

Em mql4 podia-se descobrir em cinco linhas se o bar era novo ou não. E agora um monte de ficheiros foram escritos, não está claro onde colocá-los, o que escrever dentro do programa...

Em suma, se houver peritos, então dê-me um exemplo de código, para que eu não sofra, e eu próprio possa enviar qualquer pessoa para a biblioteca, seja para a electrónica ou para a verdadeira.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Khomtchenko:
Não duvido, mas peço apenas para verificar a marca - alguém criou uma e a mesma EA em mql4 e mql5 e comparou os resultados do teste? Deve ser perfeito-similar se o código for devidamente transformado, não é verdade? Ou estarei eu errado?

Se o teste for tanto perbar como em mql5 a lógica é colocada no onTick, então será semelhante.

A única diferença pode estar nos spreads. Em 5, o historial contém os spreads. Na versão 4, o spread do testador é igual ao spread actual no terminal.

Se testar "cada carrapato", parece que será ainda menor, uma vez que os algoritmos de geração de carrapatos são diferentes nas versões.

 
Khomtchenko:

Em mql4 podia-se descobrir em cinco linhas se o bar era novo ou não. E agora foi escrito um monte de ficheiros, não sei onde colocá-los, o que escrever dentro do programa...

Em suma, se houver peritos, então dê-me um exemplo de código, para que eu não sofra, e eu próprio possa enviar qualquer pessoa para a biblioteca, electrónica ou real.

Aqui, declarar variável de última barra como estática ou globalmente, iTime array globalmente

bool NewBar()
  {

   if(CopyTime(_Symbol,_Period,0,1,iTime)<1)return(false);

   if(lastbar!=iTime[0])
     {
      lastbar=iTime[0]];
      return(true);
     }
   else
     {
      return(false);
     }
  }
 

Há um exemplo na página com a função isNewBar

https://www.mql5.com/ru/forum/2804/38752#comment_38752

Что меняет режим тестера "только цены открытия"?
Что меняет режим тестера "только цены открытия"?
  • www.mql5.com
Собственно, для советника работающего по onTick, в режиме "Только цены открытия" при тестировании все вычисления индикаторов и вызов функции OnTick() в экспертах происходит только один раз на бар.
 

1. Não pedi nada sobre os resultados de testar as mesmas estratégias em mql4 e mql5.

Costumava entrar no mercado numa nova barra se as condições preenchessem os requisitos de entrada e fechar a posição se os indicadores mostrarem o sinal oposto e entrar novamente numa nova barra.

No mql4 utilizei este procedimento para entrar num novo bar:

void Fun_New_Bar() // Ф-ия обнаружения ..

{ // ... novo bar

data/hora estática New_Time=0; // Hora da barra actual

Novo_Bar=falso; // sem novo bar

if(New_Time!=Time[0]) // Comparar tempos

{

New_Time=Time[0]; // Agora o tempo é

Novo_Bar=verdadeiro; // Novo bar é apanhado

}

}

Este é o resultado de testar o robô no mql4 usando a minha estratégia:

Resultados dos testes do mql4 EA

Obrigado por enviar os procedimentos para determinar o novo bar. Eles estão a trabalhar. Fiz um guião que escreve Alerta num novo bar e testei-o no M1 para não esperar muito tempo.

Mas a mesma estratégia dá resultados completamente diferentes (e os mesmos) utilizando ambos os procedimentos em mql5 Expert Advisor:

Resultados dos testes do conselheiro mql5

Não tenho rasgado a minha camisa e pisado os meus pés por nada. Quero repetir os resultados, mas eles não coincidem.

Eis como se parece aproximadamente a função onStart em mql4

int start()

{

GetIns();

Fun_New_Bar();

se (New_Bar==false) return(0);

se (Total()>0)

{

CloseSellEnd();

CloseBuyEnd();

}

se (Total()<1)

{

OpenBuy();

OpenSell();

}

return(0);

}

O mesmo em mlq5:

nulo OnTick()

{

GetIns();

se (NewBar())

{

se (Total()>0) TryToClose();

se (Total()<1)

{

OpenBuy(Lots,10, "EUR/USD (Comprar)",102406);

OpenSell(Lots,10, "EUR/USD (Sell)",102406);

}

}

}

GetIns para processar parâmetros indicadores, e Total() - dá o número de posições com a magia necessária para mql4 ou com o símbolo necessário para mql5.

Ajuda.

 

Penso ter encontrado a razão para a discrepância. Não vai acreditar nisso. Os MT4 e MT5 têm um historial de citações diferente. Parece ser ligeiramente diferente e a estratégia é testada com uma enorme diferença!!!!

Aqui está uma parcela em diferentes terminais:

Se olharmos mais de perto, há uma diferença. Um pequeno? E qual é a diferença entre os resultados do teste da estratégia, também pequena???

Contactarei os programadores! Que beta!!!

Razão: