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

 
Slava:
E quando o comércio começar, irá carregar outro símbolo - EURUSD

Não, não vai carregar. Olhado no visualizador, tudo está correcto - um símbolo durante o comércio.

 
fxsaber:

O símbolo personalizado tem todas as moedas iguais à moeda da conta. Ou seja, o modo é quase semelhante a "por pips", não há necessidade de ligar outros símbolos para calcular a margem, etc.

No servidor onde existe uma comissão (reproduzida em ForexTimeFXTM-Demo01, EUR, Hedge) no modo por carrapatos reais após a primeira transacção, outro símbolo dos padrões é ligado. E tudo, é claro, conta muito mais lentamente do que deveria.


Tudo funciona correctamente no MQ-Demo, onde não há comissão (e isto, incorrectamente, porque o teste para a correcção da comissão não é realizado no servidor principal de demonstração).


Este problema está a ser reproduzido?

Devido a este bug, se for necessária uma comissão, a optimização é severamente desacelerada.

 

É possível exibir o número de posição neste deslizador?

Clico no selector e utilizo as teclas ESQUERDA/DIREITA do teclado para alterar a velocidade. Por vezes é necessária a penúltima velocidade. Não é possível ver visualmente exactamente onde está o deslizador neste momento. E é muito fácil seleccionar a última velocidade.

Uma vez seleccionado, o Visualizador congela. E pode deitar fora todos os resultados. Uma ajuda de velocidade digital como a que está no ecrã seria agradável.


ZS Acontece que se não se fizer uma troca, a velocidade máxima no Visualizador não causa um enforcamento. Acontece que quase morto pairar é devido a operações comerciais.

 

Há algumas pessoas que não compreendem porque é que o MT5 Tester mostra resultados diferentes dos anteriormente utilizados pelos testadores competitivos.

Abaixo está uma reprodução disto.


No MQ-Demo, EUR, Hedge no testador, colocamos esta EA e activamos a DLL (precisamos dela para abrir automaticamente relatórios HTML num browser).

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

#define  VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#define  VIRTUAL_LIMITS_TP_SLIPPAGE // Лимитники и TP исполняются по первой цене акцепта - положительные проскальзывания
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

#define  REPORT_TESTER             // В тестере будут автоматически записываться отчеты
//#define REPORT_TESTER_INPUTS      // В отчете одиночного прохода будут видны входные параметры советника - требует разрешения DLL.
#define  REPORT_BROWSER            // Создание отчета с запуском браузера - требует разрешения DLL.
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

int OnInit()
{
  // Если стоп/фриз-уровень не нулевой - выходим.
  return(!MQLInfoInteger(MQL_TESTER) ||
         SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) ||
         SymbolInfoInteger(_Symbol, SYMBOL_TRADE_FREEZE_LEVEL));
}

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)
  {
    MqlTick Tick;
    
    if (SymbolInfoTick(_Symbol, Tick) && Tick.bid && Tick.ask/* && Tick.last*/)
    {
      // Сформировали комментарий для ордера: время и цена текущего тика.
      const string comment = TimeToString(Tick.time, TIME_SECONDS) + "." + IntegerToString(Tick.time_msc % 1000, 3, '0') + " " + 
                             DoubleToString(Tick.bid, _Digits) + "/" + DoubleToString(Tick.ask, _Digits);
                             
      OrderSend(_Symbol, OP_BUYLIMIT, 1, Tick.ask, 0, 0, 0, comment); // Выставляем BuyLimit по текущей цене

      FirstRun = false;
    }  
  }    
  else if (!OrdersTotal()) // Если нет открытых ордеров - выходим.
    TesterStop();
  
  if (OrderSelect(0, SELECT_BY_POS) && (OrderType() <= OP_SELL)) // Выставляем TP позиции по текущей цене
    OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderClosePrice(), 0);  
}


No separador de definições do Testador de Estratégia pressione CTRL+V para estas linhas.

[Tester]
Symbol=EURUSD
Period=M1
Optimization=0
Model=4
FromDate=2019.12.13
ToDate=2019.12.14
ForwardMode=0
Deposit=100000
Currency=EUR
ProfitInPips=1
Leverage=100
ExecutionMode=0
OptimizationCriterion=6
Visual=0
[TesterInputs]
VirtualTester=false
ReverseDeals=false
Report=true


Executar. O navegador apresentará um relatório.

Em seguida, definirVirtualTester=true e executá-lo novamente, obtendo mais um relatório no navegador.


A primeira vez que negociámos no MT5 Strategy Tester incorporado, a segunda vez, negociámos num testador de terceiros.


Vamos comparar os relatórios. Aqui estão numa fotografia (em cima - o MT5-Tester padrão, em baixo - o de terceiros).



Vê-se claramente que os resultados são muito diferentes. A abertura e o encerramento não coincidem por tempo e preço. Em geral, cada um pode decidir por si próprio onde se encontra o erro.


SZZ A volta de trabalho surgiu.

 
fxsaber:

Pode-se ver claramente que os resultados são bastante diferentes. Os horários de abertura e fecho e os preços não coincidem. Em suma, cada um pode decidir por si próprio onde se encontra o erro.

Porque é que o MT5 executou o limite após apenas 2,6 segundos? O preço passou para o outro lado imediatamente após a sua fixação? Ou não havia carraças?

 
Andrey Khatimlianskii:

Porque é que o MT5 só executou o limite após 2,6 segundos? O preço passou para o outro lado imediatamente após a sua fixação? Ou não houve nenhum carrapato?

O próximo tick a satisfazer o limite foi depois desse tempo. É claro que no Testador é possível estabelecer um limite ao preço actual e não conseguir a sua execução. Por exemplo, poderia estabelecer um limite a um extremo.

 
fxsaber:

O próximo tick que satisfez o limitador foi depois de tanto tempo. É claro que no Testador é possível estabelecer um limite ao preço actual e não conseguir a sua execução. Por exemplo, é possível estabelecer um limite a um extremo.

Especifica do que estamos a falar: forex, troca, rann?

Não há ordens limitadas em divisas e não pode haver.

 
Sergey Chalyshev:

Especifica do que estamos a falar: forex, bolsa de valores, rann?

Estamos a falar do Testador.

 
fxsaber:

É sobre o Testador.

O testador trabalha de forma diferente em troca e contas de divisas.
 
Sergey Chalyshev:
O testador trabalha de forma diferente em contas de stock e forex.

Estão disponíveis instruções para reprodução em qualquer personagem. Qualquer pergunta - basta executá-la.