MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias - página 38

 

Tocar o bug de reset de entrada durante a compilação.

EA

input int inRange = 0;

void OnInit() {}

1. definido inRange = 25 e executar uma única passagem

2. CTRL+V no separador Definições do Testador da linha seguinte

inRange=123

3. Recompilar a EA.

4. Ver que o inRange é redefinido para 25. Deveria ter sido 123.

 
Slava:

No temporizador do Testador ou através do Sleep deslocado por 0,5 segundos. Como identificar o que aconteceu? O TimeTradeServer não mostra dados de menos de um segundo.

 
fxsaber:

Tocar o bug de reset de entrada durante a compilação.

EA

1. definido inRange = 25 e executar uma única passagem

2. CTRL+V no separador Definições do Testador da linha seguinte

3. Recompilar a EA.

4. Ver que o inRange é redefinido para 25. Deveria ter sido 123.

Não se trata de um insecto.

Tal como concebido. Até o botão de teste ser premido, os parâmetros actuais não são escritos para o actual <nome_de_experto>.set

Ao recompilar, se a composição dos parâmetros não tiver sido alterada, os seus valores são restaurados a partir do conjunto actual

 
Slava:

Não é um insecto.

Tal como concebido. Até premir o botão de teste, os parâmetros actuais não são escritos para o actual <nome_de_experto>.set

Ao recompilar, se a composição dos parâmetros não tiver sido alterada, os seus valores são restaurados a partir do conjunto actual

Não é. Se escrever à mão 123, a compilação não altera o valor.

 
Também jáescrevi sobre este tema, mas não obtive resposta. De facto, torna-se impossível debugar com parâmetros personalizados. Porque a depuração reconstrói-se sempre, mesmo que nada tenha sido alterado. Reconstruir restabelece os parâmetros. Terei de sair da equação alterando o Expert Advisor e pregando os parâmetros, o que não é muito conveniente.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Algo que se optimizou demasiado com o iTime:


Trabalhar na M5:


Este é um insecto de longa data.

Apareceram em carraças reais de EURUSD exactamente nesta gama de testes

Corrigido.

 
traveller00:
Tambémescrevi sobre este tema, mas não obtive resposta. De facto, torna-se impossível debugar com parâmetros personalizados. Porque a depuração reconstrói-se sempre, mesmo que nada tenha sido alterado. Reconstruir restabelece os parâmetros. Terei de sair da equação alterando o Expert Advisor e pregando os parâmetros, o que não é muito conveniente.

Não disse nada sobre os passos para reproduzir o problema que descreveu.

Pessoalmente não consegui reproduzi-la.

Há apenas um caso de redefinição dos parâmetros de entrada para os parâmetros por defeito. Quando se altera a composição dos parâmetros desta EA

 
fxsaber:

Os preços na história do Terminal não foram normalizados!

Os preços para MQ-Demo e MQ-Beta foram normalizados a partir de 12.12.2019.

 

É utilizada uma construção de 2280. É preciso um símbolo e um período em que não havia citações no mesmo. Neste caso é bolsa de valores, corretor Otkritie, símbolo UCAD-12.19, período 01.09.2019-03.09.2019. Está a funcionar um simples Expert Advisor (abaixo). Se correr um passe de cada vez, está bem, apenas diz sem história, 0 barras e 0 carrapatos. Se eu executar a optimização, não importa se é genético ou completo, o registo conterá muitos erros

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

Parece ser uma resposta ao acesso ao conjunto deOldTicks, mas não sei porquê. Substituir o resultado da função de retorno pelo tamanho da matriz não ajuda. O que fazer quanto a isso, desconhecido.

 

Construir 2280. Porque é que quando se executa uma optimização, por exemplo, optimização genética, todos os campos do separador Definições ficam cinzentos e não podem ser alterados, mas o campo que está a ser optimizado para (como o Maximum Custom Criterion) permanece activo? O critério pode ser alterado no meio da optimização ou é um bug?

P.S. Hm, nem sempre parece que se repete.

P.P.S. Descobriu como repetir. Inicialmente, após a execução do teste, o botão entra num estado de desactivação. Mas tenho a janela de ajustes mais baixa um pouco comprimida em altura, como resultado há um deslocamento vertical. Se rolar para cima que o critério já não é visível, e depois voltar a rolar para baixo, pode detectá-lo novamente puxado para baixo.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...