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

 
Aleksey Mavrin:

Que argumentos, se você faz isso, significa que ou você não entende algo ou eu entendo.

O ponto da minha surpresa é que um modelo treinado, como estamos falando aqui, deve ser treinado sobre os dados brutos.

Se existirem correlatos nos dados de entrada, estes devem ser reduzidos a não correlatos.

Aqui está um exemplo - nós ensinamos o modelo a classificar a tonalidade da cor por 3 dígitos - RGB. Três dígitos, esses são os dados puros em bruto!!! Na sua abordagem você precisa fazer preditores como:

1- R 2-G 3-B - 4 Mais vermelho 5 - Mais verde 6- Mais vermelho do que verde e azul juntos .... 100500 Não tão vermelho como seria se o verde fosse tão vermelho como o azul. ))

O modelo não tem de aprender sozinho, tem os dados em bruto e é para isso que serve!


E você faz o contrário - multiplique os dados brutos, que estão correlacionados uns com os outros.

Talvez eu esteja errado, mas parece-me que você só pode obter um padrão claro dividindo os sinais em partes elementares (como as regras de exploração madeireira). Voltemos ao mesmo exemplo com as velas.

Temos 45 possibilidades que se o padrão puro e único for

open[-1]<low

e é isso!, não há mais nada nessas 45 escolhas. Eu fiz a força bruta, escolhi uma regra (uma correção) e a uso.

Você sugere levar a "série original" porque "a rede vai encontrá-la", como eu entendo no seu caso, seria :

open[1:2] ; high[1:2] ; low[1:2] ; close[1:2]

Então, em resumo,

Eu tenho uma coisa, um padrãolimpo sob a forma de uma regra, um valor, sem barulho.

Você tem 4 linhas (OHLC) com dois valores para um total de 8 valores, + ruído

Pergunta: Quem tem uma amostra mais redundante e correlacionada?

 
mytarmailS:


Mas você está fazendo o contrário - gerando dados brutos, correlacionados uns com os outros.

Talvez eu esteja errado, mas parece-me que só se pode extrair um padrão puro quebrando os sinais em partes elementares (por exemplo, regras de registo). Voltemos ao mesmo exemplo com as velas.

Temos 45 possibilidades que se o padrãopuro e único for

e é isso!, não há mais nada nessas 45 escolhas. Eu fiz a enumeração, escolhi uma regra (uma correção) e a utilizo.

Você sugere levar a "série original" porque "a rede vai encontrá-la", como eu entendo no seu caso, seria :

Então, em resumo,

Eu tenho uma coisa, um padrãolimpo sob a forma de uma regra, um valor, sem barulho.

Você tem 4 linhas (OHLC) com dois valores para um total de 8 valores, + ruído

Pergunta : quem tem uma amostra mais redundante e correlacionada ?

1. Provavelmente você está errado.

2.3 Isto não acontece porque a série é não-estacionária. Você acabou de encaixar o modelo na série, não está nem mesmo claro o que MO tem a ver com ele se você supostamente "isolou um padrão puro",. Se houvesse uma regularidade tão pura, o MO nem sequer seria inventado, ele é encontrado por outros métodos elementares.

4. Se você, como você diz, escolheu uma característica - você tem um modelo 100% sobre-treinado=sub-treinado, 100% cego, sem ver nada e, portanto, 100% "burro", desculpe pela aspereza)

S.s. Viva o MO para as massas! )))

 
Aleksey Mavrin:

1. Provavelmente estás enganado.

Ok, muito provavelmente você está certo, mas eu acho que você entende que toda essa descrição com uma regra foi apenas um exemplo, para uma expressão mais clara do pensamento, é claro que devemos fazer conjunto de regras... E é interessante o que é melhor, conjunto de 100 regras duras (estatisticamente) ou conjunto de 3000 regras mais fracas (probabilísticas). Penso que se resolvermos o problema de forma simples, ou seja, se treinarmos com dados de entrada, a segunda variante é melhor por causa da mesma não-estacionariedade, mas se quisermos construir um modelo de mercado com propriedades estacionárias devemos provavelmente preferir a primeira variante, embora não necessariamente... De qualquer forma, não vou discutir mais, convenceste-me mais do que não...

 
Aleksey Vyazmikin:

Não estou muito contente com os resultados. Recolhi uma quantidade decente de folhas, mas a próxima questão é como melhor fazê-los trabalhar uns com os outros. O problema é que muitas vezes se sobrepõem em 20%-50% ou mais, e portanto dão o mesmo sinal, o que não é muito bom. A ideia é agrupá-los e definir um limiar de activação para cada grupo, e eu estou a tentar descobrir como fazê-lo melhor.

A questão da selecção das folhas não se resolve até ao final, mesmo a selecção das folhas que mostraram bons resultados em cada um dos 5 anos pode esperar que 20%-40% parem de trabalhar, 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 do último trimestre nos trimestres seguintes sobrescrevem a perda (muitas).

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

Um pouco de necroposição para perguntar - por que não se pode inicialmente construir uma árvore com base na condição de otimização de um portfólio a partir de suas folhas (mais ou menos como na teoria de Markowitz)? Talvez isto já tenha sido discutido em algum lugar, mas eu ainda não o vi.

 
Aleksey Nikolayev:

Um pouco de necroposição para perguntar - por que você não pode inicialmente construir uma árvore baseada na condição de otimização de um portfólio a partir de suas folhas (mais ou menos como na teoria de Markowitz)? Talvez isto já tenha sido discutido em algum lugar, mas eu ainda não o vi.

Eu já escrevi muitas vezes que os algoritmos de construção de modelos MO disponíveis não são adequados para negociação, pela razão de que eles não levam em conta as nuances das séries temporais ruidosas. Isto é evidente, por exemplo, quando se utiliza um valor preditor para divisão, o que dá uma distribuição preferencial agregada da probabilidade de classificação correta sobre toda a amostra, mas esta distribuição só pode ser causada por um evento raro que está agrupado em uma parte da amostra. Examinei a frequência de activação das folhas amostradas e isto tornou-se evidente para mim.

Então sim - é possível construir inicialmente o que você precisa, mas para fazer isso você tem que mudar o algoritmo de aprendizagem (eu não tenho competência suficiente em programação aqui), ou estimar a aleatoriedade com métodos diferentes, que é o que eu faço. Embora eu não entenda o que se entende por"condições ideais de carteira".

Existe uma outra variante - seleccionar as gamas de valores de previsão que melhoram a mudança de probabilidade de classificação do alvo relativamente a toda a amostra e fazer previsões separadas para eles - esta ideia que estou a implementar neste momento, mas ainda não sei qual será o resultado.

A propósito, não me lembro que tenha havido qualquer discussão sobre a divisão de um preditor em gamas para uso posterior na construção de modelos de árvores, enquanto me parece que este tópico tem aspectos importantes a serem discutidos e afecta directamente a construção de modelos e, consequentemente, o resultado final.

 
Aleksey Vyazmikin:

Já escrevi muitas vezes que os algoritmos de modelagem de MO disponíveis não são adequados para negociação

Deve significar que a representação de dados standard para MOs não é adequada para negociação... Não é culpa do RI.

Aleksey Vyazmikin:


A propósito, não me lembro de ter havido qualquer discussão sobre a colocação de uma grelha de previsão para ser usada mais tarde na construção de modelos de árvores.

O que você quer dizer com a grade de partição?

 
Aleksey Vyazmikin:

Embora eu não entenda o que se entende por"condições de otimização de portfólio".

Maximização da rentabilidade da carteira a um nível fixo (aceitável) de risco (volatilidade ou drawdown).

Aparentemente sim, os algoritmos terão de mudar. Muitas correlações entre ações de folhas diferentes terão de ser calculadas e pode tornar-se muito caro em termos de tempo.

Pensei que tal assunto poderia ter sido discutido no fórum antes.

 
Aleksey Vyazmikin:

A propósito, não me lembro de haver qualquer discussão sobre uma grelha de previsão de escopo em modelos de árvores, o que me parece ser um tópico importante para discussão e afecta directamente a construção de modelos e, consequentemente, o resultado final.

A árvore faz exatamente isso, ela toma um intervalo diferente de cada preditor e verifica qual deles é melhor.

Primeiro divide-se ao meio, a melhor metade ao meio novamente, o melhor quarto ao meio novamente, etc. e assim por diante com cada preditor. O nó torna-se a melhor divisão de todas estas peças entre todos os preditores.
Estás a fazer isto manualmente? Algoritmo fá-lo perfeitamente e rapidamente.

Aleksey Vyazmikin:

Mas esta distribuição só pode ser causada por um fenómeno raro que está agrupado numa parte da amostra. Examinei a frequência de activação das folhas amostradas e isso tornou-se óbvio para mim.

É necessário procurar preditores através dos quais este raro fenómeno possa ser detectado. Se houver preditores, então os modelos padrão mais simples encontrarão tudo.

 
mytarmailS:

Você provavelmente quis dizer que os tipos padrão de apresentação de informações para MOs não são adequados para negociação... Não é culpa do MO).

Eu disse o que queria dizer - há muitas nuances que não são levadas em conta na formação com métodos comuns de construção de modelos. O problema pode ser resolvido refinando estes métodos, seleção de resultados de desempenho e treinamento adicional de preditores, talvez haja outras opções, mas até agora não as conheço.


mytarmailS:

O que significa grelha de partição ?

É um algoritmo que verifica o intervalo de valores de previsão e tenta dividir as partes do intervalo para que eles alocar melhor a capacidade de previsão. Suponha que haja uma amostra com 3 alvos, a amostra é distribuída como 1 - 24%, 2 - 50%, 3 - 26%, e há algum preditor com um intervalo de valores, então o objetivo da grade é encontrar áreas de valores de preditor onde, digamos o alvo 1 será "previsto" por mais de 24%, e a divisão irá destacar esta área. Existem diferentes variantes de algoritmos para construir tais grelhas.


Aleksey Nikolayev:

Maximização do retorno da carteira a um nível fixo (aceitável) de risco (volatilidade ou drawdown).

Aparentemente sim, os algoritmos terão de mudar. Muitas correlações entre ações de diferentes folhas terão que ser calculadas e pode se tornar muito cara em termos de tempo.

Ocorreu-me agora que um tópico similar poderia ter sido discutido no fórum antes.

Agora a correlação de ativações é levada em conta, as folhas condicionalmente correlacionadas vão para o mesmo grupo, e é assim que uma carteira é criada. Mas uma carteira tem uma estratégia subjacente, e você tem que fazer muitas delas para a estabilidade. As estratégias simplesmente não devem se sobrepor na ativação no horizonte de tempo se os mesmos preditores forem utilizados. Isto é geralmente uma coisa realista a fazer.


elibrarius:

A árvore faz exatamente isso, ela toma um intervalo diferente de cada preditor e verifica qual deles é melhor.

A primeira divide-se pela metade, a melhor metade pela metade, o melhor quarto pela metade, e assim por diante com cada preditor. O nó torna-se a melhor divisão de todas estas peças entre todos os preditores.
Estás a fazer isto manualmente? O algoritmo fá-lo perfeitamente e rapidamente.

Precisamos de procurar preditores através dos quais este raro fenómeno possa ser detectado. Se houver preditores, então os modelos padrão mais simples de MO vão encontrar tudo.

O que queres dizer com "faz na perfeição"? Não o estou a fazer manualmente, estou a escrever um guião que o fará da forma que vejo agora.

No meu caso, o ideal seria uma avaliação separada de cada variante do valor do preditor. E, eu quero fundir os intervalos de ativação de um preditor amplificando um alvo em um preditor, o que as malhas que eu conheço não fazem dividindo os intervalos sequencialmente, fundindo de forma similar o preditor no ranking para poupar (construindo um nó) com outro preditor. Em teoria, até agora.

A figura abaixo mostra o preditor habitual por tempo - registando literalmente o relógio, filtrei as activações do preditor menos de 10% de desvio de cada alvo de toda a amostra. Acontece que para o alvo Menos são as horas favoráveis 18 e 19 e não as horas favoráveis 15, obterei um novo preditor com valor de amostra 1 - combinando valores de preditor 18 e 19 , -1 - valor 15 e 0 - todos os outros valores no output.

Que tipo de grade de partição agregaria as faixas de partição em uma única divisão, eliminando os valores intermediários, como na figura abaixo dos valores 1 e 4?


 
Aleksey Vyazmikin:

Agora a correlação de ativações é levada em conta, as folhas correlacionadas condicionalmente vão para o mesmo grupo, e é assim que uma carteira é criada. Mas a carteira tem uma estratégia subjacente, e nós precisamos fazer muitas delas para a estabilidade. As estratégias simplesmente não devem se sobrepor na ativação no horizonte de tempo se os mesmos preditores forem utilizados. Geralmente é realista fazer isto.

Se, por exemplo, todas as estratégias apenas COMPRAR, provavelmente se reduzirá a minimizar a sua sobreposição pelo tempo (minimização das correlações que são sempre positivas). Se a COMPRA e a VENDA são permitidas, os cruzamentos de tempo podem ser úteis para compensar mutuamente partes más das estratégias (as correlações negativas são geralmente boas para a carteira).

Provavelmente, a correlação pode ser simplesmente definida através do tempo de execução das estratégias e do tempo da sua intersecção.

Razão: