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

 
mytarmailS #:

Houve alguma negociação ou foi tudo no nível dos testes no r-ka?

Apenas R.

 

Estou longe de ser um profissional em MO, portanto, gostaria de saber como resolver um problema.

Como você sabe, para converter a temperatura de Fahrenheit para Celsius, é usada a fórmula padrão: C = (F-32)*5/9

O GradientBousting mostra excelentes resultados dentro da amostra, mas fora dela o erro aumenta imediatamente.

Por quê? Porque a fórmula é muito simples. O que podemos dizer sobre uma relação complexa no mercado de moedas?)

Como fazer com que esse algoritmo mostre bons resultados em OOS?

 
Evgeni Gavrilovi Bousting mostra excelentes resultados na amostra, mas, além disso, o erro aumenta imediatamente.

Por quê? Porque a fórmula é muito simples. O que podemos dizer sobre a complexa relação no mercado de moedas?)

Como fazer com que esse algoritmo mostre bons resultados em OOS?

Você precisa normalizar todos os dados em um intervalo ou tirar o OOS do mesmo intervalo de valores

Fora dele, o valor extremo do intervalo será previsto, e é assim que funcionam parcialmente a floresta, o bousting e o OOS.
 
Sempre me perguntei por que os pesos são ajustados no testador de estratégias? Está se encaixando...

A melhor solução não seria otimizar o número de neurônios, camadas e tipos de funções (algumas na primeira, outras na última) de ativação no testador de estratégias? E usar a retropropagação do erro como uma mudança de pesos?

Decidi testar a ideia. Rede de camada única (não sei como expandir o número de camadas), função tangente (não sei como alterá-la) nos neurônios, nenhuma função na saída (não sei como colocá-la). Período de treinamento: ano - 2021/08/01-2022/08/01

A otimização consistiu em selecionar os seguintes parâmetros:

- número de dados de entrada (o loop enviou para a entrada o número solicitado de diferenças de preço de fechamento N0-N1, você pode fazer outras coisas, mas os ponteiros não alcançaram) - de 1 a 999 (a variável de matriz não permitiu fazer mais), etapa 1.
- número de neurônios - de 1 a 99 999 (não ria), etapa 1.
- número de conjuntos (Bar++[número de dados de entrada]) - 9 999, etapa 1. Como o treinamento foi realizado em um gráfico de uma hora, há 6500 barras em um ano. O resultado é quase um ano e meio , acho que está tudo bem.
- fator de aprendizado na saída: de 0 a 1 em etapas de 0,00001.
- fator de aprendizado na entrada: de 0 a 1 em etapas de 0.00001
- número de épocas - de 1 a 1000, etapa 1.


Então, vou logo avisando sobre o número de épocas - não consegui mudar nada, nem 1 época nem 1000, não notei muita diferença, provavelmente há alguns erros.

MAS! Observações interessantes:

- quanto maior o número de neurônios, maior o número de negociações (quase todos os candles, se forem previstos em direções diferentes)
- a taxa de aprendizado na entrada nos primeiros 10 melhores resultados é, na maioria das vezes, próxima de 0,7
- a taxa de aprendizado na saída nos primeiros 10 melhores resultados é, na maioria das vezes, próxima de 0,07
- os melhores resultados mostram a fórmula: o número de dados de entrada < o número de neurônios < o número de conjuntos. O melhor resultado (até onde tive paciência para esperar) foi algo assim: cerca de 200 dados de entrada, cerca de 300 neurônios e cerca de 400 conjuntos. Por que o melhor resultado? Porque no backtest - crescimento suave ondulante, nos dois meses seguintes - crescimento suave ondulante e.... no período anterior ao backtest de cerca de 2 meses - crescimento suave ondulado .

Por uma questão de interesse 99 999 neurônios - 50/50, mas, naturalmente - o maior lucro - ou o maior drawdown
. Ao mesmo tempo, o número de entradas não ultrapassou 100 e o número de conjuntos não ultrapassou 100. É um longo tempo de espera. Porém, não se sabe quais resultados seriam mostrados com 1.000 entradas e 1.000 conjuntos, ou 10.000.
 
Evgeni Gavrilovi Bousting mostra excelentes resultados na amostra, mas, além disso, o erro aumenta imediatamente.

Por quê? Porque a fórmula é muito simples. O que podemos dizer sobre a complexa relação no mercado de moedas?)

Como fazer com que esse algoritmo mostre bons resultados em OOS?

É preciso aprender o AMO em uma amostra de treinamento e escolher um modelo em uma amostra de teste....
Validação cruzada do Google
 
СанСаныч Фоменко #:

Somente R

Então, há uma probabilidade de erro no código; você precisa fazer testes com cotações reais ou simular....

Aconteceu comigo recentemente, o sinal olhou para +1 barra, não era um erro óbvio, levou meia hora para resolver....
 
Ivan Butko testador de estratégia? Isso é ajuste...

Não é a melhor saída? .....
O primeiro e o segundo são ajustes, também conhecidos como busca de parâmetros desconhecidos, também conhecidos como otimização.
E não importa o que você está ajustando, pesos, número de neurônios. Neurônios, FUN. Ativação, número de maçãs na cesta.
 
mytarmailS #:
Tanto a primeira quanto a segunda são ajustes, ou seja, busca de parâmetros desconhecidos, ou seja, otimização.
E não importa o que está sendo ajustado: pesos, número de neurônios. Neurônios, FUN. Ativação, número de maçãs na cesta.

Isso é uma coisa triste de se dizer. Não sei o que fazer a respeito.

As opções básicas, onde mais procurar...
 
Ivan Butko #:

É uma coisa triste de se dizer. Não sei o que fazer a respeito.

Essa é a principal opção, onde mais procurar...
Sarcasmo?
 
mytarmailS #:
Sarcasmo?

Não, de forma alguma. Eu simplesmente não sei mais o que fazer. Tentar usar redes neurais do mercado... Acho que também não há nenhuma perspectiva.