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

 

humnocode em python hoje e conseguiu isto

trem

teste

Talvez o testador esteja errado, talvez outra coisa, vou voltar a verificar amanhã à noite. Estou fazendo isso para um artigo (quero descrever minha abordagem), talvez a catbust seja melhor para lidar com essa estratégia do que a floresta.

 
Maxim Dmitrievsky:

humnocode em python hoje e conseguiu isto

trem

teste

Talvez o testador esteja errado, talvez outra coisa, vou voltar a verificar amanhã à noite. Eu faço para o artigo (quero descrever minha abordagem), talvez catboost seja melhor para lidar com essa estratégia do que floresta.

Então CatBoost é treinado em um teste, de acordo com suas amostras do sistema de nomenclatura - há algo errado?

 
Aleksey Vyazmikin:

Então o CatBoost é treinado no teste, de acordo com o sistema de nomes das amostras - sem confusão?

Quero dizer novos dados, um pedaço de história diferente. Devia ser assim no comboio, mas o teste é confuso. Talvez o testador esteja a espreitar algures.

Eu recebo 0,6-0,7 erro na minha floresta mais ou menos nos mesmos dados e é o mesmo em trayne, e o teste nem sempre é bom e quase sempre pior que trayne. O erro no impulso é praticamente o mesmo, mas o teste é muito bom, não acontece.

Como estás, fizeste algum progresso com as folhas?
 
Maxim Dmitrievsky:

Quero dizer novos dados, um pedaço de história diferente. Devia ser assim no comboio, mas o teste é confuso. Talvez o testador esteja a espreitar algures.

Eu recebo 0,6-0,7 de erro na minha floresta com mais ou menos os mesmos dados e é o mesmo na trilha, e o teste nem sempre é bom e quase sempre pior que a trilha. O impulso tem aproximadamente o mesmo erro, mas o teste é dolorosamente bom, isso não acontece

Como estás, já ganhaste folhas?

Bem, então eu não sei... sem a amostra é difícil saber o que está errado.

Os meus resultados não me deixam muito feliz. Recolhi uma quantidade decente de folhas, mas depois vem a questão de como melhor fazê-las funcionar umas com as outras. O problema é que muitas vezes se sobrepõem em 20%-50% ou mais, e por isso acontece que dão o mesmo sinal, o que não é muito bom. A ideia é agrupá-los e fazer para cada grupo um limiar de activação - por isso penso na melhor maneira de o fazer.

Até agora, estou a experimentar a filtragem mútua - treinei árvores em R em folhas, mas até agora só em compras.

Primeira captura de tela sem árvore, e segunda com árvore. O período é de Março a Setembro deste ano.

Claro que a curva de equilíbrio não é muito atraente, mas é uma estratégia de tendência, cuja essência é não perder mais do que se ganha durante o período de flat, e o mercado (Si) é flat o ano inteiro com movimentos fortes raros. Posso ver, que adicionando uma árvore melhorou os indicadores relativos, farei o mesmo para venda um pouco mais tarde, se o resultado for positivo, será uma parte do modelo.

A questão da selecção das folhas até ao fim não está resolvida, mesmo a selecção de folhas que mostraram bons resultados em cada um dos 5 anos pode esperar que 20%-40% parem de funcionar, o que é ainda mais triste é a incapacidade de compreender se devem ser desligadas ou não - especialmente por trimestres que fizeram o teste, verificou-se que as folhas não rentáveis no trimestre passado se sobrepõem à perda (muitas) nos trimestres seguintes.

O próprio método de selecção das folhas parece promissor, mas o processo é muito lento.

 
Aleksey Vyazmikin:

Bem, então, não sei - sem uma amostra, é difícil saber o que está errado.

Os meus resultados não me fazem muito feliz. Eu recolhi uma quantidade decente de folhas, mas a próxima questão é como fazê-los trabalhar melhor juntos. O problema é que muitas vezes se sobrepõem em 20%-50% ou mais, e por isso acontece que dão o mesmo sinal, o que não é muito bom. A ideia é agrupá-los e fazer para cada grupo um limiar de activação - por isso penso na melhor maneira de o fazer.

Até agora, estou a experimentar a filtragem mútua - treinei árvores em R em folhas, mas até agora só em compras.

Primeira captura de tela sem árvore, e segunda com árvore. O período é de Março a Setembro deste ano.

Claro que a curva de equilíbrio não é muito atraente, mas é uma estratégia de tendência, cuja essência é não perder mais do que se ganha durante o período de flat, e o mercado (Si) é flat o ano inteiro com movimentos fortes raros. Posso ver, que adicionando uma árvore melhorou os indicadores relativos, farei o mesmo para venda mais tarde, se o resultado for positivo, será uma parte do modelo.

A questão da selecção das folhas até ao fim não está resolvida, mesmo a selecção das folhas que mostraram bons resultados em cada um dos 5 anos pode esperar que 20%-40% parem de funcionar, o que é ainda mais triste é a incapacidade de compreender se devem ser desligadas ou não - especificamente por trimestres fez o teste, verificou-se que as folhas não rentáveis no último trimestre se sobrepõem à perda (muitas) nos trimestres seguintes.

O próprio método de selecção das folhas parece promissor, mas o processo é extremamente lento.

Eu não recebo um muzen por isso, é pena.

Há muito poucos negócios, não é representativo. E precisamos de filtrar os que dão prejuízo, porque todos eles são desnecessários.
 
Maxim Dmitrievsky:

Sim, não se pode ganhar um dólar rápido com isso, é uma pena.

Há muito poucos negócios, não é representativo. E você deve filtrar os não rentáveis, são todos iguais, você não precisa deles.

Sim, o problema é que para cada sinal de folha atribuído 1 lote, respectivamente, se um lote de folhas ativado, então mais lotes necessários - há 71 lotes, mas muito raramente, e se você manter o dinheiro em 71 lotes o tempo todo, então o total receberia 25% por ano - GO na troca é grande, e é Si.

Sobre a remoção não lucrativa - esta é uma espada de dois gumes - por um lado é possível aumentar o número de filtros, o que irá reduzir o número de negócios perdidos, mas ao mesmo tempo reduzir o número de rentáveis, como escrevi acima, muitas folhas tornam-se rentáveis durante o ano, por isso é uma questão de tempo, uma questão de condições de mercado. O problema com esta abordagem é que ela é muito trabalhosa e não há possibilidade de acrescentar prontamente novos preditores, idéias para as quais tenho e para as quais apareço regularmente - agora estou trabalhando de fato com uma amostra a partir de fevereiro deste ano.

Outra forma de melhorar os indicadores, é trabalhar a tomada de lucro - no momento o fechamento é feito principalmente por parada e uma condição - em raras ocasiões.

Apesar de todos os inconvenientes, o sistema não perde dinheiro há quase um ano, o que pode indicar a direção certa.

 
Aleksey Vyazmikin:

Sim, o problema é que para cada sinal de folha atribuído 1 lote, respectivamente, se um lote de folhas ativado, então mais lotes necessários - há 71 lotes, mas muito raramente, e se você manter o dinheiro em 71 lotes o tempo todo, então o total receberia 25% por ano - GO na troca é grande, e é Si.

Sobre a remoção não lucrativa - esta é uma espada de dois gumes - por um lado é possível aumentar o número de filtros, o que irá reduzir o número de negócios perdidos, mas ao mesmo tempo reduzir o número de rentáveis, como escrevi acima, muitas folhas tornam-se rentáveis durante o ano, por isso é uma questão de tempo, uma questão de condições de mercado. O problema com esta abordagem é que ela é muito trabalhosa e não há possibilidade de acrescentar prontamente novos preditores, idéias para as quais tenho e para as quais apareço regularmente - agora estou trabalhando de fato com uma amostra a partir de fevereiro deste ano.

Outra forma de melhorar os indicadores, é trabalhar a tomada de lucro - no momento o fechamento é feito principalmente por parada e uma condição - em raras ocasiões.

Apesar de todas as deficiências, o sistema não perde dinheiro há quase um ano, o que pode ser um sinal da direção certa.

É possível treinar um modelo 2. em cima do primeiro, com as mesmas características. Mas apenas irá corrigir entradas de Equidade, ou seja, irá proibir/permitir negociações. Pelo menos não haverá negócios desnecessários.

 
Maxim Dmitrievsky:

é possível treinar um modelo 2. em cima do primeiro, com as mesmas características. Mas apenas irá simplesmente corrigir entradas de Equidade, ou seja, irá proibir/permitir negociações. Pelo menos não haverá negócios desnecessários.

Ou algo como um portfólio de listas de sistemas com recálculo deslizante.

 
Maxim Dmitrievsky:

é possível treinar um modelo 2. em cima do primeiro, com as mesmas características. Mas só corrigirá entradas de equidade, ou seja, proibirá/ permitirá negociações. Pelo menos não haverá negócios desnecessários.

Eu não entendo bem como você sugere mudar o alvo - agora eu já tenho 3 alvos - comprar/vender/não negociar. E, eu seleciono folhas para comprar / vender, e depois para cada uma dessas folhas procurando um filtro de folhas "não trocar", até 3 peças (para alguns é suficiente para alguns não é suficiente - conduziu os testes). Após os resultados destes pares - folha de ativação + folha de filtro, construí uma árvore baseada no sinal final, que levou em conta as respostas de todas as folhas e sua exclusão mútua, ou seja, obtive um filtro adicional.

Aqui está uma árvore

Quero experimentar modelo em CB em vez de árvore, talvez haja uma melhor generalização de todas as folhas usadas, embora a precisão seja aumentada em 1%, o que não é muito, mas o resultado é positivo.

 
Aleksey Vyazmikin:

Eu não entendo bem como você sugere mudar o alvo - neste momento eu basicamente tenho 3 alvos - comprar/vender/não negociar. E, seleciono comprar/vender folhas, e depois a cada uma delas procuro um filtro de folhas "não trocar", até 3 peças (para algumas isto é suficiente para algumas, para outras não é suficiente - testes realizados). Após os resultados destes pares - folha de ativação + folha de filtro, construí uma árvore baseada no sinal final, que levou em conta as respostas de todas as folhas e sua exclusão mútua, ou seja, obtive um filtro adicional.

Aqui está uma árvore

Eu quero tentar modelo em CB em vez de árvore, talvez haja uma generalização de todas as folhas usadas será melhor.

Bem, devias começar com a teoria. Por exemplo, para que serve seleccionar os modelos separadamente para venda e para compra?

Tudo o que não é para comprar é para vender, e vice versa. É por isso que precisamos de um classificador binário comum. Além disso, se o fazemos dessa forma, porque precisamos de uma classe separada "não trocar", quando você pode simplesmente filtrar as entradas através de um limite superior. A classe "não negociar" pode receber um peso excessivo do modelo, devido ao qual o erro do modelo irá diminuir e a capacidade de previsão (generalização), em geral, irá cair.

O ponto do segundo modelo é que o 1º modelo terá erros do 1º e 2º tipo - falso positivo e falso negativo. Estamos interessados em removê-los. Para fazê-lo você alimenta as mesmas características à entrada do segundo modelo e à saída do primeiro modelo, onde 0 - comércio era rentável, 1 - comércio estava perdendo. Treinar o segundo classificador e negociar somente quando ele mostrar 0, ou seja, filtrar sinais do 1º modelo. Os negócios de perdas quase desaparecerão na bandeja, você tem que testá-lo no teste - esse é um deles.

Você pode treinar o segundo modelo não só em uma bandeja, mas também capturar OOS, então ele corrigirá as negociações em novos dados - isso são dois. E depois os testes.

É possível dividir a amostra em faltas, e ensinar os modelos na ordem do tabuleiro de xadrez, através de certos pedaços. Por exemplo, 5 faltas. O primeiro modelo é treinado de uma só vez em 1,3,4 faltas. O segundo modelo correctivo no 2,5. Isto melhoraria ainda mais a generalização.