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

 
Alexey Viktorov:

Então não conseguiu registar uma conta no beta?

Não.
 

O MT4-Tester tinha um tal assistente para as AA.


Ajudou consideravelmente a reduzir o tempo de optimização. Por exemplo, se o equilíbrio está no chão, porquê ir mais longe? O MT5 não tem isso. É por isso que temos de construir coisas tão razoáveis nos nossos EAs. Não creio que muitos autores façam isso. Por isso, seria provavelmente razoável transferir tal funcionalidade também para o MT5-Tester.


Também os assistentes da GA são relevantes. Aqui está o mais simples.

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

Consultores especializados: Validar

fxsaber, 2020.01.29 15:55

Recomendo a utilização no meu EAs de um ajudante GA semelhante.

sinput int inMinTrades = 500; // Минимальное количество трейдов (позиций).
sinput int inMaxTrades = 90000; // Максимальное количество трейдов (позиций).

double OnTester()
{
  return(((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) ? TesterStatistics(STAT_PROFIT) : 0);
}

Não permite que a AG vá para o lado dos resultados estatísticos fracos. Aumenta a qualidade e a rapidez dos resultados. E para validar também filtra de passagens com valores estatísticos fracos.


Por exemplo, quando reajustei com base em cálculos de três meses, defini o número mínimo de negócios > 100. Caso contrário, há maior probabilidade de encontrar um passe na AG que dê o maior lucro devido ao pequeno número de negócios (aleatórios) bem sucedidos. Claramente, um tal passe não deve ter nada a ver com a sua escolha para posterior negociação.

Penso que é razoável que o testador tenha tais ajudantes. Tanto mais que não requer qualquer custo computacional.

 

Olá a todos.

Tenho um robô multi-mercado. Comercializa arbitragens estatísticas, espalha-se. O robô é concebido de modo a tirar instrumentos da própria visão geral do mercado ou retirá-los de ficheiros de disseminação (que está localizado no directório raiz do programa em pasta de ficheiros). O robô analisa os dados, selecciona os pares de instrumentos mais promissores, e comercializa-os.

Pergunta, será o testador de estratégias mt5 capaz de o testar? Se os instrumentos de negociação não estiverem listados nos parâmetros de entrada do robô, como é habitual, mas os instrumentos forem retirados da visão geral do mercado ou da pasta Ficheiros, o testador pretende funcionar?

 
Peresvet Timonkin:

Olá a todos.

Tenho um robô multi-mercado. Comercializa arbitragens estatísticas, espalha-se. O robô é concebido de modo a tirar instrumentos da própria visão geral do mercado ou retirá-los de ficheiros de disseminação (que está localizado no directório raiz do programa em pasta de ficheiros). O robô analisa os dados, selecciona os pares de instrumentos mais promissores, e comercializa-os.

Pergunta, será o testador de estratégias mt5 capaz de o testar? Se os instrumentos de negociação não estiverem listados nos parâmetros de entrada do robô, como é habitual, mas os instrumentos forem retirados da visão geral do mercado ou da pasta Ficheiros, o testador pretende funcionar?

A visão geral do mercado é gerada pelas chamadas a partir do código para os símbolos. Para um testador, é obrigatório que haja uma lista de moedas em qualquer variante. E no mundo real não há problema.

O que está na imagem do ecrã é para optimização.
 
Alexey Viktorov:

A análise do mercado é formada por chamadas de símbolos a partir do código. Para um testador deve haver uma lista de moedas em qualquer variante. E no mundo real não há problema.

O que está na imagem do ecrã é para optimização.

Compreendo correctamente que não pode testar com este tipo de configuração como eu?

o testador não pode retirar dados da análise do mercado do histórico?

E quanto ao ficheiro em que são prescritas ferramentas comerciais, o provador também não pode trabalhar com ele?

Acabei de ler o manual, mas não encontrei nada sobre ele, diz que posso testar e optimizar estratégias múltiplas, mas não sei muito sobre ele.

 
Peresvet Timonkin:

Compreendo correctamente que não pode testar com este tipo de configuração como eu?

o testador não pode retirar dados da análise do mercado do histórico?

E quanto ao ficheiro em que são prescritas ferramentas comerciais, o provador também não pode trabalhar com ele?

acabei de ler o manual completo do testador, não consegui encontrar uma palavra sobre ele, diz que posso testar e optimizar estratégias multiriscos, mas não sei muito sobre ele.

Se se esforçar, pode fazer qualquer coisa. Por exemplo, no OnInit() solicitar carraças das moedas necessárias e, assim, adicioná-las à visão geral do mercado e depois trabalhar com a visão geral do mercado. Mas neste caso, não importa como se olha para ela, deve haver uma lista de moedas. Podemos ter duas opções: trabalhar com a lista e trabalhar com os que constam do relatório do mercado. Consequentemente, temos de estabelecer uma condição no OnInit() se trabalharmos no testador, então trabalhar apenas com a lista. Existe um Consultor Especialista no Mercado.

Quanto ao ficheiro: É claro que é possível, mas temos de considerar a localização do ficheiro. Deve estar localizado na pasta do testador ou na pasta partilhada por todos os terminais. Ou inseri-la como um recurso.
 

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.22 23:08

A minha construção 2300. No modo de pontos, aprendi a ter em conta o volume.


No entanto, o lucro das operações InOut neste modo é calculado incorrectamente.


Se funcionarmos em modo normal, o lucro é correcto.



Por conseguinte, o modo pips não está a funcionar agora em Netting (mostra lucro exagerado).


2310 é relevante. É impossível utilizar o modo pips na Netting.

 

Em 2310 notei que a minha EA, que faz modificações frequentes, não pode ser perfilada.

Esboço de um teste.

input int inFakeRange = 0;
sinput int inOffset = 10000;

#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_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}

Reproduz a impossibilidade de traçar o perfil literalmente imediatamente em modo de carraça real, uma vez que tudo é muito lento.


No entanto, também faz com que o terminal HOLD quando funciona com carraças reais (mesmo no modo pips) uma única passagem! Apenas uma espécie de assassino.


Se fizer a sua Optimização (sobre o primeiro parâmetro), explode sem problemas, mas traz à tona alguns maus pensamentos sobre o desempenho...


HH Se o correr no Visualizador e o fechar antes de estar terminado, o Terminal fica pendurado.

 
fxsaber:

Se o optimizarmos (para o primeiro parâmetro), tudo bem, mas ficamos com algumas más ideias sobre o desempenho...

Só o posso comparar com a variante Virtual.

input int inFakeRange = 0;
sinput int inOffset = 10000;

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

#define  VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}


Variante normal.

optimization finished, total passes 5
optimization done in 1 minutes 04 seconds
shortest pass 0:00:12.560, longest pass 0:00:13.608, average pass 0:00:12.808
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


Com o Virtual.

optimization finished, total passes 5
optimization done in 0 minutes 06 seconds
shortest pass 0:00:00.954, longest pass 0:00:02.060, average pass 0:00:01.231
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


O teste é 13 vezes mais lento num Expert Advisor básico no modo Pips, onde não há sequer verificações! Construir 2310.

 
fxsaber:

O testador é 13 vezes mais lento numa EA elementar em modo pips, onde não há sequer verificações! Construir 2310.

Mesmo esta EA é mais de duas vezes mais lenta do que a Virtual no modo Pips.

input int inFakeRange = 0;
sinput int inOffset = 10000;

#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_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
}

Porque é que isto acontece? Todo o Expert Advisor está a colocar o BuyLimit no primeiro tick. Não há mais nada!

Razão: