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

 

Experimentei diferentes métodos de validação autodenominados, inclusive os descritos nestes artigos. Minhas conclusões são as seguintes:

No forex, não há dependência estrita entre a variável-alvo e os preditores; o forex não é uma fórmula que possa ser encontrada e aplicada para calcular novos dados. Tudo o que o modelo pode fazer é encontrar uma certa regularidade e extrapolar os resultados para negociar com novos dados.
Ou seja, há um certo espaço multidimensional (a dimensionalidade é igual ao número de preditores), no qual há vários pontos (variáveis-alvo conhecidas). O modelo constrói um hiperplano nesse espaço que separa os pontos no espaço (a classe "comprar" da classe "vender"). Há infinitas maneiras de construir esse hiperplano (em um caso simples - desenhe quatro pontos em uma folha de papel e trace uma linha curva entre eles de modo que haja dois pontos à direita da curva e dois pontos à esquerda. As formas de desenhar uma curva serão infinitas). Portanto, não há garantia de que o modelo construído reflita a dependência correta da variável-alvo em relação aos preditores. A validação é usada para verificar a adequação do modelo - alguns dos pontos não foram usados durante o treinamento, e você pode descobrir facilmente se o modelo conseguiu lidar com isso, se ele mostrará o resultado correto nesses pontos de teste.

Se o modelo não conseguiu passar na validação corretamente, pode haver muitos motivos para isso, por exemplo,
- o modelo encontrou algumas dependências inexistentes, que existem apenas nos exemplos de treinamento
- havia alguma dependência nos dados de treinamento que não está presente nos dados de teste. Por exemplo, quando todos os dados para o teste são obtidos posteriormente e o comportamento do símbolo cambial mudou
- o próprio modelo é inicializado com uma semente malsucedida. Geralmente, o modelo treinado com os mesmos dados apresenta resultados diferentes durante a validação após muitas tentativas de treiná-lo novamente

Não se sabe o que causou um resultado ruim em um caso específico. Tudo o que podemos fazer é estimar a qualidade média do modelo - construir o modelo dezenas de vezes e fazer uma estimativa na validação. Os dados para treinamento/validação devem ser divididos novamente a cada vez.
O que considero uma maneira válida é dividir os dados aleatoriamente na proporção de 50%/50% (não por tempo, mas para que tudo seja misturado uniformemente, por exemplo, linhas 1,2,5,7 para treinamento, 3,4,6,8 para validação), treinar o modelo na primeira parte e, em seguida, fazer a validação na segunda parte, usar a precisão para avaliar o modelo. Repita isso 50 vezes (divida novamente os dados em duas partes aleatórias, treinamento e validação). Em seguida, calcule a precisão média nos dados de treinamento e a média nos dados de validação. Digamos que a precisão média na amostra de treinamento foi de 90% e a média na amostra de validação foi de 80%. A precisão no fronttest será ainda menor. Eu uso esta regra prática: calcule a diferença (90%-80%=10%) e subtraia-a do resultado da validação (80%-10% = 70%). Acontece que esse modelo no fronttest terá uma precisão média de cerca de 70%. Em seguida, ajusto geneticamente os parâmetros do modelo e os preditores para aumentar essa estimativa de 70% (é muito mais difícil do que parece, é difícil ir além de 50%).

Mas não gosto do fato de que esse resultado é apenas um valor médio, sem garantias. A precisão real ao negociar será de 60% a 80%, ou até mesmo de 50% a 90%, dependendo de quão azarado você for. Não importa o quanto eu tente, não consigo encontrar o melhor modelo por nenhuma indicação. Provavelmente, a única solução é criar dezenas de modelos com os melhores parâmetros e preditores encontrados e levar o resultado para onde a maioria das pessoas procura (congresso de modelos).

Isso está intimamente relacionado ao que SanSanych disse no início do tópico. Você também pode retirar a última parte dos dados conhecidos da última amostra de controle, como ele aconselhou. Não use esses dados para treinamento e validação, mas armazene-os separadamente até o final do treinamento do modelo. Em seguida, teste o modelo finalizado, ou congresso, com esses dados. O lado positivo é que isso mostrará o desempenho do modelo em novos dados ponderados pelo tempo. A desvantagem é que restarão menos dados para treinamento e validação, e o modelo estará um pouco desatualizado no início da negociação. Há uma pequena nuance aqui: se você não gostou do resultado desses dados de controle e começou a selecionar um modelo que mostrará um bom resultado nesse site, então você começou a usar esses dados para validação e, consequentemente, o modelo é selecionado com eles em mente e, portanto, há um pequeno olhar para o futuro, o controle e toda essa operação perdem o sentido e, nesse caso, foi mais fácil não fazer uma amostra de controle.

 
Dr. Trader:

Eu tentei vários métodos de validação autoescritos, incluindo os descritos nestes artigos. As minhas conclusões são as seguintes:

Em forex não há uma relação rigorosa entre a variável alvo e os preditores, forex não é uma fórmula que pode ser encontrada e aplicada para calcular novos dados. Tudo o que um modelo pode fazer é encontrar algum tipo de padrão e extrapolar os resultados para negociar com base em novos dados.
Em outras palavras, existe um certo espaço multidimensional (dimensionalidade igual ao número de preditores), no qual múltiplos pontos (variáveis-alvo conhecidas) estão localizados. O modelo constrói um hiperplano neste espaço que separa os pontos do espaço (a classe "comprar" da classe "vender"). As formas de construir este hiperplano são infinitas (num caso simples - desenhe quatro pontos na folha, e desenhe uma linha curva entre eles de modo a que haja dois pontos à direita da curva, e dois à esquerda também. As formas de traçar uma curva são infinitas). Portanto, não há garantia de que o modelo construído reflita a correta dependência da variável alvo em relação aos preditores. Para verificar a adequação do modelo é utilizada a validação - alguns pontos não foram utilizados no treinamento e é fácil descobrir se o modelo falhou, se ele irá mostrar o resultado correto nesses pontos de teste.

Se o modelo falhar a validação, pode haver muitas razões.
- o modelo encontrou algumas dependências que não existiam e só estavam presentes nos exemplos de formação
- há uma dependência nos dados de treinamento, que não está presente nos dados de teste. Por exemplo, em um caso em que todos os dados para um teste são tomados mais tarde no tempo e o comportamento do símbolo de câmbio mudou
- o modelo em si foi inicializado com uma semente mal sucedida. Acontece frequentemente que um modelo treinado com os mesmos dados dará resultados diferentes na validação após múltiplas tentativas de re-treinamento.

Não se sabe o que causou um mau resultado em um caso em particular. Tudo o que podemos fazer é estimar quão bom é um modelo em média - construir um modelo dezenas de vezes, estimar a validação. Os dados de treinamento/validação precisam ser re-divididos a cada vez.
O que eu acho que é uma forma válida é dividir os dados aleatoriamente numa proporção de 50%/50% (não por tempo, mas para que tudo seja misturado uniformemente, por exemplo linhas 1,2,5,7 para treinamento, 3,4,6,8 para validação), treinar o modelo na primeira parte, depois fazer validação na segunda, para avaliação do modelo eu uso precisão. Repita isto 50 vezes (re-partição dos dados em 2 partes aleatórias, treinamento, validação). Em seguida, calcular a precisão média nos dados de treinamento e a precisão média nos dados de validação. Suponha que a precisão média na amostra de treinamento foi de 90%, na amostra de validação de 80%. A precisão na frente será ainda menor, eu uso esta regra: calcule a diferença (90%-80%=10%), e subtraia-a do resultado da validação (80%-10% = 70%). Acontece que tal modelo no fronttest terá uma precisão média de cerca de 70%. Além disso, eu ajusto geneticamente os parâmetros do modelo e os preditores para aumentar esta estimativa de 70% (é muito mais difícil do que parece, é difícil ir mesmo além dos 50%).

Mas eu não gosto do facto de este resultado ser apenas uma média, sem garantias. A precisão real na negociação será de 60% a 80%, ou mesmo 50% a 90%, dependendo de quão azarado você tenha. Não importa como eu tente, é impossível pescar o melhor modelo por qualquer indicação. Provavelmente a única solução é construir dezenas de modelos com os melhores parâmetros e preditores encontrados, e levar o resultado para onde a maioria das pessoas olha (congresso de modelos).

Isto está intimamente relacionado com o que SanSanych disse no início do fio. Você também pode seguir seu conselho para remover a última parte dos dados conhecidos para a última amostra de controle. Não use esses dados para treinamento e validações, mas guarde-os separadamente até o final do treinamento do modelo. Em seguida, teste o modelo acabado, ou congresso, sobre estes dados. A vantagem é que ele vai mostrar como o modelo se comporta nos novos dados de tempo. O menos é que haverá menos dados para treinamento e validação, e o modelo estará um pouco desatualizado no início da negociação. Há uma pequena nuance aqui, se você não gosta de resultados nos dados de benchmark e começa a escolher um modelo que vai dar bons resultados nesta área - você começa a usar estes dados para validação, respectivamente um modelo é escolhido levando-os em conta e, portanto, há uma ligeira olhar para o futuro e toda esta operação se torna sem sentido, e neste caso foi mais fácil não fazer a seleção de benchmark em tudo.

Acertei! ©

Mas, uma nuance crucial. Para a validação cruzada e cv aninhado na camada superior, precisamos de tomar tempo para observações separadas. Bem, ou pelo menos para a camada superior, tire amostras esparsas de datas que não coincidam com o treinamento e o currículo inferior.

Os resultados deveriam ser piores, mas mais verdadeiros.

Se obtivermos correlação entre os resultados no CV e o CV aninhado (correlação). Então o modelo encaixa nos dados.
 
Vizard_:
Ainda não)))
A 7 pesquisou. Os cortes não são melhores que a versão de há meio ano atrás, ou quando eu olhei não me lembro exactamente. Na janela e no fylo as estatísticas escrevem de forma diferente. Selecionando a importância dos inputs
questionável, comparado de frente com o rf e mais um casal, e pode dar alta prioridade a muito pouco importante. Se você tirar o melhor corte (da janela) ainda não é bom.
Com estes dados eu recebo pelo menos 92%. A peça (tal como está) ainda é de pouca utilidade para fins práticos. Kudos pelo esforço no desenvolvimento e pela fuga de ideias.

Tudo imho, claro. Agora por enquanto)))


Quando estamos lidando com alguém do nível da Reshetov, podemos exigir com segurança:

1. uma revisão dos análogos

2. Uma indicação das deficiências que supostamente devem ser superadas nestes análogos.

3. Indicação do mecanismo para eliminar estas deficiências (você pode ocultar as especificidades da economia de mercado)

4. Comparação dos análogos com o seu desenvolvimento. Esta comparação deve provar que todos os inconvenientes acima mencionados dos protótipos existentes foram eliminados. E obtém-se uma ferramenta que NÃO é pior do que os análogos.

Se uma pessoa do nível de Reshetov não o faz, bem, então: Reshetov deve ser elogiado por suas dores no desenvolvimento e fuga de pensamento.

 
SanSanych Fomenko:

então você pode exigir com segurança:

))))))
 
Vizard_:
Ainda não)))
7 olhou. Resulta não melhor do que a versão de há meio ano atrás, ou quando eu olhei não me lembro exactamente. Na janela e no fylo as estatísticas escrevem de forma diferente. Selecionando a importância dos inputs
questionável, comparado de frente com o rf e mais um casal, e pode dar alta prioridade a muito pouco importante. Se você tirar o melhor corte (da janela) ainda não é bom.
Com estes dados eu recebo pelo menos 92%. A peça (tal como está) ainda é de pouca utilidade para fins práticos. Kudos pelo esforço em desenvolver e voar de fantasia.

Tudo imho, claro. Tchau agora)))


Os resultados na janela é um comité de dois modelos. Se você olhar para o arquivo, que salva o preditor dois modelos Na janela é o resultado do comitê desses dois modelos. como é so....
 
Vizard_:
Eu vejo.Notepad está comprimido, e eu não o torci))Mas eu o tirei da janela para comparação.
Eu apaguei imediatamente por falta de uso, embora alguém possa ser útil...
Em suma, acho que não deves criticar este trabalho. Em primeiro lugar, responde a uma questão muito importante, nomeadamente qual a percentagem de informação generalizada contida nos dados de entrada no que diz respeito à saída. E em segundo lugar, se o Yuri ouvir o que eu sugeri, você terá uma bomba que fechará muitas perguntas. Infelizmente não consegui ensinar o modelo a 100% sobre os meus dados (sem manipulações com os dados que aumentam a capacidade de generalização, como ficou imaginário) para ver como o modelo irá funcionar no futuro. No entanto, uma vez que você tenha uma generalização de 100% por comitê, você precisa ter certeza de que cada modelo tem os mesmos 100%, ou seja, que os dados de entrada descrevem completamente a saída. Depois veremos.... Entretanto, as conclusões sobre a inoperabilidade do otimizador são prematuras. Outra coisa é que cada um de nós está tentando construir um modelo para a saída IDEAL. O que, por sua vez, é extremamente difícil, se não impossível. Bem, e se a saída não for IDEAL, mas com um pouco de erros..... É isso que é interessante..... Digamos para marcar com um não aqueles sinais que têm um lucro de 100 pips, mas também aqueles que têm um lucro de -30 pips e superior.... Conhecendo esta suposição, será suficiente tomar um sinal 30 pips melhor e o problema será resolvido se conseguirmos construir um modelo com o nível de generalização de 100%.
 
Geralmente, para construir modelos de classificação, a ordem dos registros não é muito importante, é importante que o modelo o aprenda 100% e é importante que a reação do mercado no futuro próximo aos mesmos eventos seja a mesma. Para dizer a ausência de dados contraditórios. Quanto aos modelos prognósticos, a ordem dos registos é importante para eles. Esta é uma das diferenças entre classificação e previsão.....
 

Será que isto nos vai ajudar.... Então eu entendo que o poder de processamento de tal coisa é uma ordem de magnitude maior, se não várias....

https://hi-tech.mail.ru/news/compact-quantum-computer/?frommail=1

 
SanSanych Fomenko:
Mihail Marchukajtes:
E a todos os que chegam. No arquivo da z1 há dois arquivos de treinamento e teste. Para o modelo Target build on train, aplicar ao teste, pós resultados em % (previsto com sucesso
de casos) para ambas as amostras (comboio = xx%, teste = xx%). Métodos e modelos não precisam de ser anunciados, apenas números. Qualquer manipulação de dados é permitida.
e métodos de mineração.
Arquivos anexados:
z1.zip  43 kb
 
Vizard_:
E a todos os que chegam. O arquivo z1 contém dois arquivos de treinamento e teste. Para o Target, construir modelo no trem, aplicar ao teste, pós resultados em % (previsto com sucesso
de casos) para ambas as amostras (comboio = xx%, teste = xx%). Métodos e modelos não precisam de ser anunciados, apenas números. Qualquer manipulação de dados é permitida.
e métodos de mineração.

Obrigado! Vou tentar.

Vamos concordar em não fazer o teste até que o modelo treinado tenha sido avaliado. Eu já o fiz antes.

Ou seja, treinamos até ficar azul na cara o melhor modelo no comboio. Talvez dois ou três modelos. Depois o seu teste de uma vez.

Razão: