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

 

O testador dos símbolos personalizados deixou de funcionar correctamente. Reprodução.

Criar símbolo.

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias

fxsaber, 2020.02.11 01:58

sinput datetime inDateFrom = D'2020.01.01';

void OnStart()
{
  const string Name = "USDJPY_CUSTOM";                                                       // Имя кастомного символа
  const string SymbOrig = "USDJPY";                                                          // Имя оригинального символа

  MqlTick Ticks[];
  
  const int Size = CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)inDateFrom * 1000); // Считали USDJPY-тики.
    
  if ((Size > 0) && CustomSymbolCreate(Name, NULL, SymbOrig) && SymbolSelect(Name, true))    // Создали символ на основе USDJPY.
    CustomTicksReplace(Name, 0, LONG_MAX, Ticks);                                            // Поместили в него историю USDJPY.        
}


No Testador de Estratégia (modo padrão, não por pips) iniciar este Consultor Especialista

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
}

tendo fixado as moedas iguais à moeda da conta.


Depois disso, veremos os lucros do negócio.


O lucro é 100 vezes maior do que deveria ser. Isto não acontecia em construções anteriores.

Cadeia de pesquisa: Oshibka 003.
 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias

fxsaber, 2020.01.28 14:07

Esta é a primeira vez que me deparo com uma situação com a minha EA em que o resultado da AG não coincide com um único passe. Todos os passes são diferentes.

O resultado da força bruta completa é o mesmo. Construir 2305.


Tenho a sensação de que na opção pela genética os parâmetros de entrada de cada passe não estão escritos de forma muito correcta.

A situação repetiu-se. É difícil imaginar como descobrir as razões.

 
fxsaber:

A situação tem-se repetido. É difícil ver como descobrir as causas.

Existem valores de parâmetros na linha de resultados da optimização.

Num único teste, os valores dos parâmetros são necessariamente exibidos no registo do testador.

Os valores na linha de resultados da optimização e no registo do testador coincidem?

 
Slava:

Os valores dos parâmetros estão presentes na barra de resultados da optimização.

Se for realizado um único teste, os valores dos parâmetros são necessariamente emitidos no registo do testador.

Os valores na linha de resultados da optimização e no registo do testador são coincidentes?

Eles correspondem. Esta foi a primeira coisa que verifiquei. Vou tentar puxar os passes da AG através dos quadros. E depois comparar com o que o single mostra.

Tenho uma suspeita de que a cadeia de parâmetros de entrada é formada incorrectamente. Ou seja, fiz um passe para um conjunto, mas prescrevi erroneamente outro conjunto em opt.


A ZZZ não conseguiu reproduzir o histórico num pequeno intervalo.

 

O testador de estratégia verifica os símbolos originais e os símbolos personalizados para a correcção (barras e carraças correspondentes) de forma diferente ao preparar os dados antes do passe.


Criamos um símbolo personalizado, não há um único erro. Depois fazemos este mesmo lado de servidor de dados. E o Testador diz que os dados são um grande erro.

Mais uma razão para executar o testador apenas em símbolos personalizados.

 
fxsaber:

Depois, fazemos desses mesmos dados os dados do servidor. E o Testador diz que os dados são um grande erro.

Talvez haja um problema com o formato, afinal de contas?

 
Andrey Khatimlianskii:

Talvez haja um problema com o formato?

Verifiquei este ponto. Combinação completa, incluindo volume de carrapato, spread, etc.

 
fxsaber:

Verifiquei este ponto. Combinação completa, incluindo volume de carrapato, spread, etc.

Deve ser uma protecção. Por isso, não aconchegam nada.

 
Andrey Khatimlianskii:

Provavelmente, protecção. Para que não mexam em nada.

É que os dados do personagem original correspondem perfeitamente aos dados personalizados. Mas o personalizado passa sem erros, enquanto que o original não passa.

Num servidor real encontrei uma situação em que o mesmo volume de tick do símbolo original é um pouco diferente do que está na história do tick.

E aí é melhor não usar Tester de todo em símbolos originais. Caso contrário, poderá deparar-se com carraças geradas em vez de carraças reais.

 
fxsaber:

A situação tem-se repetido. É difícil imaginar como resolver as causas.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias

fxsaber, 2020.01.28 14:07

Esta é a primeira vez que me deparo com uma situação com a minha EA em que o resultado da AG não coincide com um único passe. Todos os passes são diferentes.

O resultado da força bruta completa é o mesmo. Construir 2305.


Tenho a sensação de que no opt-out durante a genética os parâmetros de entrada de cada passe não são escritos de forma muito correcta.

Slava:

Existem valores de parâmetros na linha de resultados da optimização.

Num único teste, os valores dos parâmetros são necessariamente escritos no registo do testador.

Os valores na linha de resultados da optimização e no registo do testador são coincidentes?

Tive também uma situação semelhante, tentei analisá-la e acabou por se revelar assim,

Os parâmetros na linha de resultados da optimização são correctos e coincidem com os do registo do testador, mas o Expert Advisor começa a testar com parâmetros diferentes.

Reiniciei o terminal e apaguei todas as caches, mas os parâmetros de optimização não foram aplicados ao Expert Advisor de qualquer forma. Talvez, antivírus ou firewall tenham bloqueado algo.

Depois, de alguma forma, resolveu-se e começou a funcionar normalmente. Verifique se a sua firewall também está a bloquear algo.