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

 
Yuriy Asaulenko:

Pessoal, o tópico é sobre MO, não sobre estilos e paradas de negociação. O que é que isto tem a ver com eles?

Então eu queria discutir isso na NS, mas como acabou não há ninguém com quem discutir isso.

 
Yuriy Asaulenko:

Ainda ontem, surgiu uma conversa sobre a previsão de sinusóides, e eu me lembrei do meu antigo tópico:

(Maxim, ainda te estavas a divertir com este tópico. Sou vingativo e escrevo tudo).

Devo dizer que foi feito em vão, mas o assunto ficou parado e nunca chegou ao fim. Talvez porque a redacção não fosse muito clara.

Na verdade, não precisamos de resolver nenhum problema. Você precisa assumir alguma função, como a do assunto, ou até melhor, um pouco mais complicada. Crie uma ferramenta artificial com esta função e execute-a no testador em uma estratégia já em funcionamento. O ideal seria que o lucro fosse exagerado no TS em funcionamento. Oh, eu esqueci, a função deve ser normalizada de antemão para que corresponda aproximadamente ao símbolo no qual o TS está configurado. Depois podemos acrescentar barulho e ver o que vai acontecer.

Eu não faço previsões e não tenho esse TS pronto, por isso não posso verificá-lo no futuro próximo. Mas, num futuro distante, tenciono fazê-lo.

Agora sobre o porquê de precisarmos de tudo isto.

Suponha que precisamos de ensinar a previsão NS (ou outro MO). Normalmente os pesos iniciais dos NS são inicializados aleatoriamente e se os NS entram em min-maxes ao treinar, é uma questão muito grande.

Vamos fazer o seguinte.

1. Gerar uma função não aleatória próxima à BP do mercado e usá-la para ensinar uma NS inicializada aleatoriamente. Verifica e assim por diante. Agora o nosso NS está próximo do que precisamos em termos de configurações, mas até agora não conseguimos resolver o verdadeiro problema.

2. Realizamos o treinamento da NS (ver ponto 1) usando o PB real. Já temos alguma garantia de que os ajustes NS preliminares estão algures nas proximidades de áreas de min-max e no decurso do pré-treinamento eles vão para onde deveriam, mas não para algum min-max aleatório.

A analogia é com um aluno que primeiro é ensinado a resolver problemas simples sobre um tema, e depois esses problemas ficam mais complicados. Ensinar à la schoolboy é mais eficaz do que tentar fazê-los resolver problemas complexos desde o início.

Em geral, o método não é uma abertura, em algum lugar da literatura em que ocorreu, mas existem muitos livros, e eu sozinho não me lembro. Em todo o caso, pensei na sua implementação. Bem, a primeira experiência com a tentativa de um TS pronto para prever uma função analítica, em geral, é necessária como uma experiência encenada.



se esta não tivesse sido chumbada, há 2 páginas atrás você teria visto um exemplo com um fe

não entendo a idéia de inicialização de pesos e assim por diante. então você precisa de uma grade de pré-aprendizagem, e qual é o objetivo do treinamento em algo que não corresponde em nada ao que precisa ser previsto

Acho que estás a tentar imitar o básico da aprendizagem de reforço

 
Maxim Dmitrievsky:

Se o idiota não tivesse chumbado, há 2 páginas atrás terias visto um exemplo com um olho feio.

Eu não entendo a ideia de inicializar pesos e outras coisas, então você precisa de uma grade de pré-aprendizagem, e qual é o objetivo do treinamento em algo que não corresponde nem mesmo ao que você precisa prever

Acho que estás a tentar representar o básico da aprendizagem de reforço.

Não, você não precisa de uma grelha de pré-aprendizagem.

1. Pré-treinamento em dados próximos e claramente previsíveis. Você pode se preparar a partir de dados reais - splines, polinômios, Fourier ou o que quer que seja.

2. Pós-treinamento da rede de acordo com a p. 1 (com inicialização não aleatória) sobre os dados reais.

Para a previsão posso ver como fazê-lo, e acho que pode melhorar os resultados. Para a classificação, eu não sei o que fazer.

Exemplo com função - isto não se trata disso. Há muitos exemplos desses.

 
Maxim Dmitrievsky:

Alexey não escolheu o pior catbust, um dos melhores para a pesquisa, de longe. É usado no CERN, por exemplo, para analisar resultados de colisão... que lida com a aleatoriedade quântica).

Muito interessante). O CERN XGBoost deparou-se por acidente.

Não surpreendentemente, o CERN reconheceu esta como a melhor abordagem para classificar os sinais do Grande Colisor de Hadrões. Este problema particular colocado pelo CERN exigia uma solução escalável para tratar os dados gerados à taxa de 3 petabytes por ano e distinguir eficazmente um sinal extremamente esparso do ruído de fundo num processo físico complexo. O XGBoost tornou-se a solução mais útil, simples e fiável. (6 DE SETEMBRO DE 2018)

__________________________________

O CatBoost foi introduzido pelo Centro Europeu de Pesquisa Nuclear (CERN) na pesquisa do Grande Colisor de Hadrões (LHCb) para combinar informações de diferentes partes do detector LHCb no conhecimento de partículas mais preciso e agregado possível. Usando CatBoost para combinar os dados, os cientistas conseguiram melhorar o desempenho qualitativo da solução final, onde os resultados de CatBoost foram melhores do que os obtidos com outros métodos[6][7].

_______________________________________

É tudo praticamente a mesma coisa. Qual deles é o Catbust ouXGBoost? ) Quem terá enganado de quem? ))

 
Aleksey Vyazmikin:

O futuro é incerto, os padrões vêm e vão, isso é normal, mas é questionável se eles têm necessariamente de ser de curto prazo. Eu não tenho uma amostra muito grande devido à estratégia de tendência, por isso acho que não é razoável reduzi-la ainda mais.

Contudo, decidi conduzir uma experiência sobre a eficácia do treinamento em diferentes proporções da amostra de treinamento e validação envolvida no treinamento. A etapa será de 10%, ou seja, no início a amostra de treinamento será de 90% e a amostra de teste 10%, e então a amostra de teste será gradualmente aumentada em 10%. Cada amostra conterá 200 modelos - vamos ver o que acontece. Outra questão é como melhor comparar, estas combinações, por critério médio ou absoluto - as ideias são aceites.

Em padrões de curto prazo - de 10-15 minutos a 1 hora no máximo, a probabilidade de qualquer evento significativo que mude alguma coisa é muito pequena, especialmente quando já fizemos um acordo sobre um evento significativo. Dentro de mais de uma hora - o que vai acontecer, pelo menos para mim, é desconhecido. Isto não é em oposição a você, mas em apoio à minha opinião).

Decidi seguir o seu caminho, com as minhas modificações e visão do assunto. Especialmente porque todos os preditores necessários já estão no lugar. Embora tenha decidido tentar no XGBoost, algo me pareceu - ou então não fiquei impressionado com os documentos CatBoost (XGBoost, imho, é mais claro), ou outra coisa qualquer. Eu ainda não entendi o que há com o racionamento. Com a NS, é difícil racionar tudo lá.

 
Yuriy Asaulenko:

Tudo quase exactamente o mesmo. Qual deles é o Catbust ouXGBoost? ) Quem terá enganado de quem? ))

E seria bom entender isso antes de criar modelos baseados neles e libertá-los para o caos do mercado.

Lembro-me que há cerca de meio ano eles tentaram testar o CatBoost aqui, então, ao contrário do XGBoost, ele não podia aprender nem mesmo com a tabela de multiplicação.

Eu não sei, talvez agora eles decidiram que se não pode aprender simples, então eles deveriam tentar em complexo, e talvez seja muito legal.

E para determinar isso você provavelmente poderia usar os BPs sintéticos sugeridos acima.

 
Ivan Negreshniy:

E seria bom entender isso antes de criar modelos baseados neles e libertá-los para o caos do mercado.

Lembro-me que há cerca de meio ano eles tentaram testar o CatBoost, então, ao contrário do XGBoost, ele não conseguia aprender nem na mesa de multiplicação.

Não sei, talvez agora eles tenham decidido que se não pode aprender coisas simples, eles deveriam tentar em coisas complexas, e talvez seja muito legal.

E isso provavelmente seria capaz de determinar que você poderia usar a BP sintética sugerida acima.

Pelo menos a XGBoost tem uma documentação muito melhor, e mais. O CatBoost tem, à excepção dos materiais do próprio Yandex, muito poucos outros, num relance.

 
Yuriy Asaulenko:

De acordo com padrões de curto prazo - de 10-15 minutos a no máximo 1 hora a probabilidade de qualquer evento significativo mudar qualquer coisa é muito baixa, especialmente porque já entramos em uma troca por um evento significativo. Dentro de mais de uma hora - o que vai acontecer, pelo menos para mim, é desconhecido. Isto não é em oposição a você, mas em apoio à minha opinião).

Não vejo a variabilidade das probabilidades dessa forma como parte da minha estratégia. Se o modelo deu um sinal para entrar, então nós entramos, porque neste momento (simplesmente falando, de acordo com estatísticas obtidas no treinamento) há condições favoráveis para ele e sair nas minhas diferentes versões de TS é diferente - ou por TP/SL, ou apenas por SL. Como resultado, a previsão não é cancelada antes de fechar a posição e pode funcionar até três horas. Isso significa que eu não estou prevendo a hora exata, mas sim a probabilidade de voltar ao preço que era x barras atrás, em outras palavras, o fim do apartamento local.

Mas escrevi sobre algo completamente diferente, nomeadamente, sobre a periodicidade de recorrência do padrão identificado no tempo, que se o padrão ocorreu durante três anos e levou a eventos previsíveis, então há uma chance, em maior grau, de que ele continuará seu trabalho também no quarto ano, enquanto o padrão identificado em uma pequena parte do tempo de treinamento pode ser apenas uma descrição de uma situação na TF superior (tendência em um gráfico semanal).

De qualquer forma, esta é a minha especulação teórica, agora vou processar os resultados da experiência e a situação será mais transparente, espero eu.

Yuriy Asaulenko:

Decidi seguir o seu caminho, com as minhas modificações e visão do assunto. Especialmente porque todos os preditores necessários já estão no lugar. Embora tenha decidido experimentar o XGBoost, algo que ele me pareceu - se os docs CatBoost não ficaram impressionados (XGBoost, imho, mais claro), ou então o quê. Eu ainda não entendi o que há com o racionamento. Com a NS, é difícil normalizar tudo lá.

Catbust tem mais opções, é a continuação do desenvolvimento da idéia XGBoost, principal vantagem e ao mesmo tempo menos são as árvores de dimensionalidade fixa, que impedem o re-treinamento se o seu número não for grande.

Nada precisa de ser normalizado para uma classificação pura. Entretanto, eu faço o pré-processamento nos preditores, reduzindo o intervalo de valores, e decomponho o próprio intervalo em grupos empiricamente. Talvez o resultado tivesse sido melhor sem estas transformações - ainda não verifiquei. Por um lado os desenvolvedores dizem que eu não preciso converter nada, por outro lado existem diferentes configurações para o algoritmo de conversão de dígitos, e além disso eu posso usar a minha própria divisão a partir de um arquivo separado. Refere-se ao catbust, mas acho que a lógica é a mesma em todo o lado.

 
Ivan Negreshniy:

E seria bom entender isso antes de criar modelos baseados neles e libertá-los para o caos do mercado.

Lembro-me que há cerca de meio ano eles tentaram testar o CatBoost, então, ao contrário do XGBoost, ele não conseguia aprender nem na mesa de multiplicação.

Eu não sei, talvez agora eles decidiram que se não pode aprender simples, então eles deveriam tentar em complexo, e talvez seja muito legal.

E para determinar que provavelmente você poderia usar as BPs sintéticas sugeridas acima.

CatBoost e XGBoost têm diferentes profundidades de árvores, eu lembro que CatBoost foi bem sucedido em adicionar um número de árvores.

E quanto a encontrar funções diferentes com árvores, é melhor procurá-las com NS e alimentar os resultados como preditores para classificação. De qualquer forma, não sou adepto de ração crua, mas Maxim conseguiu, embora seja necessária uma reciclagem mais frequente.

 

Para aqueles que duvidam da capacidade da NS de descrever funções