Regressão Bayesiana - Alguém já fez um EA usando este algoritmo? - página 45
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
http://www.quantalgos.ru/?p=1898 talvez o autor deste tópico se beneficie...
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.
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.
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 tirar tiques artificiais? Você pode aprender a prevê-los sem matemática superior. Pergunte à MQ como.
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.
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.
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.