Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 105

 
Dr. Trader:

Prevejo apenas 2 classes - "comprar" e "vender", o que significa que terei sempre algum comércio aberto. Eu trabalho com um modelo, não vejo a utilidade de fazer dois modelos que simplesmente dão resultados opostos.

Mas eu gostaria de passar gradualmente para 3 classes - "comprar"/"fechar tudo e não trocar"/"vender". Isto daria a oportunidade de negociar com uma estratégia mais complexa. Eu tentei algumas vezes, mas tive problemas com modelos de treinamento para três aulas, especialmente se o modelo for regressivo, seguido de arredondamento do resultado para as aulas.
Acho que vale a pena tentar criar dois modelos com as classes 1/0/-1 originais transformadas em 1/0/0 para o primeiro modelo(comprar apenas), e 0/0/1 para o segundo modelo (vender apenas). Isso levaria a classes desequilibradas em cada modelo (o número de exemplos com uma classe é muito maior que o outro), mas encontrei boas métricas para avaliar modelos que funcionam em tais condições - F-score e kappa. Ainda não fiz nada nesse sentido, mas tal plano parece ser possível o suficiente.

Os problemas nos métodos deste ramo não são apenas a não-estacionariedade das séries temporais (escalas diferentes dos mesmos padrões por preço e tempo), mas também a variabilidade dos padrões. Ou seja, os padrões que ontem prediziam um crescimento, hoje podem significar um flat subsequente ou mesmo uma queda.

O ensino separado para compra e venda resolve parcialmente estes problemas. Escrevi há algumas páginas como, tenho duas grades, uma aprendendo sobre sinais de compra (1;0) - comprar ou não fazer nada, e outra sobre venda (-1;0) - vender ou não fazer nada. Na saída destas duas redes, há um interruptor que reúne os sinais num padrão (-1;0;1). O trabalho deste comité de grelhas revela-se muito interessante: no início bons sinais no feedback, gradualmente o número de sinais diminui, ou seja, mais frequentemente a resposta é 0 no output (os padrões deixam de ser reconhecidos e isto é melhor do que falsos sinais de troca), e após algum tempo começam a aparecer falsos sinais de troca (os padrões mudaram). Portanto, já na fase em que o número de sinais diminui abaixo de um determinado limiar, pode e deve ser considerado como o início da necessidade de novos treinamentos sobre novos dados.

Mas na verdade não existe tal "treino" e "prática". Todos os tipos de validações cruzadas e testes OOS não dão e não podem dar o efeito esperado deles. A questão é que tais truques não são mais do que procurar e depois escolher aqueles valores que funcionam aproximadamente satisfatoriamente tanto na área de treinamento quanto na área de testes, ou seja, este conjunto de parâmetros já existe inicialmente entre todas as suas variantes possíveis e equivale a escolher toda a área de história de uma só vez.

No entanto, a utilização de dois modelos (no meu caso, duas grelhas) é, na minha opinião, o melhor que pode ser aplicado entre os métodos de "aprendizagem automática" actualmente disponíveis. Não é treinamento ou coaching, é uma forma de otimizar o modelo.

Não há treinamento real disponível hoje. Reconhecer os mesmos padrões ou padrões semelhantes não é resultado de aprendizagem, é o resultado de lembrar. O treinamento deve envolver algum tipo de processo de pensamento (por mais primitivo que seja), que permita raciocinar e tirar conclusões ao receber novas informações, assim como a capacidade de gerar novas informações de forma independente. O mercado requer exatamente essa abordagem - pensamento, que até onde eu sei não existe hoje. E o que nós usamos hoje é memorização, não pensar, infelizmente.

 
Andrey Dik:

Mas, na verdade, não existe tal coisa como "treino" e "coaching". Todos os tipos de validação cruzada e verificações OOS não produzem e não podem produzir o efeito esperado deles. A questão é que tais truques não são mais do que procurar e depois selecionar aqueles valores que funcionam aproximadamente satisfatoriamente tanto na área de treinamento quanto na área de testes, ou seja, este conjunto de parâmetros já existe inicialmente entre todas as suas variantes possíveis e equivale a selecionar toda a área de história de uma só vez.

Há modelos que passam na validação cruzada, mas falham no teste de novos dados. E há modelos que podem passar a validação cruzada e depois, de alguma forma, trocar algo em lucro. Mas se um modelo falhar a validação cruzada, então não vale a pena tentar negociar com ele sobre novos dados.
Na minha opinião é um primeiro passo muito bom para selecionar os preditores e os parâmetros do modelo. A seguir - teste roll forward para descobrir se o modelo (ou uma heurística para ajuste de parâmetros do modelo e preditores) pode funcionar com novos dados. Se não pode - precisamos de mudar alguma coisa.

Você tem dois neurônios - você não conseguiu os parâmetros deles do zero, conseguiu? Camadas, velocidade de aprendizagem, inibição, controle de peso e dezenas de outros parâmetros que os neurônios têm. Você deve ter feito algum tipo de teste de roll-forward para determinar os parâmetros apropriados, o que também é inerentemente uma validação cruzada. Eu não acredito que você pode simplesmente pegar dois neurônios com parâmetros padrão e começar a negociar no lucro.

 
Dr. Trader:

Eu não acredito que você pode simplesmente pegar dois neurônios com parâmetros padrão e começar a negociar ao mesmo tempo em lucro.

Porque não?
 
Dr. Trader:

1. Há modelos que passam na validação cruzada, mas falham no teste de novos dados.

2. e há modelos que podem passar a validação cruzada, e depois, de alguma forma, trocar algo no plus.

Mas se o modelo falhar a validação cruzada, não vale a pena tentar negociar com ele sobre os novos dados.

4. Na minha opinião, este é um primeiro passo muito bom para selecionar os preditores e os parâmetros do modelo.

5. A seguir - teste de avanço para descobrir se o modelo pode ser comercializado com os novos dados. Se não pode - precisamos de mudar alguma coisa.

6. Tens dois neurónios - não conseguiste os parâmetros deles a partir do chão, pois não? Camadas, velocidade de aprendizagem, inibição, controle de peso e dezenas de outros parâmetros que os neurônios têm. Você deve ter feito algum tipo de teste de roll-forward para determinar os parâmetros apropriados, o que também é inerentemente uma validação cruzada. Eu não acredito que você possa simplesmente pegar dois neurônios com parâmetros padrão e começar a negociar em lucro imediatamente.

1. Sim. Isso não significa que o modelo seja mau. Isso pode significar que o modelo tem "memória insuficiente" para a quantidade de dados fornecida ou pode significar que o conjunto de parâmetros apropriados para toda a parcela, juntamente com as parcelas de treinamento e validação, não foi encontrado. O problema é que não há maneira de determinar exatamente qual é o problema com a falha no teste dos novos dados.

2. Sim. Significa "memória suficiente". Você pode obter o mesmo no ponto 1 apenas reduzindo a quantidade de dados de treinamento. O fato de termos obtido algo positivo nos dados desconhecidos pode ser considerado uma pura "sorte", pois encontramos padrões, que são os mesmos ou muito semelhantes ao que o sistema sabe e ao mesmo tempo tivemos as reações exatas do mercado que aconteceram antes dos padrões correspondentes. O problema é que os padrões estão mudando constantemente, e às vezes de forma abrupta, e não há garantias para o futuro.

3. Sim. Mas não é muito pior se tivesse passado, pelas razões acima expostas.

4. Sim, uma das boas. Mas não para dar confiança na robustez do modelo no futuro, mas apenas para que as validações sejam aprovadas e nada mais.

5. O Walk-forward é a única forma de validar o sistema. O único. Na minha opinião, se conseguirmos criar um sistema que seja pelo menos 55-60% eficiente (ou seja, uma redução de 30% ou mais na eficiência em comparação com as parcelas de "aprendizagem"), então podemos considerar o sucesso alcançado. Mas mesmo isso só significa que um compromisso entre a velocidade de mudança dos padrões de mercado e a capacidade do sistema de lembrar a quantidade necessária de informação, mas não significa que o sistema seja "burro" em 30%, mas significa que o sistema não aprende 30% dos padrões novos ou mudados dos padrões antigos.

6. A abordagem dos dois neurônios que mencionei não significa "aprender" como tal. É apenas a mesma "memorização", apenas aplicada de forma inteligente. Estou esquecendo padrões antigos e não reconhecendo novos, como você, mas não estou negociando em padrões desconhecidos, minha negociação vai a zero no tempo, e então os falsos sinais aparecem. Eu faço (fiz antes) testes valk-forward onde o novo aprendizado ocorreu quando o número de negócios por unidade de tempo diminuiu abaixo do limite permitido, então eu consegui diferentes durações de seções de teste em valk-forward com as mesmas seções de "aprendizado". Isto resultou numa redução média de eficiência de 30%.

 
Combinador:
Porquê?

A Neuronics, como qualquer outro modelo, irá simplesmente encontrar alguns padrões nos dados disponíveis. Se esses padrões correspondem a alguns processos internos no Forex, ou simplesmente são captados pela neurônica de acordo com o princípio "multiplique algo com algo, se apenas o resultado coincidir" - ninguém sabe, não há garantias. Para que possa detectar os processos internos do forex, sua estrutura (camadas, conexões) deve de alguma forma corresponder ao forex, deve ser configurada especificamente para ele, só então começará a produzir consistentemente bons resultados.

Por exemplo, as redes neurais convolucionais para classificação de imagens são muito populares agora. Seu uso parece muito simples (baixe a biblioteca Python, e pronto), mas as pessoas esquecem que muitas universidades participam há décadas do concurso de "reconhecimento de imagens", onde lutam por cada porcentagem vencedora. Coisas da moda como "pintar um quadro como Van Gogh" ou substituir um rosto em um quadro são o resultado de décadas de trabalho das universidades, com todos os seus estudantes de graduação e pós-graduação (e professores provavelmente), que passam muito tempo ajustando os parâmetros do modelo, ou desenvolvendo novos modelos.
Para forex isto também é possível, mas você precisa gastar o mesmo esforço. Neste caso, os ganhos são lucros reais, por isso as configurações do modelo não se gabam e não são publicadas para acesso público, cada novo concorrente tem que começar tudo de novo.

 
Dr. Trader:

Eu não acredito que você pode simplesmente pegar dois neurônios com parâmetros padrão e começar a negociar ao mesmo tempo em lucro.

Claro, eu também não acredito nisso. Porque isso significaria criar uma máquina pensante que só precisa ser treinada uma vez em sua vida. A humanidade ainda está muito longe de pensar em máquinas.
 
Andrey Dik:

A aprendizagem separada na compra e venda resolve parcialmente estes problemas. Escrevi há algumas páginas como, tenho duas grades, uma aprendendo sobre sinais de compra (1;0) - comprar ou não fazer nada, e outra sobre venda (-1;0) - vender ou não fazer nada.

O meu classificador ternário também tem duas malhas, mas com diferentes camadas ocultas e ambas classificam a próxima previsão de direção de preço, ou seja, 1 ou -1. Há um interruptor na saída, que no caso de uma das grelhas sair 1 e a outra -1 (se contradizem), então o interruptor sai 0 - não fazer nada.

Tudo é claro com a compra e venda para os valores das variáveis dependentes, pois eles podem ser determinados pelo fato - a direção do movimento do preço seguindo o padrão. Mas aqui surge uma pergunta complicada: em que condição os seus classificadores binários marcam a variável dependente em 0 - não fazem nada?

Não existe tal condição como os factos na natureza, IMHO.

 
Andrey Dik:

5. ...

6. ...

Com estas explicações, parece que é verdade. E quão raros são os padrões que se negoceiam? Digamos, se tivermos exemplos de treinamento com as classes"posição de compraaberta " e "fechar todas as negociações", qual será a relação percentual dessas classes? Posso assumir que a classe de compra corresponde ao forte movimento de preços em centenas de pontos para cima, ou seja, a quantidade de classe de compra é cerca de 10% de todos os exemplos de treino?
 
Andrey Dik:

1. Sim. Isto não significa que o modelo seja mau. Pode significar "memória insuficiente" do modelo para a quantidade de dados fornecidos,

2. porque ocorreram os padrões que são os mesmos ou muito semelhantes ao que o sistema conhece e ao mesmo tempo exatamente as mesmas reações de mercado aconteceram antes dos padrões correspondentes. O problema é que os padrões estão constantemente a mudar gradualmente e, por vezes, de repente, de forma abrupta e não há garantias para o futuro.

1) Existe uma rede que pode pré-aprender se receber dados não conhecidos previamente. Você pode estar interessado em ler sobre ela, a rede é chamada SOINNhttps://www.google.com.ua/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=soinn

2) Estou cansado de escrever sobre isso, além disso, praticamente provei que o mercado vai contra as minhas próprias estatísticas e até expliquei a mecânica, porque acontece, e toda a forma clássica de aprendizagem não pode ser aplicada a ele, mas ninguém está interessado, todos fazem o mesmo.

Google
Google
  • www.google.com.ua
Голосовой поиск – это очень удобно! Чтобы найти нужную информацию, скажите "О'кей, Google" и произнесите запрос.
 
Yury Reshetov:

Meu classificador ternário também tem duas malhas, mas com diferentes camadas ocultas e ambas classificam o fato da próxima direção do preço, ou seja, 1 ou -1. Há um interruptor na saída, que no caso de uma das malhas dar 1 e a outra -1, o interruptor dá 0 - nada a fazer.

Tudo é claro com a compra e venda, pois podem ser identificados pelo fato - a direção do movimento de preços seguindo o padrão. Mas aqui nos deparamos com uma pergunta complicada, em que condição os seus classificadores binários marcam a variável dependente como 0 - não fazer nada?

Na verdade, não existe tal condição como os factos na natureza, IMHO.

VENDER COMPRAR Interpretação

-1 0 vender

0 0 cerca

0 1 compra

-1 1 vedação

Aqui está a mesa de interruptores. Você pode ver a partir dele que os sinais ocorrem quando os sinais da grade estão lá e não se contradizem. Após o treino, os padrões são reconhecidos e ocorre uma troca bem sucedida, com o tempo as leituras começam a contradizer-se (fora 0 - cerca) ou ambas as grelhas deixam de reconhecer os padrões (fora 0 - cerca). Assim, com o tempo, há uma diminuição no número de negócios, ou seja, o princípio "não tenha certeza - não negocie".

Mas a sua pergunta parece ser outra: como conseguir que a grelha relevante compre/venda em vez de se sentar na cerca? - A resposta é simples, um sistema de pontos. São atribuídos pontos por respostas corretas e penalidades por erros e cercas. Precisamos escolher a proporção de pontos, é também uma grande tarefa, pois precisamos conseguir um trabalho coordenado das duas grades no final, mas o resultado vale a pena o trabalho.

Imho, os padrões são diferentes para comprar e vender. Essa é a ideia, como pode ser no seu caso.