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

 
Maxim Dmitrievsky:

O forward é o que tem o maior fator de lucro, e o backtest deve ser aproximadamente o mesmo, o que significa que a grade é capaz de fazer previsões normais com base nesses parâmetros.

Não, não é. O forward está apenas mostrando o lucro potencial na negociação real. Pegue o melhor resultado de um backtest e olhe para a sua frente - isso é o que você ganharia.
Você pode até mesmo obter pelo menos uma variante lucrativa para frente durante a otimização, mas tal EA irá falhar por mais difícil que seja otimizada. A genética faz mais de 10000 seleções de parâmetros e alguns deles são sempre lucrativos tanto no backtest como no fronttest, mas isso é apenas um acidente.

O forward pode ser usado como um controle para criar/modificar EA - substituir esses três parâmetros rsi por algo mais, geneticamente encontrar novos melhores valores de parâmetros e ver o que aconteceu no forward. Se os melhores resultados para trás correspondem a bons resultados para a frente e isso acontece durante a otimização em diferentes intervalos de tempo - então a EA está OK. Para frente não é muito longo, quase todos os EAs perdem no longo intervalo sem otimização adicional. Por exemplo, 2 meses de backtest, uma semana de fronttest é suficiente.


Maxim Dmitrievsky:

Eu ainda não entendo bem se é melhor para a função de normalização tomar 5000 barras de matriz em vez de 50, de modo que ele iria encontrar mais correto max e min desde o início e não atualizá-los com o tempo, porque no início dos testes não vamos receber valores normalizados corretamente para a entrada, mas mais tarde mais e mais precisamente

Sim, será mais preciso com 5000. Além disso, em negociações reais após o lançamento do Expert Advisor, reinício do terminal, etc., os valores para min e max serão zerados. Toda a optimização será perdida. O depósito será destruído.
Também tento mudar algo no código para obter lucro. Por exemplo, simplesmente peguei um resultado de regressão linear pura sem qualquer adição e multiplicei por 1000, depois adicionei 0,5. O resultado estará quase sempre em [0;1] (se estiver fora dos limites - imprimirei erro no log e reduzirei o multiplicador mais tarde), o centro estará sempre em 0,5, e nunca falhará.


Maxim Dmitrievsky:

Eu ainda detrenderia gráficos e daria mais valores digeríveis para uma grade. Ainda não sei como melhorar, digamos, a inclinação de regressão e a autocorrelação de uma série estacionária, já que não sou muito bom em econometria, agora só vejo videoclipes

A inclinação de regressão em séries estacionárias será zero, não é preciso procurá-la. Em geral, se você quiser encontrar a inclinação da tendência atual nas últimas N barras - então a regressão linear está OK, no código tudo já está bem.
A autocorrelação seria um pouco confusa, pois não é um valor único, mas um vector longo (correlação com a defasagem 1, correlação com a defasagem 2, correlação com a defasagem 3, etc.). Todos estes valores não caberão no RNN.

 
Dr. Trader:

A inclinação da regressão na série estacionária será zero, não há necessidade de procurar por ela. Em geral, se se quiser encontrar a inclinação da tendência atual nas últimas N barras, então a regressão linear está OK, tudo já está bom no código.
A autocorrelação seria algo obscura, pois não é um valor único, mas um vector longo (correlação com a defasagem 1, correlação com a defasagem 2, correlação com a defasagem 3, etc.). Todos estes valores não caberão no RNN.


Não, não, nós calculamos a inclinação dos degraus usando tabelas normais e procuramos autocorrelação usando detrend, ou talvez transferimos a periodicidade do ciclo de 0 para 1, como na fase do ciclo em que estamos

Isto é, na entrada temos uma direção na forma de declive de regressão e ciclicidade dentro dessa direção.

 
Maxim Dmitrievsky:

E o que você acha da idéia de usar o RNN como uma espécie de autocodificador para o MLP?

Há algo de muito errado com essa frase :)


Um autocodificador é um neurônio que pode:
1) pegar algum vetor (por exemplo, uma série de vértices), e emitir outro vetor de menor comprimento. Uma espécie de compressão de dados com pouca perda.
2) Pegue o vetor curto de dados obtido anteriormente e reconstrua a partir dele os dados originais (quase originais, dependendo das perdas do primeiro passo). Isso é descompressão.

Exemplo real: você tem uma foto em formato BMP, formato que ocupa muito espaço em disco. O Autoencoder leva seus pixels e nos devolve um novo vetor de pixels - os pixels da imagem em formato JPG. A mesma imagem, mas ocupa menos espaço em disco e está um pouco enevoada.
E então você pode se quiser voltar do JPG para o BMP, mas o brilho e brilho original não é devolvido.
Acho que não podemos colocar o algoritmo JPG na neurônica; o exemplo é apenas para clareza.


Neste caso, o RNN não leva séries cronológicas mas sim RSI e retorna apenas um valor segundo o qual os preços originais não podem ser restaurados.



Maxim Dmitrievsky:

Não, não, a inclinação reg é calculada usando gráficos normais e a autocorrelação é procurada usando detrend, pode ser a periodicidade do ciclo de 0 a 1 como na fase do ciclo em que estamos agora

Ou seja, a saída terá a direção na forma de declive de regressão e ciclicidade dentro desta direção

Ah, entendi.
 
Dr. Trader:

Há algo de muito errado com essa frase :)

Bem, o RNN primeiro não leva a série temporal, mas o RSI neste caso e retorna apenas um valor, pelo qual os preços originais não podem ser restaurados.

mas podemos reconstruir as 3 leituras rsi de volta :) ele apenas as comprimiu e deu uma probabilidade, não? )

O autocodificador também tem perda de informação... Ainda não percebo a diferença. Mb a diferença está puramente na arquitectura, temos uma espécie de versão simplificada

 
Yuriy Asaulenko:
Também dei uma olhada. Imho, esta não é a nossa área de estudo.


Bem, porquê? Já vi publicações para a EURUSD para a M1.

Você tem que olhar para rugarch

Há muitos destes GARCNs. Eles têm três grupos de parâmetros: o modelo em si, o tipo de média e o tipo de distribuição residual. Para cada um dos tipos de parâmetro, os últimos pips. Detenção é discutida acima. Assim, em GARCH detrendemos o uso de ARFIMA, ou seja, com diferenciação fracionária (Hurst).

 
SanSanych Fomenko:


Bem, porquê, já vi as publicações para o EURUSD para a M1, quanto mais longe.

Você tem que olhar para rugarch

Há muitos destes GARCNs. Eles têm três grupos de parâmetros: o modelo em si, o tipo de média e o tipo de distribuição residual. Para cada um dos tipos de parâmetro, os últimos pips. Detenção é discutida acima. Assim, em GARCH o detrending está usando ARFIMA, ou seja, com diferenciação fracionária (Hurst).


Bem, como é que se pode colocar gargalhadas na grelha? Da mesma forma que alguns indicadores devem ser introduzidos. Afinal de contas, a própria rede deve criar o modelo dentro de si
 
Maxim Dmitrievsky:

Bem, como é que se põe o lixo numa grelha? Afinal, a própria grelha deve criar o modelo dentro de si mesma.

Não empurres as coisas decentes para dentro das decentes.
 
SanSanych Fomenko:

Cuspa nas redes e não enfie coisas decentes em coisas desagradáveis.

Não, você deve fazer isso por diversão, é definitivamente possível encontrar um uso para as redes
 
Maxim Dmitrievsky:

Não, é apenas uma questão de interesse, e é claramente possível pensar em aplicações para malhas.
Todos os modelos de aprendizagem da máquina e NS são extremamente dependentes de preditores que têm de ser ajustados à função alvo. Tudo isso já foi discutido muitas vezes acima. O principal esforço é em dataminig, e a rede em si não importa.
 
SanSanych Fomenko:
Todos os modelos de aprendizagem da máquina e NS são extremamente dependentes de preditores que têm de ser ajustados à função alvo. Tudo isso já foi discutido muitas vezes acima. O principal esforço é em dataminig, e a rede em si não importa.

Eu só estava tentando discutir as variantes preditoras acima :) Eu vou tentar, che
Razão: