Regressão Bayesiana - Alguém já fez um EA usando este algoritmo? - página 40

 

E minha alma continua querendo se aprofundar no assunto de citações incrementais supostamente distribuídas normalmente.

Se alguém for a favor, eu darei argumentos para que este processo não possa ser normal. E estes argumentos serão compreensíveis para todos, ao mesmo tempo em que serão coerentes com o CPT. E estes argumentos são tão triviais que não deve haver dúvidas.

 
-Aleks-:

E o que expressará a probabilidade, a previsão para a próxima barra, ou o vetor de movimento das próximas barras?

A probabilidade expressará a previsão do próximo tick (incremento). Eu só quero:

- calcular os valores dos futuros carrapatos Ybayes para os quais a probabilidade pela fórmula Bayes será máxima.

- Compare Ybayes com os carrapatos reais Yreal que estão chegando. Coletar e processar as estatísticas .

Se a diferença de valores estiver dentro de uma faixa razoável, então postarei o código e perguntarei o que fazer a seguir. Regressão? Vetor? Escamação?

 
Yuri Evseenkov:

A probabilidade expressará a previsão do próximo tick (incremento). Eu só quero:

Por que descer para os carrapatos? Você pode aprender a prever as direções dos tick em 5 minutos com 70% de precisão, mas 100 ticks à frente, você sabe que a precisão cairá.

Tente com incrementos de meia hora ou uma hora de antecedência. É interessante para mim também, talvez eu possa ajudar de alguma forma.

 
Yuri Evseenkov:

A probabilidade expressará a previsão do próximo tick (incremento). Eu só quero:

- calcular os valores dos futuros carrapatos Ybayes para os quais a probabilidade pela fórmula Bayes será máxima.

- Comparar Ybayes com carrapatos Yreal reais chegando . Coletar e processar as estatísticas .

Se a diferença de valores estiver dentro de uma faixa razoável, postarei o código e perguntarei o que fazer a seguir. Regressão? Vetor? Curva? Escamação?

O que há de errado com a ARIMA? Em pacotes o número de diffs (incrementos de incrementos) é calculado automaticamente, dependendo do fluxo de entrada. Muitas sutilezas relacionadas à estacionaridade estão escondidas dentro da embalagem.

Se você realmente quer ir tão fundo, um pouco de ARCH?

Eu tentei uma vez. O problema é este. O incremento pode ser calculado facilmente. Mas se adicionarmos o intervalo de confiança deste incremento ao próprio incremento, ele será COMPRAR ou VENDER, já que o valor do preço anterior cai dentro do intervalo de confiança.

 

Sim, a abordagem clássica, como a SanSanych escreve, é a análise de dados, requisitos de dados e erros de sistema.

Mas esta linha é sobre Bayes e estou tentando pensar em termos Bayesianos, como o soldado na trincheira calculando a probabilidade posterior (após a experiência). Eu dei um exemplo do soldado acima.

Uma das principais questões é o que tomar como probabilidade a priori. Em outras palavras, quem devemos colocar atrás da cortina do futuro, à direita da barra zero? Gauss? Laplace? Wiener? O que os matemáticos profissionais escrevem aqui (para mim uma "floresta" escura)?

Eu escolho Gauss porque tenho uma idéia de distribuição normal e acredito nela. Se não "disparar", então é possível tomar outras leis e substituir Gauss em vez da fórmula Bayes, ou junto com Gauss como produto de duas probabilidades. Tente fazer uma rede Bayesiana, se eu a entendi corretamente.

Naturalmente, não posso fazer isso sozinho. Eu gostaria de resolver o problema com Gauss, que formulei sob o buquê. Se alguém estiver disposto a se juntar a mim voluntariamente, por favor, faça-o. Aqui está um problema real.

Dado: МТ4 gerador de números aleatórios.

Necessidade: Escreva o código MQL4 como função FP() convertendo a matriz MT4[] formada pelo RNG padrão em matriz ND[] com distribuição normal.

Vasily (não conheço meu patronímico) Sokolov me mostrou as fórmulas de transformação em https://www.mql5.com/go?link=https://habrahabr.ru/post/208684/.

O altruísmo e a gentileza serão uma representação gráfica dos resultados, embora eu possa ampliar os gráficos das arrays calculadas diretamente na janela MT4. Eu estava fazendo isso em meus projetos.

Entendo que muitas pessoas aqui podem resolver este problema com alguns cliques em pacotes de matemática, mas eu quero falar em uma linguagem MQL4, que é comumente entendida por comerciantes, programadores, economistas e filósofos.

Преобразование равномерно распределенной случайной величины в нормально распределенную
Преобразование равномерно распределенной случайной величины в нормально распределенную
  • habrahabr.ru
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста. Пометьте топик понятными вам метками, если хотите или закрыть
 
Yuri Evseenkov:

Sim, a abordagem clássica, como a SanSanych escreve, é a análise de dados, requisitos de dados e erros de sistema.

Mas esta linha é sobre Bayes e estou tentando pensar em termos Bayesianos, como o soldado na trincheira calculando a probabilidade posterior (após a experiência). Eu dei um exemplo do soldado acima.

Uma das principais questões é o que tomar como probabilidade a priori. Em outras palavras, quem devemos colocar atrás da cortina do futuro, à direita da barra zero? Gauss? Laplace? Wiener? O que os matemáticos profissionais escrevem aqui (para mim uma "floresta" escura)?

Eu escolho Gauss porque tenho uma idéia de distribuição normal e acredito nela. Se não "disparar", então é possível tomar outras leis e substituir Gauss em vez da fórmula Bayes, ou junto com Gauss como produto de duas probabilidades. Tente fazer uma rede Bayesiana, se eu a entendi corretamente.

Naturalmente, não posso fazer isso sozinho. Eu gostaria de resolver o problema com Gauss, que formulei sob o buquê. Se alguém estiver disposto a se juntar a mim voluntariamente, por favor, faça-o. Aqui está um problema real.

Dado: МТ4 gerador de números aleatórios.

Necessidade: Escreva o código MQL4 como função FP() convertendo a matriz MT4[] formada pelo RNG padrão em matriz ND[] com distribuição normal.

Vasily (não conheço meu patronímico) Sokolov me mostrou as fórmulas de transformação em https://www.mql5.com/go?link=https://habrahabr.ru/post/208684/.

No entanto, eu posso e posso rescindir gráficos de arrays calculados diretamente na janela MT4. Eu estava fazendo isso em meus projetos.

Entendo que muitos comerciantes podem resolver este problema em alguns cliques usando pacotes matemáticos, mas quero usar a linguagem MQL4, que é geralmente acessível a comerciantes, programadores, economistas e filósofos.

Aqui está um gerador com diferentes distribuições, incluindo a normal:

https://www.mql5.com/ru/articles/273

Статистические оценки
Статистические оценки
  • 2011.03.15
  • Victor
  • www.mql5.com
Оценка статистических параметров последовательности очень важна, так как большинство математических моделей и методов строятся исходя из различного рода предположений, например, о нормальности закона распределения, или требуют знания значения дисперсии или других параметров. В статье кратко рассматриваются простейшие статистические параметры случайной последовательности и некоторые методы ее визуального анализа. Предлагается реализация этих методов на MQL5 и способ визуализации результатов расчета при помощи программы Gnuplot.
 

Breve análise da distribuição em R:

# load data
fx_data <- read.table('C:/EURUSD_Candlestick_1_h_BID_01.08.2003-31.07.2015.csv'
                           , sep= ','
                           , header = T
                           , na.strings = 'NULL')

fx_dat <- subset(fx_data, Volume > 0)

# create open price returns
dat_return <- diff(x = fx_dat[, 2], lag = 1)

# check summary for the returns
summary(dat_return)
      Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
-2.515e-02 -6.800e-04  0.000e+00 -3.400e-07  6.900e-04  6.849e-02 

# generate random normal numbers with parameters of original data
norm_generated <- rnorm(n = length(dat_return), mean = mean(dat_return), sd = sd(dat_return))

#check summary for generated data
summary(norm_generated)
      Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
-8.013e-03 -1.166e-03 -7.379e-06 -7.697e-06  1.152e-03  7.699e-03 


# test normality of original data
shapiro.test(dat_return[sample(length(dat_return), 4999, replace = F)])

	Shapiro-Wilk normality test

data:  dat_return[sample(length(dat_return), 4999, replace = F)]
W = 0.86826, p-value < 2.2e-16


# test normality of generated normal data
shapiro.test(norm_generated[sample(length(norm_generated), 4999, replace = F)])

	Shapiro-Wilk normality test

data:  norm_generated[sample(length(norm_generated), 4999, replace = F)]
W = 0.99967, p-value = 0.6189


############## comparison of distributions
d1 <- density(dat_return)
d2 <- density(norm_generated)

p1 <- hist(dat_return, breaks = "Scott", freq = T)
p2 <- hist(norm_generated, breaks = "Scott", freq = T)

plot(p1, col = rgb(0,0,1,1/4), xlim = c(-0.01, 0.01))
lines(p2, col = rgb(1,0,0,1/4), xlim = c(-0.01, 0.01))

plot(d1, col = rgb(0,0,1,1/4), xlim = c(-0.01, 0.01))
lines(d2, col = rgb(1,0,0,1/4), xlim = c(-0.01, 0.01))


Estimamos os parâmetros da distribuição normal a partir dos incrementos de preço de abertura de barras de relógio disponíveis e plotamos para comparar a freqüência e densidade para a série original e a série normal com as mesmas distribuições. Como você pode ver até mesmo a olho nu, a série original de incrementos de barras horárias está longe de ser normal.

E, a propósito, não estamos em um templo de Deus. Não é necessário e até prejudicial acreditar.

 

Aqui está uma linha curiosa do correio acima, que ecoa o que escrevi acima

summary(dat_return)
      Min.    1st Qu.     Median       Mean    3rd Qu.       Max.  

-2,515e-02 -6,800e-04 0,000e+00 -3,400e-076,900e-04 6,849e-02

Até onde entendo em quadrantes, 50% de todos os incrementos no horário de trabalho são menos de 7 pips! E os incrementos mais decentes estão nas caudas grossas, ou seja, no outro lado do bem e do mal.

Então, como será o TS? Esse é o problema, não o Bayesiano e outros, outros, outros....

Ou deveria ser entendido de alguma outra forma?

 
СанСаныч Фоменко:

Aqui está uma linha curiosa do correio acima, que ecoa o que escrevi acima

-2,515e-02 -6,800e-04 0,000e+00 -3,400e-076,900e-04 6,849e-02

Até onde entendo em quadrantes, 50% de todos os incrementos no horário são menos de 7 pips! E os incrementos mais decentes estão nas caudas grossas, ou seja, no outro lado do bem e do mal.

Então, como será o TS? Esse é o problema, não o Bayesiano e outros, outros, outros....

Ou deveria ser entendido de alguma outra forma?

SanSanych, sim!

####### quantiles
hour1_quantiles <- data.frame()
counter <- 1
for (i in seq(from = 0.05, to = 0.95, by = 0.05)){
        
        hour1_quantiles[counter, 1] <- i
        hour1_quantiles[counter, 2] <- quantile(dat_return, probs = i)
        counter <- counter + 1
}

colnames(hour1_quantiles) <- c(
                                        'probability'
                                        , 'value'
                                        )

plot(hour1_quantiles$value, type = 's')

#View

hour1_quantiles
   probability      value
1         0.05 -0.0025375
2         0.10 -0.0016600
3         0.15 -0.0012100
4         0.20 -0.0009000
5         0.25 -0.0006800
6         0.30 -0.0005050
7         0.35 -0.0003600
8         0.40 -0.0002300
9         0.45 -0.0001100
10        0.50  0.0000000
11        0.55  0.0001100
12        0.60  0.0002400
13        0.65  0.0003700
14        0.70  0.0005100
15        0.75  0.0006900
16        0.80  0.0009100
17        0.85  0.0012100
18        0.90  0.0016600
19        0.95  0.0025300
plot(y = hour1_quantiles$value, x = hour1_quantiles$probability, main = 'Quantile values for EURUSD H1 returns')


## what is absolute statistics of hourly returns?

summary(abs(dat_return))
    Min.  1 st Qu.   Median     Mean  3 rd Qu.     Max. 
0.000000 0.000300 0.000690 0.001097 0.001420 0.068490 

E outra coisa interessante é que o incremento médio absoluto nas barras horárias é de 11 pips! Total.

 
Alexey Burnakov: a série de aumentos de barras por hora está longe de ser normal.
Assim, aos poucos chegamos ao fascinante tema das transformações)))), porque se não houver uma distribuição normal, é possível fazer uma.
Você terá que fazer isso por muito tempo, porque precisa de retransformação e... E a Box-Cox não gosta muito)))) É apenas uma pena que se você não tiver
É uma pena que, se você não tiver bons preditores, isso não terá muito efeito no resultado final...