Bibliotecas: BestInterval - página 13

 
Javier Angel Labandeira Garcia:

Atualizei para a última versão do BestInterval e do Virtual.

Quando compilei com novas linhas no início do código, obtive muitos erros. No final, apenas 3 (veja a imagem).

Muito obrigado por sua ajuda

Coloque essas linhas no início, não no final.

 

Normalmente, esse backtest vai direto para a lixeira durante a otimização (ou em uma única passagem)


No entanto, o BestInterval durante a otimização dessa passagem mostrará uma das melhores. Motivo


[Excluído]  

A desvantagem é que não há métricas para determinar o quanto ele não está se ajustando ao intervalo que está sendo otimizado

Por exemplo, minha biblioteca desenha exatamente a mesma coisa para 1 passagem no testador, mas não descarta os intervalos, mas vira as negociações perdidas e aproxima uma nova sequência.

Acontece que quanto mais negociações houver no TS inicial, mais belas imagens o Bestinterval mostrará, e não importa qual distribuição de negociações havia antes disso.

 
Maxim Dmitrievsky:

A desvantagem é que não há métricas para determinar o quanto ele não se ajusta ao intervalo que está sendo otimizado

Você pode escrever qualquer métrica que quiser para o OnTester. A biblioteca permite isso.

Por exemplo, minha biblioteca desenha exatamente a mesma coisa para 1 passagem no testador, só que ela não descarta os intervalos, mas inverte as negociações perdidas e aproxima uma nova sequência

Acontece que quanto mais negociações houver no TS inicial, mais belas imagens o Bestinterval mostrará, e não importa qual distribuição de negociações havia antes disso.

Declaração ambígua. Eu determino o ajuste de forma simples - pego UM dos melhores resultados do BestInterval e o executo (individualmente) em um intervalo duas vezes maior. Se a extensão do intervalo não alterar o caráter do saldo direto, não se trata de um ajuste. Na segunda figura acima, > 1000 negociações. Se eu dobrar o intervalo, a linha reta permanecerá. Ou seja, não é um ajuste de 100%.

Outra coisa é que "não se ajustar" significa apenas uma coisa - os padrões foram considerados reais. Mas nada garante que eles continuarão. E essa falta de garantia não indica nenhum tipo de ajuste. É apenas uma lei da vida.

[Excluído]  
fxsaber:

Você pode escrever qualquer métrica para o OnTester. A biblioteca permite.

Declaração ambígua. Eu defino o ajuste de forma simples: pego UM dos melhores resultados do BestInterval e o executo (individualmente) em um intervalo duas vezes maior. Se a extensão do intervalo não alterar o caráter do saldo direto, não se trata de um ajuste. Na segunda figura acima, > 1000 negociações. Se eu dobrar o intervalo, a linha reta permanecerá. Ou seja, não está se ajustando 100%.

Outra coisa é que "não se encaixar" significa apenas uma coisa - os padrões foram considerados reais. Mas nada garante que eles continuarão. E essa falta de garantia não indica nenhum tipo de ajuste. É apenas uma lei da vida.

Em geral, você está fazendo aprendizado de máquina puro, mas por algum motivo você ignora esse tópico :)

Sim, se você criar algumas métricas e selecionar modelos com base nessas métricas, apenas a rotina de ajuste excessivo seria reduzida, esse é o meu ponto. O ideal seria que a máquina selecionasse o melhor modelo, o que também teria maior probabilidade de mostrar algo no OOS

 
Maxim Dmitrievsky:

Em geral, você está fazendo aprendizado de máquina puro, mas, por algum motivo, está ignorando esse tópico :)

Não posso aceitar isso.

Sim, se você criar algumas métricas e selecionar modelos com base nelas, apenas a rotina de pesquisa será reduzida, esse é o meu ponto. Idealmente, se o melhor modelo for selecionado automaticamente, o que, com uma probabilidade maior no OOS, também mostrará algo

Bem, se houvesse ordens de magnitude a mais de recursos computacionais, não seria necessário usar o BestInterval. Ou seja, não há nenhum indício de MO aqui. É apenas um filtro que é conveniente e rápido de aplicar, nada mais.


Quanto à probabilidade de OOS, ela é determinada exatamente como eu disse acima. Ou seja, qualquer fator de seleção/otimização é eliminado. Ou tudo é ótimo ou é lixo.


Uma questão muito mais complicada é quando há um TS em funcionamento e é necessário selecionar valores de parâmetros de entrada ideais para o real.

 

Descobri que o GA+BestInterval é um mapeamento repugnante. Ou seja, ocorre a convergência para algum extremo local e, quando verificado, ele se revela um ajuste absoluto.

Mas o Buteforce+BestInterval é um mapeamento excelente, como se vê. Em grande parte, enquanto o GA me fez acreditar que o TC era um lixo, o Bruteforce se mostrou promissor.


Bem, para que o Bruteforce seja rápido, você precisa de um pequeno número de ticks e de uma lógica de TC rápida. É por isso que todos os mecanismos de aceleração fornecem resultados não apenas quantitativos, mas também qualitativos.

[Excluído]  
O próprio GA, em termos de otimização global, é como o leite de um touro. Ele é considerado uma otimização exploratória, que não deve nada em termos de confiabilidade dos resultados.
 
Maxim Dmitrievsky:
O próprio GA é tão bom quanto o leite de um touro. Ele é considerado uma otimização exploratória, que não deve nada em termos de confiabilidade dos resultados.

Não consigo fazer amizade com o GA.

 
Não sei nada sobre codificação ou trabalho com EAs no Meta Editor, mas gosto muito do seu conceito com o BestInterval. Seria muito trabalhoso para você me instruir sobre como adicioná-lo aos EAs que tenho e que gostaria de testar?