Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 481
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
os incrementos podem ser dados uma estimativa probabilística de pertencer à classe by\sell
vá em frente sem "pensar sobre isso".
Bem, vai em frente sem o "pensamento".
OK, vamos verificar com uma experiência... :) claro que vou tentar 2 e mais 2 aulas, mas não vejo uma diferença fundamental para o meu caso
Maxim, a maneira como eu vejo a tua situação é esta:
O objectivo é:
a) para obter uma probabilidade de direção de movimento;
b) para obter uma estimativa da força do movimento.
Opções de solução:
1) Utilize uma saída [0,1] ou [-1,1]. Ou duas saídas [[0,1],[0,1]].
Nerf! Os dados de treinamento devem refletir a força do movimento, ou seja, o histórico do movimento deve ser normalizado para um intervalo válido.
Mais: O modelo de rede é fácil e simples de configurar.
Menos: A normalização será heterogênea em toda a série temporal, devido a diferentes amplitudes de variações de preços.
2) Utilizar saída de classificação bidimensional [0,1]+[0,1] ou [-1,1]+[-1,1]. Ou três/quatro saídas [[0,1],[0,1]+[0,1]] ou [[0,1],[0,1]+[0,1],[0,1]]. Uma dimensão é a probabilidade de direção do movimento, a segunda dimensão é a probabilidade de força do movimento.
Mais: Melhor visibilidade do resultado.
Menos: Dificuldade do modelo de rede neural encaixar em estruturas "de madeira".
3) Opção dois com a divisão do modelo de rede em dois. Um modelo aprende a prever a direção, o segundo modelo aprende a prever a força do movimento.
Prós: Mantém a visibilidade; Facilidade de aplicação das redes neurais.
Menos: Pequeno aumento na velocidade de computação possível; Mais código.
Maxim, a maneira como eu vejo a tua situação é esta:
O objectivo é:
(a) Para obter a probabilidade da direção do movimento;
b) Para obter uma estimativa da força do movimento.
Opções de solução:
1) Utilizar uma saída [0,1], ou [-1,1]. Ou duas saídas [[0,1], [0,1]].
Nuance! os dados de treinamento devem refletir a força do movimento, ou seja, o histórico do movimento precisa ser normalizado para o intervalo desejado.
Mais: Conveniência e facilidade de montagem do modelo de rede.
Menos: A normalização será heterogênea em toda a série temporal, devido a diferentes amplitudes de variações de preços.
Então o valor da probabilidade de atribuição a uma das 2 classes ainda corresponderá à força do sinal, se eu preencher inicialmente as saídas com a força do sinal (digamos, basta alimentar os incrementos normalizados na faixa de 0-1, a saída terá quanto maior a probabilidade de atribuição a uma determinada classe, maior o incremento esperado?
Ou não funciona assim e obtemos apenas a probabilidade de atribuição a uma classe, mas o tamanho do incremento na saída é perdido :)
Se construirmos uma simples linha de regressão.... i.e..... seria mais forte do que...
E se tomarmos uma rede neural com classificação não-linear...
Mede-os com uma régua e saberás. Por exemplo, a agora na moda Logloss(R - biblioteca(MLmetrics))
Não seria melhor criar mais classes
Tão conveniente quanto quiseres...
Ou seja, a informação sobre a magnitude dos incrementos não será perdida após o treinamento, e a probabilidade de atribuição à 1ª de 2 classes pode ser usada para determinar a força prevista dos incrementos, e não apenas em qual classe os incrementos estarão. Então porque construir muitos outputs, 2 é suficiente :)
Ou seja, a informação sobre a magnitude dos incrementos não será perdida após o treinamento, e a probabilidade de atribuição à 1ª de 2 classes pode ser usada para determinar a força prevista dos incrementos, e não apenas em qual classe os incrementos aparecerão. Então porque se preocupar com muitas saídas, 2 é suficiente :)
Com todo o respeito.
Então o valor da probabilidade de atribuição a uma das 2 classes corresponderá à força do sinal, se inicialmente eu preencher as saídas com a força do sinal (digamos, eu apenas alimento os incrementos normalizados no intervalo 0-1, na saída obtemos a maior probabilidade de atribuição a esta ou aquela classe, quanto maior o incremento esperado?
Ou não funciona assim e obtemos apenas a probabilidade de atribuição a uma classe mas o tamanho do incremento de saída será perdido :)
A própria rede neural não sabe o que precisa. Aprende com o que o alimenta. Se de facto houver um padrão entre entrada e saída nos dados, com um treino adequado o modelo irá detectá-lo. Isto é, sim, o valor de probabilidade pode sinalizar a força de um movimento.
Eu faria o seguinte: dividiria os sinais em duas classes de compra/venda por [0,1] ou sinusoid/saída deanh [-1,1].
A probabilidade de cada gradação na compra pode ser diferente da probabilidade da mesma gradação na venda, você terá que fazer algum trabalho se estiver interessado em um bom resultado.
Cumprimentos.
Não, já citei o ecrã, os incrementos são estacionários e simétricos em ambos os lados do zero, por isso as probabilidades serão +- as mesmas
Bem, se você normalizar os dados de uma só vez, os sinais serão muito mais fracos.
A própria rede neural não sabe o que precisa de si. Aprende com o que o alimenta. Se de facto houver um padrão nos dados entre a entrada e a saída, o modelo irá detectá-lo com o treino correcto. Quer dizer, sim, o valor da probabilidade pode sinalizar a força do movimento.
Eu dividiria os sinais em duas classes por [0,1] ou saída sinusoidal/tanh [-1,1].
Sim, obrigado, era isso que eu queria ouvir ... porque um amigo que está em redes neurais me disse que a probabilidade de atribuição a uma classe é apenas a probabilidade de atribuição a uma classe, os dados sobre incrementos absolutos seriam perdidos ... Comecei a discutir com ele e acabei confundindo nós dois :)