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

 
http://www.quantalgos.ru/?p=1898 talvez o autor deste tópico se beneficie...
Предсказание чего угодно с использованием Python | QuantAlgos
  • 2016.03.12
  • www.quantalgos.ru
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python. Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между...
 
Ilnur Khasanov:
http://www.quantalgos.ru/?p=1898 talvez o autor deste tópico se beneficie...
Fez algo semelhante no retorno à média, de uma maneira ligeiramente diferente. Funciona, mas não se pode liberá-lo no real. Há problemas cujas soluções são completamente obscuras. O principal inconveniente do método - você tem que provar constantemente que está certo e não o mercado. :)
 

Gerador de números pseudo-aleatórios. (PRNG)

Usando o método de coordenadas polares sugerido acima, transformei МТ4 PRNG em PRNG com um valor aleatório normalmente distribuído.

Para verificar visualmente a exatidão do código, projetei os resultados na tabela de preços.

Isto é o que o PRNG básico mostra depois de 1000 chamadas. As áreas dos retângulos de histograma são proporcionais ao número de números aleatórios gerados que se encaixam nessa faixa da escala vertical.


Agora, a conversão desses milhares de acertos usando as fórmulas do método resulta em

um sino perfeitamente adequado.

 
Yuri Evseenkov:

Usando o método de coordenadas polares proposto acima, converteu o MT4 PRNG em um PRNG com uma variável aleatória normalmente distribuída.

Uma bicicleta velha de tão longe quanto mql4.com.
 

A uma tentativa de aplicar a fórmula Bayesiana. Novamente.

Tarefa. Usando o teorema de Bayes, determinar qual o valor de um tique que ainda não chegou é o mais provável.

Dado. Série cronológica x,y.

y=ax+b Uma linha desde o último tick até o futuro.

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) fórmula Bayes.

P(a,b|x,y)é a probabilidade de que os coeficientes a e b correspondam às coordenadas x e y de um tick futuro.

Precisamos encontrar a e b que esta probabilidade (mais corretamente ditamedida de probabilidade) seja máxima.

P(x,y|a,b) - vamos tomar o histograma real da distribuição de carrapatos por níveis de preço como uma função de probabilidade. A função é definida por uma matriz bidimensional (matriz): faixa de preço - probabilidade, relação percentual de carrapatos dentro desta faixa para o número total de carrapatos.

P(b) - a distribuição normal dos incrementos é tomada como uma probabilidade a priori b. PRNG com o valor normalmente distribuído é utilizado.

O coeficiente P(a) a determina a inclinação da linha reta e o sinal do incremento previsto. Até agora, estou pensando em usar o código de regressão linear que coloquei anteriormente. Isto é, tomar como unidade a probabilidade do coeficiente a ali encontrado. E em (1) substituir a probabilidade P(a) calculada levando em conta a diferença deste a e o calculado para o y dado.

Talvez você tenha algumas idéias sobre como o sinal de aumento de cada carrapato se comporta?


 

Definitivamente, não há necessidade de colocar carrapatos na fórmula. Qualquer pessoa pode gerar esses carrapatos em FORTS, o que é feito todos os dias.

O problema não está nos métodos matemáticos, mas sim nos métodos matemáticos. Mas na adequação da escolha dos dados a que se aplicam.

 
Por que levar carrapatos artificiais? Você pode aprender a prevê-los sem matemática superior. Pergunte à MQ como.

Pegue carrapatos reais, 10.000 peças e olhe para a distribuição. Pelo menos isso seria prático.
 
Alexey Burnakov:
Por que tirar tiques artificiais? Você pode aprender a prevê-los sem matemática superior. Pergunte à MQ como.

Pegue carrapatos reais, 10.000 peças e olhe para a distribuição. Pelo menos isso seria prático.

Portanto, a função de probabilidade P(x,y|a,b) em (1) é a distribuição real de carrapatos reais (tick volumes). É extremamente raro ser normal. E P(a) e P(b) são probabilidades corretivas, por leis tomadas como probabilidades a priori.

O que perguntar à MQ? O princípio de modelagem de carrapatos no testador de estratégia? Sim, deve haver algum princípio. Talvez sabendo disso, possamos criar "grails" de testador. Mas não posso desenvolvê-lo em modo de teste, já que não tenho nem histórico nem prática de trabalho com ele. Tudo será em tempo real.

Interessado em suas palavras:

"Eu não faço regressão e valores de preços (ou suas transformações) em minhas experiências, eu prevejo o sinal, mas você poderia dizer que isto também faz parte da informação sobre preços.

Meus erros são semelhantes a este:

0 1

0 0,58 0,42

1 0,43 0,57

Ou mais ou menos como o original:

1 - correto, 0 - erro: 1, 1, 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1

E a distribuição de probabilidade resultante deve ser tão diferente quanto possível de 0,5 / 0,5. Se obtivermos a inseparabilidade mútua de tais resultados, chegaremos à distribuição binomial, e há muitas, muitas fórmulas para isso e testes estatísticos". Fim da citação.

O que , a distribuição binomial realmente reina no caso de previsão de um sinal ? Qual é a independência mútua dos resultados? Obrigado.

 
Yuri Evseenkov:

Portanto, a função de probabilidade P(x,y|a,b) em (1) é a distribuição real de carrapatos reais (tick volumes). É muito raramente normal. E P(a) e P(b) são probabilidades corretivas, por leis tomadas como probabilidades a priori.

O que perguntar à MQ? O princípio de modelagem de carrapatos no testador de estratégia? Sim, deve haver algum princípio. Talvez sabendo disso, possamos criar "grails" de testador. Mas até agora não posso desenvolvê-lo em modo de teste, já que não tenho nem histórico nem prática de trabalho com ele. Tudo será em tempo real.

Interessado em suas palavras:

"Eu não faço regressão e valores de preços (ou suas transformações) em minhas experiências, eu prevejo o sinal, mas você poderia dizer que isto também faz parte da informação sobre preços.

Meus erros são semelhantes a este:

0 1

0 0,58 0,42

1 0,43 0,57

Ou mais ou menos como o original:

1 - correto, 0 - erro: 1, 1, 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1

E a distribuição de probabilidade resultante deve ser tão diferente quanto possível de 0,5 / 0,5. Se obtivermos independência mútua de tais resultados, chegamos à distribuição binomial, e para ela existem muitas, muitas fórmulas e testes estatísticos" Fim da citação.

A distribuição binomial reina realmente no caso da previsão de um sinal? Qual é a independência mútua dos resultados? Obrigado.

Em ordem. Sim, os carrapatos são gerados pelo algoritmo no testador. O teste sobre carrapatos reais ainda não está em liberação. Há um artigo neste site sobre como estes carrapatos são gerados. Eles não são carrapatos de verdade.

Sobre a distribuição binomial. Se você prevê uma variável binária, você obtém uma matriz 2*2 mostrando a precisão do reconhecimento. Esta é essencialmente uma distribuição conjunta das duas variáveis binárias, a variável alvo e a variável simulada.

Se sua seqüência de realizações da variável alvo i.i.d. for independente e distribuída de forma idêntica, isto abre a possibilidade de aplicar muitos critérios. O resultado de atirar uma moeda ao ar é exatamente isso. É um processo Bernoulli. Portanto, os eventos são independentes um do outro. Se isto for válido, sua distribuição de probabilidade obedece a uma distribuição binomial. Por exemplo, o número de sucessos tem sua probabilidade, que é aproximadamente normal.

Estou escrevendo divagando, é tarde. O que eu realmente gosto nas distribuições binomiais, para uma tabela quadrática aplicar o critério do qui-quadrado, mostrando o significado de que seu resultado é diferente de um palpite aleatório. Você pode fazer o mesmo para as mesas multinomiais (quadradas não vinculadas). Também para variáveis binárias, existem muitos métodos de aprendizagem de máquinas.
 

O uso de carrapatos para previsão é, em minha opinião, perigoso, e o modelo deve ser criado para cada corretor separadamente.

Se tirarmos carrapatos do testador de estratégia, haverá uma séria diferença em relação aos reais, pois os carrapatos no testador são gerados usando um modelo de valores ohlc de barras minúsculas(https://www.mql5.com/en/articles/75). É por isso que nunca ninguém testa escalpadores, mas imediatamente os coloca em uma conta real e os otimiza ao longo do caminho.

Sobre carrapatos reais - eles podem variar muito de corretor para corretor. Por exemplo, neste tópico https://www.mql5.com/en/forum/64228/page2#comment_1960403 (https://c.mql5.com/3/78/tbd.png ) anexo está uma captura de tela, esta é a distribuição dos incrementos de tick ao longo do mesmo período de tempo em dois corretores diferentes. Não me lembro da duração do intervalo, algo de um dia a uma semana. Geralmente elas coincidem, mas uma delas tem duas vezes mais carrapatos sem mudança de preço. Se você comparar mais de dez corretores, acho que pode haver grandes diferenças, especialmente para os "candelabros surpresa".
Como alternativa, todos os carrapatos podem ser removidos sem alteração de preço. Então há uma nuance de que o evento OnTick() pode ser pulado no EA e um novo preço com o anterior será enviado para o terminal. Isto é, não 1.23456 -> 1.23490 -> 1.23410, mas simplesmente 1.23456 -> 1.23410. E ao invés de duas mudanças, seu modelo terá uma.
Acontecerá que o intervalo de tempo entre dois carrapatos vizinhos não está definido e haverá lacunas de dados, acho que isso é ruim.
Ainda vale a pena tentar, você precisa usar o MT4 e o programa Tickstory Lite (há uma versão gratuita) para inserir carrapatos reais no testador (eles são tirados do corretor Dukascopy). Somente o terminal MT4 deve ser usado com uma construção inferior a 950, caso contrário, a versão gratuita do tickstory fará os dados de teste com spread zero.

Eu tentei algo com carrapatos, como encontrar uma média e comprar e vender se o preço atual se desviasse fortemente da média. Se havia algum lucro, então o spread estava comendo tudo e eu passei a prazos maiores.

The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
  • 2010.06.02
  • MetaQuotes Software Corp.
  • www.mql5.com
MetaTrader 5 allows us to simulate automatic trading, within an embedded strategy tester, by using Expert Advisors and the MQL5 language. This type of simulation is called testing of Expert Advisors, and can be implemented using multithreaded optimization, as well as simultaneously on a number of instruments. In order to provide a thorough testing, a generation of ticks based on the available minute history, needs to be performed. This article provides a detailed description of the algorithm, by which the ticks are generated for the historical testing in the MetaTrader 5 client terminal.