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

 
Mihail Marchukajtes:
Saudações!!!! Eu uso a LibVMR mas parece uma versão antiga, porque o erro "Bad Data" aparece. Eu entendo que há uma nova versão. Onde posso fazer o download? Se for possível?

Produtos frescos e downloads são agora distribuídos através do repositório BitBucket em: https://bitbucket.org/jprediction/jprediction/downloads

O nome do projeto também mudou de libVMR para jPrediction

 
Yury Reshetov:

Não está muito claro? Você está tomando os preços como OHLC para padrões ou alguma transformação dos mesmos?

A questão é que se tomarmos OHLC como está, um padrão similar 1000 pontos mais alto ou mais baixo do que o que está sendo comparado será mais diferente pela distância euclidiana do que um padrão totalmente diferente 10 pontos mais alto ou mais baixo do padrão comparado. E a diferença será de duas ordens de grandeza e, portanto, o erro de comparação também será de duas ordens de grandeza.

Quando eu media com Euclides, todos os vetores eram normalizados e censurados.
 
mytarmailS:
Quando medi com Euclides, todos os vectores foram normalizados e censurados.
Como é que se faz isso?
 
mytarmailS:

A solução foi encontrada.....

Se você aplicar a análise do espectro ao vetor atual (preços atuais) e decompô-lo em componentes mais simples, tais componentes podem ser encontrados mais facilmente no histórico, devido à sua estrutura simples

s

price <- cumsum(rnorm(200))+1000

library(Rssa)
s <- ssa(price)
r <- reconstruct(s)

par(mfrow=c(1,2))
plot(price,t="l")
plot(r$F2,t="l")
for(i in 3:50) {lines(r[[i]],col=i)}

Eu usei o método "caterpillar" ou "ssa"http://www.milanor.net/blog/wp-content/uploads/2014/07/SingularSpectrumAnalysisWithRssa.pdf para a decomposição.

Procuramos os análogos na história e vemos como eles acabam, mas não procuramos os análogos de preço, mas sim cada um dos componentes espectrais individuais, e depois ligamo-los e obtemos uma previsão simples.

A julgar pelos primeiros testes, o tema é bastante promissor se previrmos cada um dos seus componentes separadamente. A previsão é muitas vezes correcta, mas raramente não é tendenciosa.

ss

A cor preta indica um dos componentes atuais, a cor azul mostra o componente analógico encontrado no histórico após a linha vertical preta é um novo dado desconhecido para o algoritmo - na verdade, a previsão - como você pode ver com bastante eficácia

Mas como você vê há sempre um viés na previsão, e nem sempre um bom naturalmente, a proximidade entre analógicos procurando o caminho antigo através da correlação, eu entendo que esta é uma das formas mais inadequadas, então eu queria substituir o algoritmo que procuraria semelhanças na amplitude, fase, freqüência. Agora percebes o que quero dizer quando falo de Fourier?

 

Dr. Trader

Como está a sua rede neural? Treinada?

RNeat? Não, o treino é muito lento, a fitness do modelo é agora de 0,018, crescendo um centésimo por dia. A precisão dos dados de treinamento e validação é agora de 0,52, muito baixa, mas pelo menos está no lado positivo sem treinamento.
 
Yury Reshetov:
Como você faz isso?

Bem, é que antes de comparar os dois vectores, eu escalei-a com a função "escala".

escala(x = dados , centro = VERDADEIRO, escala = VERDADEIRO )

 
Yury Reshetov:
Como?
Curiosamente, eu baixei a versão 6.0 porque a 5.0 não salva e não cria um arquivo de texto, então não está claro porque no treinamento um valor de erro, mas no arquivo de texto os valores são completamente diferentes???
 
Mihail Marchukajtes:
Eu me pergunto porque eu baixei a versão 6.0 porque a 5.0 não salva e não cria um arquivo de texto, então não está claro porque durante o treinamento um valor de erro e no arquivo de texto os valores são completamente diferentes???
No arquivo de texto, as características para o classificador binário e após o treinamento para o ternário. Existem duas grelhas e se as suas leituras coincidirem, obtemos uma resposta afirmativa, se forem diferentes, obtemos um traço. Os classificadores binários dão sempre apenas respostas afirmativas, independentemente do facto de os dados de padrões semelhantes na amostra serem ou não semelhantes. Os classificadores ternários às vezes não dão uma resposta afirmativa se a amostra de treinamento não contém padrões semelhantes.
 
Dr. Trader:
RNeat? Não, o treino é muito lento, a condição física que define o modelo é agora de 0,018, crescendo um centésimo por dia. A precisão dos dados de treinamento e validação é agora de 0,52, muito baixa, mas pelo menos está no lado positivo e sem treinamento de reciclagem.
Ooh 52 é melhor que 50 , como deve ser lembrado da última vez que foi 0,017 então um centésimo pode aumentar a precisão em 2% ) , acho que se a rede é boa o suficiente é melhor reescrevê-la para SI , mantenha-me informado , estou muito interessado ...
 
mytarmailS:
Ooh 52 já é melhor que 50 , como me lembro da última vez foi 0.017 por isso um centésimo aumenta a precisão das previsões em 2% ) , acho que se a rede merece atenção é melhor reescrevê-la no SI , mantenha-me informado, estou extremamente interessado ...

O fitness pode subir simplesmente porque o modelo melhorou a sua topologia e deixou cair alguns neurónios, para a mesma precisão.
Pelo que entendi dos comentários do código - é um porto de Lua. E Lua também é um porto, porque o original já estava em c++:http://nn.cs.utexas.edu?neat
Port from port é infeliz, muitas ações desnecessárias, seria melhor se o autor do RNeat tomasse o código C++ como base, e aplicasse os pacotes genéticos de R existentes para evoluir a rede.