Faixa de otimização

 

Olá a todos!

Gostaria de fazer uma pergunta sobre a faixa de dados utilizada para otimizar os EAs. Isto é, em quais prazos que variam a escolha. Por exemplo, para H1, basta otimizar uma EA em um mês, três meses ou um ano de dados? Gostaria de ver estes valores para diferentes prazos e pelo menos uma breve comprovação da escolha. Muito obrigado.

 
Esta é uma questão que vem à tona com bastante freqüência. A otimização é inerentemente controversa - ela tem seus oponentes, bem como seus apoiadores. É uma questão puramente individual e depende em grande parte tanto das peculiaridades do sistema comercial quanto do comportamento do mercado. Além disso, depende da natureza dos parâmetros otimizados.
 
ITeXPert >> :


Gostaria de fazer uma pergunta sobre a faixa de dados utilizada para otimizar os EAs. Isto é, em quais prazos que variam a escolha. Por exemplo, para H1, é suficiente otimizar o Expert Advisor em dados mensais, trienais e anuais? Gostaria de ver estes valores para diferentes prazos e pelo menos uma breve comprovação da escolha.

Grande livro sobre testes e otimização
 

Não há critérios claros; todos têm uma opinião. Vou tentar dar minha opinião.

A otimização ao longo de todo o período da história é pura auto-engano. É por isso que o intervalo de otimização deve ser pelo menos a metade do período de testes. Entretanto, quanto menor for a parte do período de testes utilizada para otimização, melhor. Após selecionar parâmetros no intervalo de otimização, execute o teste no intervalo completo que você selecionou como o período de teste. Você pode começar a "acreditar" nos resultados obtidos, se a amostra chegar a pelo menos 100 negócios. Mas mesmo isso não é suficiente para muitas pessoas. É claro que uma quantidade maior de acordos dá uma idéia mais precisa sobre o sistema. Por exemplo, eu posso "acreditar" em uma amostra de pelo menos 200 negócios. 1000 ofícios é ótimo, mas não há limite para a perfeição...

 

Esta questão é muito bem tratada por Jezev e Shumsky. Eis o que pode ser dito resumindo o que eles fizeram:

A tarefa da teoria da aprendizagem não é minimizar o erro de aprendizagem, mas minimizar o erro de generalização definido para todos os possíveis exemplos futuros. É assim que um TS otimizado terá o máximo poder de previsão. E a dificuldade aqui é que é e somente o erro de aprendizagem que é realmente observável. O erro de generalização só pode ser estimado, com base em algumas considerações. O errodas previsões do testador sobre os novos dados é determinado pelo comprimento total da descrição do modelo dos dados, juntamente com a descrição do próprio modelo .

Erro de aproximação

Como o número de decisões tomadas pelo TC, como regra, é muito menor do que o número de parâmetros ajustados nele, neste caso o erro médio de aproximação será expresso através do número total de parâmetros de ajuste w da seguinte forma Eapprox= d/w, onde d é o número de parâmetros de entrada que o TS analisa. Na grande maioria dos casos d=w é cumprido (todos os parâmetros de ajuste são concentrados na entrada TC).

O principal problema dos algoritmos de aprendizagem, é conhecido como o problema do excesso de aprendizagem ou adaptação à história.A essência deste problema é melhor explicada por um exemplo concreto. Suponha que os exemplos de treinamento sejam gerados por uma função que queremos reproduzir. Na teoria da aprendizagem, esta função é chamada de professor. Dado um número finito de exemplos de treinamento, é sempre possível construir o teste com zero erro de aprendizagem, ou seja, com o erro definido no conjunto de exemplos de treinamento. Para isso, é preciso tomar um TS com o número de parâmetros de ajuste maior do que o número de exemplos. De fato, para reproduzir cada exemplo temosequaçõesP para W incógnitas.E se o número de desconhecidos for menor do que o número de equações, tal sistema é subdeterminado e admite infinitas soluções. Este é o principal problema: não temos informações suficientes para escolher a única solução correta - a função de professor. Como resultado, a função escolhida aleatoriamente produz previsões ruins sobre novos exemplos que não estavam presentes na amostra de treinamento, embora o Testador tenha reproduzido este último na história sem erros. Em vez de generalizar os exemplos conhecidos, ele os memorizou. Este efeito é chamado de overlearning.

Erro relacionado com a complexidade do modelo.

A descrição de um modelo se resume basicamente a passar os valores de seus parâmetros sub-ajustados. Para uma dada precisão, tal descrição exigirá sobre os bitsW .Conseqüentemente, o erro específico por exemplo relacionado à complexidade do modelo pode ser estimado da seguinte forma: Ecomplex=W/P. Como vemos, ele diminui monotonicamente com um número crescente de exemplos (duração da história em treinamento).

De fato, a fim de determinar sem ambigüidade parâmetros de ajuste por P dados exemplos, é necessário que o sistema de P de equações deveser superdeterminado, ou seja, o número de parâmetros W deve ser maior do que o número de equações. Quanto maior o grau de superdeterminação, menos o resultado do aprendizado depende da escolha particular de um subconjunto de exemplos de treinamento. O componente de erro de generalização definido acima está precisamente relacionado às variações da solução devido à finitude do número de exemplos.

Assim, estimamos ambos os componentes do erro de generalização do testador de estratégia: E=Eapprox+ Ecomplex=d/W+W/P>SQRT(d/P).É importante ressaltar que estes componentes dependem diferentemente do número de parâmetros de ajuste W, o que implica que o tamanho ideal que minimiza o erro geral pode ser escolhido. O erro mínimo (sinal de igualdade) é alcançado no comprimento ideal dos dados históricos que participam da otimização da estratégia: P=k*W^2/d=k*W, onde k-constant é aproximadamente igual a 4.

Assim, o erro mínimo de previsão de um Expert Advisor no teste prospectivo otimizado no testador de estratégia sobre dados históricos será alcançado se o comprimento dos dados históricos for quatro vezes maior que o número de parâmetros de ajuste no testador de estratégia.

Se otimizarmos 5 parâmetros no testador (por exemplo, períodos Mach), então a duração ideal do histórico deve ser tal que o testador usaria 4*5=20 transações sobre ele. Pode levar de 1 a ...200 dias de história, tudo depende da estratégia adotada. A redução deste número levará à adequação do testador à história e ao aumento - à deterioração da qualidade de aproximação e, conseqüentemente, ao agravamento da precisão da previsão.

 
Seja simples, vou revelar um pequeno segredo a partir de que considerações escolher o comprimento da otimização do site, qual é a otimização ?????? sim, é aparar, e nada mais, então eu faço o aparo da seguinte forma, tomo o último gráfico anual sobre H1 (se este for o principal cronograma para o TS), então, eles identificaram 2 seções grossas, uma delas Baía, outra - Célula, e em cada uma destas seções fazem um ajuste merdoso de fuligem. para baiys e vendas - recebo 2 conjuntos de valores de ajuste, e no futuro incluo apenas um conjunto que foi filtrado por alguma ferramenta em um prazo maior, neste exemplo filtro D1, modestamente-150% por ano, mas o suficiente para a ração de pão! :-о)

 
будьте проще, открою маленький секрет

Há muitas maneiras de conhecer este Mundo.

Alguns o conhecem através do Amor. Alguns através da meditação, etc. Dei uma forma de estimar o valor do interesse através da lógica e da matemática. Portanto, seu segredo não é segredo algum, é apenas mais uma faceta...

P.S. O que eu falei acima é apenas um ato de otimização dos parâmetros. Para avaliar o desempenho de uma EA otimizada, um ponto não é suficiente, você precisa coletar estatísticas, enquanto o resultado estatisticamente significativo começa com uma centena de corridas sobre dados independentes com otimização excessiva em cada passagem ...

Portanto, a receita para uma otimização adequada no testador não será simples.

 

Muito obrigado a todos vocês, especialmente ao Neutron pela descrição detalhada. Recentemente encontrei uma idéia muito interessante no fórum e estou trabalhando para implementá-la em meu código. Ao mesmo tempo, testei-o em demonstração e obtive um resultado bastante bom, cerca de 150% após 3 dias, mas tenho algumas nuances... A fim de não criar um novo tópico, vou perguntar aqui:

Ao definir um ponto de entrada é necessário descobrir se uma ordem já está aberta na mesma direção a uma distância de n pips. O seguinte código não funciona, mas não consigo entender por quê:

bool buy=true;

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderOpenPrice()<=Bid && Bid-OrderOpenPrice()<50*Point) buy=false;
}
se (comprar) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,0, "MyAdvisor",0,0,Blue);

Como resultado, quando eu executo um EA com 10 possíveis lotes abertos, ele os abre todos de um ponto. Eu quero que ele abra um pedido e só abra o próximo se a diferença entre o preço atual e o preço do pedido aberto atual for superior a 50 pips

 

ao Neutron

esses dois tipos de erros se aplicam a qualquer TC ou apenas às redes neurais?

 
budimir Você seleciona as seções de tendência para definir os parâmetros? Você descarta a mudança de direção e as seções de tendência lateral?
 
khorosh >> :
budimir Você escolhe para a definição dos parâmetros as áreas de tendência? Você escolhe as linhas de tendência e as linhas de tendência laterais?

Eu seleciono as seções de tendência mais animadas, e a seção de encaixe resulta em apenas 20-30 negócios, enquanto a amostra na seção de encaixe deve ser de pelo menos 100-1000 negócios para

confiabilidade materna - tudo isso é um absurdo, bem, digamos que você pegou uma trama adequada, diretamente adjacente ao futuro, identificou a fase do mercado - uma tendência ou é uma tendência lateral ou uma mudança de direção, e então... nada! O mercado NÃO é estacionário, e não sabemos para onde irá no futuro!


à ITeXPert > não seja ridículo cerca de 150% em 3 dias.

e no meu TS você pode conseguir mais de uma dúzia de lotes desses em 3 dias com 150% ! :о)