Resultados completamente diferentes de um mesmo especialista

 

Estou muito, muito intrigado com os resultados que estou obtendo do metatrader's backtester. Espero que outra pessoa tenha tido experiências semelhantes e possa ter uma idéia do que possa estar causando a minha.

Um especialista que desenvolvi alcançou excelentes resultados nos testes de retaguarda e em uma ampla gama de variações na otimização e nas corridas de otimização de caminhada. Então, de repente, sem que eu tivesse feito conscientemente grandes mudanças, os resultados se tornaram medíocres/marginais. Então hoje novamente os resultados de repente se tornaram soberbos novamente.

Agora tenho relatórios de testes com exatamente o mesmo especialista, as mesmas datas, o mesmo arquivo de configurações e resultados totalmente diferentes. Fiz meu melhor para garantir que os dados sejam os mesmos (reconstruindo-os a partir dos dados históricos baixados ontem, ainda tenho resultados muito diferentes hoje até então).

A única coisa que eu descobri que poderia ser diferente é a propagação. Até onde eu posso perceber, o MT4 assume que a propagação durante toda uma corrida de retaguarda terá sido a mesma que a propagação agora mesmo. Uma "característica" bastante estranha do sistema, mas não a explicação de minhas observações, pois com spreads apertados hoje, os resultados foram medíocres, enquanto que com spreads ligeiramente maiores ontem, os resultados foram incrivelmente bons.

Depois destas experiências, estou em uma posição em que não tenho certeza se posso confiar nas informações que recebo do software, e na necessidade desesperada de uma explicação que posso usar para evitar ser enganado (de uma forma ou de outra) no futuro.

Aqui estão os gráficos dos resultados medíocres e os resultados incrivelmente bons para testes de backtests com o mesmo especialista, o mesmo período (2011/1/1 a 2011/7/26) e as mesmas configurações. As negociações são normalmente abertas por horas ou mais e não utilizam lucros ou perdas de parada (todas as entradas e saídas são baseadas apenas nos estados dos indicadores). O número de negócios nas duas séries é 211 e 173. Há perdas no segundo gráfico, mas o fator de lucro é muito alto.


 
Elroch:


Agora tenho relatórios de testes anteriores com exatamente o mesmo especialista, as mesmas datas, o mesmo arquivo de configurações e resultados totalmente diferentes. Fiz meu melhor para garantir que os dados fossem os mesmos (reconstruindo-os a partir dos dados históricos baixados ontem, ainda tenho resultados muito diferentes hoje até então).


Baixe seus dados novamente, desconecte seu Terminal (eu faço isso logando com um número de conta inválido), apague seu histórico e dados já armazenados no Terminal, importe seus dados, M1 eu presumo ? faça os outros períodos que você precisa usando o conversor de período e importe-os . . verifique se você tem os dados necessários para o período de data que você deseja executar . . execute seu EA.
 
Obrigado, mas construí mais de uma vez os dados de 10 anos de dados de 1 minuto baixados da maneira que você sugere, reiniciei o software muitas vezes, armazenei a EA exata e as configurações e ainda consegui resultados completamente diferentes em uma execução posterior. Ainda estou intrigado.
 

Elroch:

Um especialista que desenvolvi alcançou excelentes resultados nos testes de retaguarda e em uma ampla gama de variações na otimização e nas corridas de otimização para a frente.

Então, de repente, sem que eu tivesse feito conscientemente grandes mudanças, os resultados se tornaram medíocres/marginais.

Então hoje novamente os resultados se tornaram de repente soberbos novamente.

O testador usa o spread CURRENT. Você é EA é altamente sensível às mudanças.
 
WHRoeder:
O testador utiliza o spread CURRENT. Você é EA é altamente sensível às mudanças.

Como mencionei, percebi isso, mas como hoje obtive resultados medíocres na corrida com um spread de 1,2 pips, esta não é a explicação.
 

Se suas entradas e saídas são realmente baseadas apenas em valores indicadores, você está negociando lotes moderados e ganhando uma boa média em pips/trade, não há muitas opções:

a) arquivo de histórico de currupção

b) algo como aleatoriedade incluída

c) dependem de alguma variável global (que foi alterada entre os dois testes)

d) algumas configurações de corretores podem ter mudado, (improvável)

Por que não executar o teste em cada modo de carrapato? Isto lhe mostrará a qualidade dos dados

 

O testador de estratégia de carrapatos psudo cria criados de forma idêntica para cada execução de teste e faz indicadores usados pela EA, cria valores para cada carrapato da última barra como eles fariam quando se negocia ao vivo?

 

Obrigado por seus pontos interessantes, zzueg.

(a) parece inviável que um arquivo de histórico corrupto possa explicar a seqüência de resultados de testes anteriores com o mesmo EA: ou seja, resultados medíocres, excelentes resultados, resultados medíocres e resultados similares excelentes durante um período desde sexta-feira da semana passada, durante o qual eu fiz novas instalações de metatrader, reconstruí todos os dados de dados de 1 minuto supostamente de alta qualidade, etc.

(b) o problema com qualquer explicação devido a efeitos aleatórios (incluindo dados ruins) é que é muito difícil ver por que deveria tornar as negociações consistentemente muito melhores.

(c) Por alguns dias, pensei que poderia ter sido alguma mudança acidental em meu código. Mas hoje quando obtive os resultados incrivelmente bons, salvei imediatamente uma cópia do especialista (fonte e ex4) e o arquivo de configurações. Mas exatamente o mesmo especialista e as configurações deram resultados medíocres em uma execução posterior.

(d) sim, não tenho certeza de que haja muito do corretor que seja relevante além do spread. Estes são todos os backtests em vez de negociações ao vivo, é claro, e os dados foram construídos, na maioria das vezes, a partir de dados de 1 minuto baixados durante 10 anos.

(e) Com o perito entrando e saindo posições na barra aberta e não usando paradas ou metas de lucro (na versão em estudo de qualquer forma), meu entendimento é que os únicos valores que podem influenciar os resultados são os de abertura, alta, baixa e fechamento das barras dos gráficos de 5 minutos e superiores (na verdade acontece que mesmo o fechamento é irrelevante: há várias variantes do mesmo indicador sendo usado, e estas acontecem de usar (H+L)/2 como ponto de dados, enquanto a entrada e saída ocorrem na abertura de uma barra, de modo que os dados abertos e a propagação também são irrelevantes. Se um comércio é aberto ou fechado depende dos valores dos indicadores das barras anteriores, não da barra atual.

...mas por uma questão de minúcia, fiz uma corrida com "todos os carrapatos". Os resultados foram praticamente idênticos ao anterior, com uma pequena diferença explicada pelo último comércio sendo fechado na última barra de 1 minuto em vez da última barra de 5 minutos.


SDC, não posso ter certeza se cada carrapato gerado é o mesmo, mas tenha em mente as observações que fiz em resposta ao zzueg em (e) acima.
 

Não quis dizer que os resultados mudam em cada modo de carrapato, mas sim que estou entrecruzado na quantidade de erros de gráfico não correspondidos relatados.

As lacunas na história são muito improváveis, pois não explicariam tal diferença com uma estratégia baseada em indicadores.

Tive problemas semelhantes apenas com dados corruptos, uma vez que meu terminal está sempre offline, nunca mais experimentei nada parecido.

Com as variáveis globais que eu oriento: você tem algo como GlobalVariableGet() em seu código, estas variáveis não estão limitadas ao ambiente de teste.

Finalmente, só para ter perguntado a todos: algum erro no log?

@SDC, sim, os pseudo ticks são gerados de forma idêntica para cada execução. Pela minha experiência, a precisão é de 90%, mas ainda assim sempre a mesma.

 

Mais uma vez, obrigado por suas observações. Agora estou na interessante situação de ter duas instalações de metatrader dando os dois conjuntos de resultados extremamente diferentes (mesmo quando copio a EA e os ajustes diretamente de um para o outro e corro o testador de estratégia em ambos. Isto apontaria para os dados, mas ainda é muito difícil ver como poderia explicá-los devido às razões discutidas. Estou me perguntando qual é a melhor maneira de ver as diferenças que podem existir.

Acabo de verificar os registros das duas corridas nas instalações separadas do metatrader e não há erros em nenhuma delas.

Não há nada como GlobalVariableGet() no meu código. A EA usa 5 cópias de um único indicador personalizado em 4 períodos de tempo diferentes, sendo que um tem um parâmetro diferente dos outros.

 

Encontrei o que pode ser uma evidência crucial, mas não entendo realmente seu significado.

Na instalação que estava dando resultados medíocres, eu me desconectei da conexão com o corretor de dinheiro real a/c e me conectei novamente à prática a/c no mesmo corretor. Depois de fazer isto (e nada mais), o testador de estratégia deu resultados espetaculares semelhantes aos da outra cópia do metatrader (rodando no mesmo corretor de prática a/c). A propósito, o corretor é Oanda.

Não tenho certeza de como o cliente metatrader lida com dados históricos quando alterna entre diferentes a/c, mas o fato de que todos os dados antigos vêm dos mesmos dados de 1 minuto baixados em vez de do corretor torna muito difícil para mim fazer sentido do que está acontecendo aqui (as negociações no início do ano são muito melhores na corrida de retaguarda com uma conexão com a prática a/c do que quando há uma conexão com o verdadeiro a/c).

Razão: