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

 
traveller00:
Sim, copiei a partir dos parâmetros e vi a forma que espera ver. Mas não é muito conveniente lidar com tais valores. Foi por isso que perguntei se é possível introduzir aí o suporte de formatos de datas, como na fonte.

A pessoa está a editar ficheiros de conjuntos?


Se os dados de data/hora forem apresentados (set-files, CTRL+C tester, tpl-files e provavelmente outra coisa) como uma string em vez de um número, toda a conveniência de analisar estes dados irá colapsar.

Agora existem apenas três tipos de dados de entrada: duplo, longo e string. Os dois primeiros são sempre números. Este inclui não só a data, mas também a cor, a enumeração e tudo, excepto cordel. Isto é super conveniente!


A criação de mais uma entidade, tornando assim muito código inutilizável, não é muito sensata. Há comentários. Aqui está um exemplo de um conjunto gerado automaticamente.

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

Bibliotecas: TesterCache

fxsaber, 2019.11.11 04:45

; saved on 2019.11.13 19:40:01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09.01 - 2019.11.13
; 479, 10, Max, 47.92, -253.60
;
InpLots=0.1
InpTakeProfit=200||10||5||500||Y
InpTrailingStop=290||30||10||300||Y
InpMACDOpenLevel=5||5||5||200||Y
InpMACDCloseLevel=180||5||5||200||Y
InpMATrendPeriod=8||1||1||200||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000-2019, MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; (ENUM_TIMEFRAMES)period = PERIOD_M1
; date_from = 2019.09.01 00:00:00
; date_to = 2019.11.13 00:00:00
; date_forward = 1970.01.01 00:00:00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

Não sei de outros, mas acho conveniente quando o ficheiro do conjunto contém toda a informação. É muito rápido a descobrir o que é, de onde vem e quanto é.


Isso não é suficiente?


ZZY One deve lembrar-se que a data/hora e optimizada, pode definir Start, Step, Stop. Onde Step, claro, mesmo na GUI é definido em segundos.

 
Referia-me à cópia para tampão por CTRL+C para deixar o número como estava. Mas a pasta por CTRL+V deve ser alargada para compreender tanto o formato antigo (essencialmente ulong) como o novo formato de cordas. Isto não deve quebrar nada, mas irá expandi-lo para aqueles que querem especificar um fio em vez de um número.
 
traveller00:
Quis dizer copiar para o buffer por CTRL+C para deixar o número tal como estava. Mas estender a pasta por CTRL+V para compreender tanto o formato antigo (essencialmente ulong) como o novo formato de corda. Isto não deve quebrar nada, mas irá expandi-lo para aqueles que querem especificar um fio em vez de um número.

Bom esclarecimento. Não vai realmente quebrar nada. Realmente, não conheço pessoas que utilizem CTRL+V para marcar a data.

 
fxsaber:

No entanto, não conheço pessoas que utilizem CTRL+V para definir a data.

É mais uma questão de fixar não a data, mas os parâmetros em geral, incluindo onde se encontra a data. Em primeiro lugar, para o tornar consistente, uma vez que o próprio mql mantém o formato da data, e em segundo lugar, para o tornar claro, e não para multiplicar os comentários. Para os meus testes, gera os parâmetros de entrada, que devem ser avaliados a olho, e depois posso adicioná-los.

Slava:
Talvez. Iremos.

Podemos ao mesmo tempo apoiar a inserção (via CTRL+V) de parâmetros de entrada para o Expert Advisor? Para testes, é inserido nos Parâmetros na perfeição. Contudo, quando não está a testar mas simplesmente a adicionar uma EA a um gráfico, o separador Parâmetros de Entrada não parece suportar a colagem e eu tenho de preencher manualmente os mesmos parâmetros. Obrigado.

 
traveller00:

Podemos também apoiar a inserção (via CTRL+V) de parâmetros de Entrada para a EA? É inserido perfeitamente para testes em Parâmetros. Contudo, quando não está a testar mas simplesmente a adicionar uma EA a um gráfico, o separador Parâmetros de Entrada não parece suportar a colagem e eu tenho de preencher manualmente os mesmos parâmetros. Obrigado.

E CTRL+C.

 

Desenvolvedores, olá!

Por alguma razão, a verificação OnTimer nem sempre funciona no testador de estratégia quando se executa a EA (não sei o que tem a ver com ela):

    if (MQLInfoInteger(MQL_PROFILER) == 0 && MQLInfoInteger(MQL_TESTER) == 0) {
        Print("You can't use this version of EA in trade mode!");
        return;
    }

OnInit parece funcionar sempre bem.

PS. Ao mesmo tempo, o ofício nem sempre funciona. Acrescentarei registos para os modos de teste para saber porque não é permitido o comércio. Uma falha flutuante de algum tipo.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

Deparei-me com o facto de os objectos gráficos em MT5 tester em modo de visualização não serem apresentados da forma que eu pensava que seriam. Simplifiquei o teste Expert Advisor até ao limite, deve construir um rectângulo por coordenadas tomadas com base na 50ª e 45ª barras. O código está no anexo, mas toda a lógica está numa só linha:

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

A EA deveria redesenhar tal canal em cada nova barra da actual TF. A imagem deve ter este aspecto:


Na realidade, o rectângulo estica-se caótica tanto em comprimento como em largura e a imagem tem este aspecto:


O código da EA de trabalho contém muitos mais objectos e cada um deles está ainda mais distorcido, resultando numa confusão.

Além disso, se fizermos um teste visual da EA de teste a uma velocidade baixa, a renderização é quase sempre correcta. Contudo, quando corroum Expert Advisor de teste à velocidademáxima ou quase à velocidade máxima, ou quando corro um EA real com muitos objectos mesmo à velocidade mínima, recebo as distorções acima descritas.

Por favor, informe qual é o problema e se este pode ser resolvido. Tentou procurar uma resposta, mas falhou.

Muito apreciada qualquer ajuda, seja de que forma for.

Arquivos anexados:
 
Andrey Pogoreltsev:

Desenvolvedores, olá!

Por alguma razão, a verificação OnTimer nem sempre funciona no testador de estratégia quando se executa a EA (não sei o que tem a ver com ela):

OnInit parece funcionar sempre bem.

PS. Ao mesmo tempo, o ofício nem sempre funciona. Acrescentarei registos para os modos de teste para saber porque não é permitido o comércio. Uma espécie de falha flutuante.
Substituir && por ||||.
 
Grigori.S.B:

Deparei-me com o facto de os objectos gráficos em MT5 tester em modo de visualização não serem desenhados da forma que eu pensava que seriam. Simplifiquei o teste Expert Advisor até ao limite, deve construir um rectângulo por coordenadas tomadas com base na 50ª e 45ª barras. O código está no anexo, mas toda a lógica está numa só linha:

A EA deve redesenhar tal canal em cada nova barra da actual TF. A imagem deve ter este aspecto:


Na realidade, o rectângulo estica-se caótica tanto em comprimento como em largura e a imagem tem este aspecto:


O código da EA de trabalho contém muitos mais objectos e cada um deles está ainda mais distorcido, resultando numa confusão.

Além disso, se fizermos um teste visual da EA de teste a uma velocidade baixa, a renderização é quase sempre correcta. Quando corroum Expert Advisor de teste à velocidademáxima ou a uma velocidade quase máxima, ou quando corro um EA real com muitos objectos mesmo à velocidade mínima, recebo as distorções acima descritas.

Por favor, informe qual é o problema e se este pode ser resolvido. Tentou procurar uma resposta, mas falhou.

Muito apreciada qualquer ajuda, seja de que forma for.

Tente simplesmente alterar as coordenadas de um objecto outrora criado
 
Grigori.S.B:

Deparei-me com o facto de os objectos gráficos em MT5 tester em modo de visualização não serem desenhados da forma que eu pensava que seriam. Simplifiquei o teste Expert Advisor até ao limite, deve construir um rectângulo por coordenadas tomadas com base na 50ª e 45ª barras. O código está no anexo, mas toda a lógica está numa só linha:

A EA deveria redesenhar tal canal em cada nova barra da actual TF. A imagem deve ter este aspecto:


Na realidade, o rectângulo estica-se caótica tanto em comprimento como em largura e a imagem tem este aspecto:


O código da EA de trabalho contém muitos mais objectos e cada um deles está ainda mais distorcido, resultando numa confusão.

Além disso, se fizermos um teste visual da EA de teste a uma velocidade baixa, a renderização é quase sempre correcta. Quando corro um Expert Advisor de teste à velocidade máxima ou a uma velocidade quase máxima, ou quando corro um EA real com muitos objectos mesmo à velocidade mínima, recebo as distorções acima descritas.

Por favor, informe qual é o problema e se este pode ser resolvido. Tentou procurar uma resposta mas falhou.

Muito apreciada qualquer ajuda, seja de que forma for.

Verificar código para erros, muito provavelmenteERR_OBJECT_ALREADY_EXISTS.

Tem de apagar o objecto antes de o recriar ou

Slava:
Tente simplesmente alterar as coordenadas de um objecto uma vez criado
Razão: