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

 
Vladimir Perervenko:

Eu tive uma discussão com Renat sobre o destino da língua R em MKL4/5. A solução e a direção de desenvolvimento da MKL está agora clara.

Boa sorte.

Já o li, nem quero escrever nada, se uma pessoa não está disposta a ouvir não há nada que o convença, se quer escrever 100 - 1000 linhas de código que há muito foi escrito é um direito dele, enquanto eu prefiro fazer a mesma coisa com uma linha em R.

A propósito, é possível fazer um desafio, fazer uma tarefa não trivial com alguns métodos estatísticos e depois ensinar e validar algum modelo, e implementá-lo em R e mql5+alglib e apenas comparar o tamanho do código ...

 
Vladimir Perervenko:

Eu tive uma discussão com Renat sobre o destino da língua R em MKL4/5. A solução e a direção do desenvolvimento da MKL está agora clara.

Boa sorte.

Para aqueles que não leram esse tópico, não é esperada uma interface direta de mql para R. Mas haverá acesso à biblioteca Alglib portada para mql, para que o próprio código mql possa construir árvores ou neurônios, otimizar algo com genética, procurar parâmetros para funções mínimas/máximas. Todas as possibilidades -http://www.alglib.net

 
Vladimir Perervenko:

Eu tive uma discussão com Renat sobre o destino da língua R em MKL4/5. A solução e a direção do desenvolvimento da MKL está agora clara.

Boa sorte.



Eu entendo a tendência. Tornar o MT4 amigável com R é possível. E o MT4 ainda é muito comum neste momento. Se você pegar uma boa dependência em P você pode facilmente ensinar o modelo na biblioteca MT5 com os mesmos parâmetros.

 

Eu tenho uma matriz `"P`` com observações (linha por linha) , para cada linha eu conto a distribuição através de `hist()`


pausas - conjunto 50


A <- hist(P[n,],quebras = 50,parcela = F)


mas verificou-se que em cada linha da matriz `A$breaks` tem um comprimento diferente, apesar de o comprimento de todas as linhas em `P` ser o mesmo, como fazer para que `A$breaks` tenham sempre o mesmo tamanho

 

Se você alimentar um número em pausas, o resultado será próximo a ele, mas não necessariamente.

Para uma correspondência exacta, é melhor calcular previamente os valores mínimos e máximos e alimentar o seu vector com o parâmetro
A <- hist(P[n,],quebras = c(10:60),parcela = F)

 
Dr. Trader:

Se você alimentar um número em pausas, o resultado será próximo a ele, mas não necessariamente.

Para uma correspondência exacta, calcule melhor os valores mínimos e máximos antecipadamente e introduza o seu vector no parâmetro
A <- hist(P[n,],breaks = com(10:60),plot = F)


experimentou-o, mas por alguma razão falhou.

> A <- hist(P[1,],breaks = с(10:60),plot = F)
Error in hist.default(P[1, ], breaks = с(10:60), plot = F) : 
  could not find function "с"
> A <- hist(P[1,],breaks = 10:60,plot = F)
Error in hist.default(P[1, ], breaks = 10:60, plot = F) : 
  some 'x' not counted; maybe 'breaks' do not span range of 'x'
 

Sobre o primeiro erro - Parece que escrevi c em russo ao invés de c em inglês c :) Corrigi o meu posto acima agora.

Segundo erro - P[1,] contém valores menores que 10 ou maiores que 60. Precisamos escolher pausas de forma a incluir todos os valores de P[1,]

 
Dr. Trader:

Sobre o primeiro erro - Parece que escrevi c em russo ao invés de c em inglês c :) Corrigi o meu posto acima agora.

Segundo erro - P[1,] contém valores menores que 10 ou maiores que 60. Você precisa escolher intervalos para incluir todos os valores de P[1,].


Infelizmente, eu não entendo(

aqui está um exemplo simples

rn <- rnorm(100)
H <- hist(rn, breaks = 50, plot = F)
length(H$breaks)

Preciso queo comprimento (H$breaks) seja sempre 50 ?

 

Primeiro temos de determinar o número mínimo em rn. Digamos -4. Depois o número máximo possível: +4.

A maneira mais fácil de chamar esta função é fazer o histograma passar de -4 para +4:
H <- hist(rn, pausas = c(-4:4))

Exemplo com erro:
H <- hist(rn, quebras = c
(-1:1))
que
bras é limitado de -1 a 1, então se rnorm() produz um número menor que -1 ou maior que +1, hist() irá gerar um erro.

A seguir, queremos criar um vector com números de -4 a +4, de modo a que o comprimento total do vector seja 50. Isto é feito com a função seq():
seq(-4, 4, comprimento.out=50).

O resultado de seq() deve ser usado no histograma.
H <- hist(rn, quebras = seq(-4, 4, comprimento.out=50))

 
Dr. Trader:

Primeiro temos de determinar o número mínimo em rn. Digamos -4. Depois o número máximo possível: +4.

A forma mais fácil de chamar esta função é fazer o histograma passar de -4 para +4:
H <- hist(rn, pausas = c(-4:4))

Exemplo com erro:
H <- hist(rn, quebras = c
(-1:1))
que
bras é limitado de -1 a 1, então se rnorm() produz número menor que -1 ou maior que +1, então hist() irá gerar erro.

Então, precisamos criar um vetor com números de -4 a +4, para que o comprimento total do vetor seja 50. Isto é feito com a função seq():
seq(-4, 4, comprimento.out=50).

O resultado de seq() deve ser usado no histograma.
H <- hist(rn, quebras = seq(-4, 4, comprimento.out=50))

Muito obrigado, não faço ideia sobre esta coisa econométrica,

Acho que já o temos.

rn <- rnorm(100)
Max <- max(rn)
Min <- min(rn)
range.vector <- seq(Min, Max, length.out=50)
H <- hist(rn, breaks = range.vector)
length(H$breaks)

[1] 50