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

 
Se estiver a depurar um guião ou uma EA e vaguear à volta da colta, aparece uma seta verde no lado esquerdo do código fonte, mostrando em que linha se encontra. Se vaguear pela colta em ficheiros diferentes, por exemplo, muitos inlúdios diferentes, de facto cada aba aberta com o seu próprio ficheiro terá uma flecha verde diferente. Mas quando eu paro de depurar, eles não desaparecem, mas ficam lá. Insecto ou insecto?
 
Não sei se isto já foi mencionado neste tópico ou não. Talvez eles finalmente façam acesso a todas as barras disponíveis a partir do testador? Estou realmente farto e cansado de trabalhar 5 minutos para carregar TFs mais altos ao longo de vários anos através de muletas!
 
traveller00:

É 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

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 a este respeito é desconhecido.

Para reproduzir e corrigir este erro precisamos de um perito sob a forma de ex5 e condições de optimização.

Se não for um problema para si, por favor envie-me isso em mensagens privadas. O perito será irremediavelmente dizimado após a investigação

 
Slava:

Para reproduzir e corrigir este erro, precisamos de um perito sob a forma de ex5 e das condições de optimização.

Se não for muito incómodo para si, então dê-me isso numa mensagem privada. Após a investigação, o perito será irrevogavelmente apagado

O código fonte do Expert Advisor é dado no mesmo posto. Por via das dúvidas, afixei-o novamente abaixo.

O símbolo e o período, quando não havia citações nele. No meu caso é bolsa de valores, corretor Otkritie, símbolo UCAD-12.19, período 01.09.2019-03.09.2019.

A optimização genética ou a ultrapassagem total não importa. Por um único teste variável, mais passes, colocados de 0 a 1000000.

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]);
}
 
traveller00:

É 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

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 a este respeito é desconhecido.

Obrigado pela mensagem!

O problema foi encontrado e resolvido.

 
Anton:

Obrigado pela sua mensagem!

O problema foi encontrado e resolvido.

Obrigado.

 
Não houve história descarregada. Começou em todos os caracteres.
2019.12.16 16:41:50.787 Tester  Experts\fxsaber\Research\Research03.ex5 on EURGBP,H1 from 2015.01.01 00:00 to 2019.12.16 00:00
2019.12.16 16:41:50.787 Tester  optimization on all MarketWatch symbols started
2019.12.16 16:41:50.790 Core 1  agent process started on 127.0.0.1:3000
2019.12.16 16:41:50.791 Core 2  agent process started on 127.0.0.1:3001
2019.12.16 16:41:50.792 Core 3  agent process started on 127.0.0.1:3002
2019.12.16 16:41:50.793 Core 4  agent process started on 127.0.0.1:3003
2019.12.16 16:41:50.794 Core 5  agent process started on 127.0.0.1:3004
2019.12.16 16:41:50.795 Core 6  agent process started on 127.0.0.1:3005
2019.12.16 16:41:51.145 Core 4  connecting to 127.0.0.1:3003
2019.12.16 16:41:51.145 Core 4  connected
2019.12.16 16:41:51.155 Core 2  connecting to 127.0.0.1:3001
2019.12.16 16:41:51.155 Core 2  connected
2019.12.16 16:41:51.162 Core 4  authorized (agent build 2280)
2019.12.16 16:41:51.162 Core 1  connecting to 127.0.0.1:3000
2019.12.16 16:41:51.162 Core 1  connected
2019.12.16 16:41:51.162 Core 3  connecting to 127.0.0.1:3002
2019.12.16 16:41:51.163 Core 3  connected
2019.12.16 16:41:51.163 Tester  EURGBP: history data begins from 2003.02.06 00:00
2019.12.16 16:41:51.163 Core 4  pass 0 started on EURGBP
2019.12.16 16:41:51.167 Core 4  common synchronization completed
2019.12.16 16:41:51.171 Core 2  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 3  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 1  authorized (agent build 2280)
2019.12.16 16:41:51.276 Tester  EURUSD: history data begins from 1971.01.04 00:00
2019.12.16 16:41:51.276 Core 2  pass 1 started on EURUSD
2019.12.16 16:41:51.280 Core 2  common synchronization completed
2019.12.16 16:41:51.476 Core 3  GBPUSD: preliminary downloading of M1 history started
2019.12.16 16:41:51.694 Core 2  EURUSD: history for 2014 year synchronized
2019.12.16 16:41:52.009 Core 2  EURUSD: history for 2015 year synchronized
2019.12.16 16:41:52.351 Core 2  EURUSD: history for 2016 year synchronized
2019.12.16 16:41:52.663 Core 2  EURUSD: history for 2017 year synchronized
2019.12.16 16:41:52.958 Core 2  EURUSD: history for 2018 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history for 2019 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history synchronization completed [13567 Kb]
2019.12.16 16:41:53.080 Core 2  EURUSD: 13.25 Mb of history processed in 0:01.778
2019.12.16 16:41:56.077 Core 4  pass 0 on EURGBP returned result 100000.00 in 0:00:04.862
2019.12.16 16:41:57.077 Core 2  pass 1 on EURUSD returned result 100000.00 in 0:00:03.961
2019.12.16 16:42:05.052 Core 3  pass 2 started on GBPUSD
2019.12.16 16:42:05.059 Core 3  common synchronization completed
2019.12.16 16:42:05.276 Core 3  GBPUSD: history synchronization started
2019.12.16 16:42:06.143 Core 4  pass 3 started on AUDCAD
2019.12.16 16:42:06.143 Core 5  connecting to 127.0.0.1:3004
2019.12.16 16:42:06.144 Core 6  connecting to 127.0.0.1:3005
2019.12.16 16:42:06.144 Core 5  connected
2019.12.16 16:42:06.144 Tester  testing on MarketWatch symbols finished, total passes 2
2019.12.16 16:42:06.144 Statistics      optimization done in 0 minutes 16 seconds
2019.12.16 16:42:06.144 Statistics      local 2 tasks (100%), remote 0 tasks (0%)
2019.12.16 16:42:06.144 Core 6  connected
2019.12.16 16:42:06.167 Tester  2 new records saved to cache file 'tester\cache\Research03.all_symbols.H1.20150101.20191216.22.FBC21040E327AF5F62DDA1A545DE091D.opt'
2019.12.16 16:42:06.168 Core 1  connection closed
2019.12.16 16:42:06.168 Core 2  connection closed
2019.12.16 16:42:06.168 Core 3  connection closed
2019.12.16 16:42:06.172 Core 6  authorized (agent build 2280)
2019.12.16 16:42:06.177 Core 5  authorized (agent build 2280)
2019.12.16 16:42:06.349 Core 4  AUDCAD: history synchronization started
2019.12.16 16:42:11.777 Core 3  GBPUSD: history downloading completed
2019.12.16 16:42:11.777 Core 3  GBPUSD: history synchronization interrupted
2019.12.16 16:42:11.777 Core 4  connection closed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history downloading completed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history synchronization interrupted
2019.12.16 16:42:24.794 Core 5  connection closed
2019.12.16 16:42:24.794 Core 6  connection closed
2019.12.16 16:42:24.794 Tester  stopped by user
Após a linha realçada, premir Stop. O terminal entrou em modo "Não responde". Desligou após 27 segundos (a julgar pelo registo).
 
Como se calcula o número de todos os erros de uma única execução do EX5? Por exemplo, lote errado ou falta de margem.
 
Bild 2280. É preciso um símbolo e um período em que não havia citações. Neste caso é uma bolsa de valores, corretor Otkritie, símbolo 1MFR-1.20, período 01.09.2019-01.12.2019. Dirige qualquer Consultor Especialista, digamos de Exemplos\\Moving Average\Moving Average.ex5. A optimização genética está definida (embora eu suspeite que outros também tenham este bug), o critério não faz diferença (sem ticks de qualquer forma), cada tic baseado em ticks reais, lucro em pips. Optimizamo-lo e obtemos essencialmente um conjunto de passes zero. Porque é que o factor_de_lucro e o nível_da_margem estão cheios de lixo em cada passe? As variáveis não estão inicializadas com zero algures? No separador do fundo, parece apenas um espaço vazio, não produz nada. Se analisarmos o opt-file à mão, os valores são factor_de_benefício = 1,797693134862316e+308 e margin_level = 1,797693134862316e+308.
 
traveller00:
factor_de_benefício = 1,797693134862316e+308 e nível_da_margem = 1,797693134862316e+308.

DBL_MAX