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

 
Yury Reshetov:
Não digas disparates. No jPrediction utilizamos um algoritmo de redução de dimensionalidade de entrada para evitar a obtenção de um modelo na saída que foi treinado em preditores ruidosos ou sem importância. Ou seja, a escolha é feita a partir de uma variedade de modelos com diferentes combinações de preditores, dos quais resta apenas aquele com a melhor generalização.

situação hipotética....

Temos 100 potenciais preditores, que sejam indicadores de simplicidade.

Suponhamos que inicialmente sabemos que todos estes preditores têm apenas uma situação lucrativa, é quando o RCI ultrapassou os 90 e o estocástico acabou de ficar abaixo de zero (situação natural a partir do teto), Tal situação dá a queda de preço com 90% de probabilidade, todos os outros preditores são ruído total, todas as outras situações em RSI e os preditores estocásticos são também ruído total, e há centenas e centenas de várias situações....

ou seja, temos aproximadamente 0,01% de sinal útil a 99,9% de ruído

Suponha, por algum milagre, que o seu MO rejeita todos os 98 preditores e deixa apenas dois - RSI e estocástico

há centenas de situações de RSI>0, RSI>13, RSI<85, RSI=0, RSI<145, ............ Como você treina MO para reconhecer todos os movimentos de preços, MO irá construir modelos levando em conta todas as situações possíveis que estão disponíveis em RSI e estocásticos, e a probabilidade nessas situações de que eles funcionam é quase zero, mas MO deve levá-los em conta e construir alguns modelos com eles, apesar do fato de que este é o verdadeiro ruído, e que uma situação de trabalho se perderá entre centenas de outras soluções, que é o re-treinamento ....

Como é que finalmente o conseguiste?

 

Confundiste tudo.

Há questões diferentes e independentes. MAS ELES SÃO COMO TIJOLOS PARA UMA CASA: SÓ QUE TODOS JUNTOS DARÃO UM SISTEMA DE TROCA.

1. Preparação de preditores. Esta fase tem um número bastante grande de objectivos e ferramentas correspondentes. Eu deliberadamente inclinei todo o problema desta etapa no sentido de me livrar do ruído, ou seja, procurar tais preditores que tenham uma capacidade de previsão para esta variável alvo em particular. Vou descrever o ideal. Extraído de um artigo sobre genética. Mas usando o meu próprio exemplo.

Vamos pegar a variável alvo "muçulmanos" (para maior clareza). O preditor "roupa", que tem dois valores: "calças" e "saia". Parte do preditor valoriza "vestuário" com o valor "calças" prevê sem ambiguidade a classe "masculino" e a outra parte prevê feminino. Também temos preditores como o RSI para a variável alvo "comprar/vender". Todos nós sabemos que o indicador muitas vezes mente, mas parte dele prevê uma classe, e parte dele prevê outra. Portanto, devemos procurar preditores, alguns dos quais predizem uma classe, e outros predizem outra. E quanto menos for a sobreposição (falsos positivos), maior é a qualidade do prognosticador. O ideal é "calças/saias" quando um preditor pode ser dividido em duas partes sem intersecções. Mas isto só funciona para muçulmanos, e para europeus....

Existem métodos algorítmicos (PCA, por exemplo, mas não clássicos, mas com refinamento), mas você tem que começar com o conteúdo dos preditores. Com base em considerações de conteúdo, deve-se inicialmente descartar anéis de Saturno, borras de café e outras coisas.... O que importa NÃO é a correlação destes preditores. Por exemplo, tomamos alguns derivados do kotir - todos eles são do kotir, mas tomamos interesse aberto, volumes... Então, por alguma razão, por outros pares de moedas, a macroeconomia não está condicionada...

2. Montagem do modelo. Este é um problema à parte, e o primeiro não pode ser resolvido com o modelo utilizado. A confusão aqui é causada pelo facto de muitos algoritmos de modelos terem um algoritmo de selecção de preditores incorporado. Pessoalmente não estou ciente de nenhum algoritmo embutido que resolva o primeiro problema.

A Reshetov afirma ter um algoritmo incorporado deste tipo. Mas ele nunca citou nenhuma prova da falta de reconversão usando o seu algoritmo.

O primeiro passo é obrigatório. Mas isso não exclui, e talvez até sugira o uso de algoritmos de seleção de preditores incorporados. Mas estes algoritmos precisam de ser poupados às "borras de café" no primeiro passo.

3. Classificador binário alternativo. Reshetov, como de costume, confundiu a questão com a sua compreensão do classificador ternário. Ternary é quando a variável alvo tem três valores e, em geral, qualquer número de valores qualitativos (nominais, de categoria). Reshetov tem dois binários dos quais ele recebe um sinal de trabalho, que em forex é MUITO desejável - ter um sinal ternário de compra/venda. Eu uso uma variável binária de destino para classificação, e para negociação a partir dos resultados das duas classificações binárias recebo três sinais - exatamente como o Reshetov.

4. Combinar os resultados de vários modelos em um sinal para negociar é um problema à parte. Há uma solução proposta pela Reshetov. Mas outras soluções foram sugeridas acima neste tópico. Dik sugeriu acima para levar em conta os valores dos quais a classe é derivada. Você pode entrar nesse problema também, especialmente se você se lembrar que os algoritmos de classificação dão o valor de TODAS as classes das quais a classe é derivada. Quando juntamos os resultados de vários modelos em um único resultado, levar em conta essas probabilidades é inevitável. Existem algoritmos que dividem essas probabilidades não pela metade, mas de outra forma, o que reduz o erro de classificação.

5. Avaliação final do modelo. Isto é algo sobre o qual não consegui chegar a um entendimento com o Burnakov. Pegamos no modelo e executamo-lo "fora de amostra", "fora" sendo entendido como fora de intervalo de tempo, onde foram realizados treinos, testes, validação cruzada... Este passo não é construtivo, pois não nos diz o que fazer. Este passo é um veredicto: manter ou descartar. A razão para "descartar" não é muito erro, mas a sua MUDANÇA em comparação com os passos anteriores. Descarte porque o modelo é excessivamente treinado, é desesperançoso e perigoso. Se este passo for superado, então passe para o testador, obtendo o mesmo resultado de "manter - descartar".

 
mytarmailS:

situação hipotética....

...

então o MO irá construir modelos tendo em conta todas as situações possíveis...

Enquanto treina o MO para reconhecer todos os movimentos de preços, o MO ...

...

mas o MO tem de os ter em conta e construir alguns modelos baseados neles, apesar de este ser o verdadeiro ruído, e de uma situação de trabalho se perder entre centenas de outras soluções, é para isso que serve o sobretreinamento....

jPredição não tem que responder por todas as situações possíveis. Funciona muito mais simples do que você inventou.

O princípio da seleção sequencial de preditores (não uma enumeração completa de combinações como você está tentando fazer) está disponível no meu post na pg. 109

Se você tem amnésia, deixe-me lembrá-lo que você já esclareceu a ordem de seleção dos preditores em p. 110

 

SanSanych Fomenko:

Reshetov, como sempre, confundiu a questão com a sua compreensão do classificador ternário.

...

Eu uso uma variável binária de destino para classificar e para negociar a partir dos resultados de duas classificações binárias recebo três sinais - exatamente como o Reshetov.


O Reshetov não é um patife?

Ele confundiu tanto a questão, que agora até Fomenko tem que fazer exatamente como Reshetov.

Shurik Shurikovich, tire uma torta da prateleira. Afinal, você honestamente o mereceu no campo do rabanete crítico e do homem mau - Reshetov.

 
Yury Reshetov:

jPredição não tem que considerar todas as situações possíveis. Funciona muito mais simples do que você inventou.

O princípio da seleção consistente de preditores (e não uma enumeração completa de combinações, como você está tentando fazer) está no meu post na pg. 109

Se você tem amnésia, deixe-me lembrá-lo que você já esclareceu a ordem de seleção dos preditores em p. 110

Estou a falar do porque IO (qualquer) não consegue seleccionar as características correctamente, e tu estás a falar de verde...

 
mytarmailS:

Estou a falar de porque é que o MO (qualquer) não consegue amostrar correctamente as características, e tu estás a falar de verde...

O jPrediction é bom em preditores de abate. Provavelmente não é o método mais ideal, mas está bem para tarefas aplicadas. Muito provavelmente o limite da perfeição ainda não foi atingido e há potencial para mais pesquisas? O mais importante é que há um resultado positivo e você pode começar a dançar a partir dele.

A questão é, não projecte os seus próprios preconceitos em qualquer método de aprendizagem de máquinas (e não apenas no campo do MO).

Se algo não funciona para você e a mesma coisa funciona para os outros, isso não significa que não existam métodos normais. Isso só significa que você não usa esses métodos normais, ou os usa de forma incorreta, devido a alguns preconceitos pessoais.

 
Yury Reshetov:

Este Reshetov não é um patife?

Ele confundiu tanto a questão que agora até Fomenko é obrigado a fazer exatamente como Reshetov fez.

Shurik Shurikovitch, tire uma torta da prateleira. Você honestamente o mereceu em seu campo de crítica a um rabanete e não a um bom homem - Reshetov.

Acalme-se.

NUNCA pensei sequer em insultar-te pessoalmente, porque somos do mesmo sangue.

Mas o seu "na cerca" é de inegável interesse para mim.

O negócio é o seguinte. No exemplo de um binário.

Suponha que a probabilidade de uma classe é 0,49 e a probabilidade da segunda é 0,51. São duas classes ou "on the fence"?

 
Yury Reshetov:

A bicicleta ternária mais burra e pouco promissora, embora a mais primitiva na implementação: esta é uma ANN com três saídas. Se cada um desses outputs tem seu próprio limiar de classificação, então eles não têm três, mas oito estados potencialmente possíveis, dos quais apenas três são inequívocos (um valor acima do limiar em apenas um dos três outputs), e cinco não são claros como interpretar (valores acima do limiar em mais de um dos outputs, ou abaixo do limiar em todos os três outputs).

Para classificar tudo é muito mais simples, é comum pegar a saída com o maior valor. Se os resultados em três outputs forem (0,1;0,3;0,2), então o maior valor = 0,4 e o output número 2 está ativo.
O modelo de negociação pode ter esta lógica:
O valor mais alto na primeira saída -> posição longa,
O valor mais alto na segunda saída -> sair de todas as negociações e não negociar,
O valor mais alto na terceira saída -> posição curta.
É isso, sem limites, sem estados, etc.

Isto não é uma bicicleta, mas um método frequentemente usado na neurônica para classificação quando mais de duas classes são necessárias, de modo que pode haver pelo menos dezenas de classes na classificação de imagens, por exemplo.
Uma saída com um limiar no meio é suficiente para duas classes.
 

Dr. Trader:

O modelo de negociação poderia ter esta lógica:


  • Valor mais alto na primeira saída -> posição longa,
  • Valor mais alto na segunda saída -> sair de todas as negociações e não negociar,
  • O valor mais alto na terceira saída -> posição curta.


É isso, sem limites, sem estados, etc.

Também uma opção. Embora não seja certo que uma abordagem tão trivial dê uma generalizabilidade normal. Às vezes a simplicidade é pior que o roubo. Isto é, é necessário verificar empiricamente - a autópsia vai aparecer.
 
SanSanych Fomenko:

Suponha que a probabilidade de uma classe é 0,49 e a probabilidade da segunda é 0,51. São duas classes ou "on the fence"?

Porque gelado.

Desculpe, mas como a pergunta é, a resposta também é.

Ou seja, não entendo o humor, porque para tomar uma decisão é preciso comparar o valor de saída do classificador com algo, por exemplo, com um valor limite. E como na sua formulação do problema os valores comparáveis por alguma razão são desconhecidos, e só são conhecidos aqueles que não são necessários para a classificação, seria uma boa idéia fazer esclarecimentos.