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

 
ivanivan_11:
apenas a pensar - você só toma os valores dos preços e indicadores diferentes dos preços como preditores aqui? e alguém usa volumes reais e indicadores de volumes?

Eu trabalho com preços, sem volume.

Eu tentei usar volumes e seus indicadores, mas não funcionou. Não há volumes reais em forex, mas há carrapatos, que parecem corresponder um pouco aos reais, ou seja, em princípio, você pode experimentá-los. Mas o problema é que o histórico de barras e carrapatos do corretor contém alguns volumes de carrapatos"não tão". Enquanto o símbolo está na praça do mercado no terminal em funcionamento - há um histórico correto de volumes de tick para ele. Se o símbolo for removido do wotch ou se o terminal for fechado - os volumes de tick para estas barras serão tomados como dado pelo corretor. E estes dois valores, "digitado pelo terminal" e "recebido do corretor", são completamente diferentes, às vezes dez vezes. Agora eu preciso manter o terminal funcionando por alguns meses para obter os volumes reais do tick, não o que o corretor me dá, então eu posso tentar usá-los novamente.

 
Dr. Trader:

Eu trabalho com preços, sem volume.

Eu tentei usar volumes e seus indicadores, mas não funcionou. Não há volumes reais em forex, mas há carrapatos, que parecem corresponder um pouco aos reais, ou seja, em princípio, você pode experimentá-los. Mas o problema é que o histórico de barras e carrapatos do corretor contém alguns volumes de carrapatos"não tão". Desde que o símbolo esteja na praça do mercado no terminal em funcionamento - para ele é coletado o histórico correto dos volumes de tick. Se o símbolo for removido do wotch ou se o terminal for fechado - os volumes de tick para estas barras serão tomados como dados pelo corretor. E estes dois valores, "digitado pelo terminal" e "recebido do corretor", são completamente diferentes, às vezes dez vezes. Agora preciso manter o terminal funcionando por alguns meses para obter volumes reais de tick e não de broker e depois posso tentar usá-los mais uma vez.

Eu não sei porque eles são tão extremos, mas não estou falando de exóticos como Brasil, África do Sul, Polônia, Oceania.
 
Renat Fatkhullin:

Para informações sobre a linguagem R e o novo MetaTrader 5 build 1467:

  • Foi lançada uma versão actualizada de bibliotecas estatísticas semelhantes a R:

    Distribuições estatísticas em MQL5 - tire o melhor de R e torne-o mais rápido

  • Os cálculos em MQL5 são de 3 a 7 vezes mais rápidos do que em R (mesmo tendo em conta que as funções lá estão implementadas em C++).
  • Algumas funções R têm erros devido a antigos métodos de otimização/simplificação, levando a resultados errôneos
  • Foi adicionada uma versão beta de bibliotecas gráficas semelhante a R, que dá a possibilidade de visualizar os dados como em R.
  • Adicionada a conveniente função ArrayPrint, que imprime tanto matrizes padrão quanto estruturas como em R


Você pode atualizar para 1467 a partir do servidor MetaQuotes-Demo.

Muitas novas funções matemáticas e estatísticas semelhantes a R serão adicionadas nas próximas versões. Isto permitirá mais cálculos e visualização directamente no MetaTrader 5.

Caro Renat!

Deixe-me responder ao comentário sobre o ponto 6. Os erros de cálculo detectados em R no link citado:Distribuições estatísticas em MQL5 - tirar o melhor de R e torná-lo mais rápido

A verificação foi feita para a função Gama. Deixaremos a verificação para o resto das funções à sua própria responsabilidade.

Em nome do departamento de Data Science, representado pelo gerente e dois estatísticos (posso informá-lo sobre PM) informamos que a densidade de distribuição gama no ponto zero não é reduzida a zero, estritamente falando.

R de facto estima que a densidade no ponto zero seja 1:

x <- seq(0, 20, 0.5) #support

plot(k, dgamma(x = x, shape = 1, scale = 1, log = FALSE)) #PDF plot

print(dgamma(x = 0.000001, shape = 1, scale = 1, log = FALSE)) #limiting to zero

No entanto, podemos ver que quando x tende para zero, a densidade aproxima-se da unidade.

Além disso, de acordo com:

https://en.wikipedia.org/wiki/Gamma_distribution

em x = 0, alfa = 1, beta = 1, o numerador dá um valor indeterminado, o que traz toda a fração para a incerteza.

Afirmamos que, estritamente falando, a densidade gama da distribuição no ponto zero é indefinida. E tomando o limite à direita, a densidade é uma só.

À luz disto, acreditamos que a formulação da declaração "erros de cálculo em R" não é correcta. Mais precisamente, é uma questão de convenção: o que deve ser considerado igual à expressão zero ao poder do zero. Equalizar a densidade da distribuição gama a zero no ponto zero não parece ser nenhuma prática condicional.

Sv.

Alexey

Gamma distribution - Wikipedia
Gamma distribution - Wikipedia
  • en.wikipedia.org
Gamma Parameters Support PDF CDF Mean Median Mode Variance Skewness Excess kurtosis Entropy MGF CF With a shape parameter k and a scale parameter θ. With a shape parameter α = k and an inverse scale parameter β = 1/θ, called a rate parameter. With a shape parameter k and a mean parameter μ = k/β. In each of these three forms...
 
Alexey Burnakov:

Declarar que, estritamente falando, a densidade da distribuição gama no ponto zero é indefinida. E quando o limite da direita é tomado, a densidade é igual a um.

luz disto, pensamos que a formulação da declaração "erros de cálculo em R" não é correcta. Mais precisamente, é uma questão de convenção: do que igualar a expressão zero ao poder do zero. Equalizar a densidade da distribuição gama a zero no ponto zero não parece ser nenhuma prática condicional.

Se a densidade (pdf) for diferente de zero, então a integral (cdf) nesse ponto também deve ser diferente de zero, caso contrário não é possível zero.

> n <- 5> k <- seq(0,1,by=1/n)> gamma_pdf<-dgamma(k, 1,1, log = FALSO)> gamma_cdf<-pgamma(k, 1,1, log = FALSO)> k[1] 0,0 0,2 0,4 0.6 0,8 1,0> gamma_pdf[1] 1,0000000 0,8187308 0,6703200 0,5488116 0,4493290 0,3678794> gamma_cdf[1] 0,0000000 0,1812692 0,3296800 0,4511884 0,5506710 0,6321206

Mas cdf=0. É difícil de explicar.

Em x=0 o pdf é zero por definição:


Wolfram Alpha:

Para distribuições não centrais e centrais do qui-quadrado:


Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Quantum:

Se a densidade (pdf) for diferente de zero, então a integral (cdf) nesse ponto também deve ser diferente de zero, caso contrário não há zero.

Mas cdf=0. Isto é difícil de explicar.

Em x=0 pdf é zero por definição:


Wolfram Alpha:

Para distribuições não centrais e centrais do qui-quadrado:


É melhor dizer-nos por si mesmo o que é 0 ^ alfa - 1, quando alfa = 1.

O integral também não está lá definido.... Mas no limite, está perto de zero. Questão de convenções...

print(pgamma(q = 0.000001, shape = 1, scale = 1, log = FALSE, lower.tail = F)) #right side

print(pgamma(q = 0.000001, shape = 1, scale = 1, log = FALSE, lower.tail = T)) #left side

 
ivanivan_11:
e alguém usa volumes reais e indicadores de volume?
Ver https://www.mql5.com/ru/forum/86386/page174#comment_2911488
Машинное обучение: теория и практика (торговля и не только)
Машинное обучение: теория и практика (торговля и не только)
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...
 

para que o limite seja definido, é preciso que seja o mesmo para as abordagens esquerda e direita, mas não é o caso:

http://www.wolframalpha.com/input/?i=Limit%5BPDF%5BGammaDistribution%5B1,1%5D,x%5D,+x-%3E0%5D


Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Quantum:

para que o limite seja definido, é preciso que seja o mesmo para as abordagens esquerda e direita, mas não é o caso:

http://www.wolframalpha.com/input/?i=Limit%5BPDF%5BGammaDistribution%5B1,1%5D,x%5D,+x-%3E0%5D


Há apenas um à direita e esse é 1...

O que a Wolfram diz 0 não é a verdade em último recurso. Quero dizer que a palavra "erro" no texto é redundante...

 

Encontrei outro erro no R. R não se divide por 0 corretamente.

Aqui está o roteiro:

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property script_show_inputs

input double div = 0.0;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print(1.0/div);
  }
//+------------------------------------------------------------------+

A resposta correcta, em mql é.
divisão zero em 'test.mq5' (20,13)
com
parada de script

Incorrecto, em R:
> 1/0
Inf
com
continuação do roteiro

Quero dizer a mesma coisa que Alexey - o comportamento de programas sob condições indefinidas pode ser diferente, e não é um erro. Do jeito que a arquitetura deve ser, é assim que o resultado será.


 

Outra observação interessante. Não se pode dividir por zero. E não se pode tirar a raiz dos números negativos. Lembro-me da união que tudo isto é possível, mas não se trata disso agora, em matemática simples não se pode fazer as duas coisas.

Por que se eu dividir por 0 em mql então ele quebra todo o script e o quebra, mas se eu extrair uma raiz de um número negativo então eu recebo "-nan(ind)" sem quebrar o script, e este "-nan(ind)" pode ser usado para fazer cálculos adicionais (ele irá quebrar todos os cálculos adicionais)? Aqui é onde eu esperaria o mesmo comportamento do script mql em ambos os casos.