Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 197

 
ivanivan_11:
Sólo me pregunto: ¿se toman aquí sólo los valores de los precios y los diferentes indicadores de los precios como predictores? y ¿alguien utiliza los volúmenes reales y los indicadores de los volúmenes?

Trabajo con precios, sin volumen.

Intenté utilizar los volúmenes y sus indicadores, pero no funcionó. En forex no hay volúmenes reales, pero hay ticks, que parecen corresponder un poco a los reales, es decir, en principio se pueden probar. Pero el problema es que el historial de barras y ticks del broker contiene algunos volúmenes de ticks"no tan". Mientras el símbolo se encuentra en la plaza del mercado en el terminal en funcionamiento - hay un historial correcto de volúmenes de ticks para él. Si el símbolo se retira de la wotch o el terminal se cierra - los volúmenes de los ticks para estas barras se tomarán tal y como los da el broker. Y estos dos valores, "tecleado por el terminal" y "recibido del corredor" son completamente diferentes, a veces diez veces. Ahora necesito mantener el terminal en funcionamiento durante un par de meses para obtener los volúmenes de ticks reales, no los que me da el broker, luego puedo intentar utilizarlos de nuevo.

 
Dr.Trader:

Trabajo con precios, sin volumen.

Intenté utilizar los volúmenes y sus indicadores, pero no funcionó. En forex no hay volúmenes reales, pero hay ticks, que parecen corresponder un poco a los reales, es decir, en principio se pueden probar. Pero el problema es que el historial de barras y ticks del broker contiene algunos volúmenes de ticks"no tan". Mientras el símbolo esté en la plaza del mercado en el terminal en funcionamiento - para él se recoge el historial correcto de los volúmenes de ticks. Si el símbolo se retira de la wotch o el terminal se cierra - los volúmenes de ticks para estas barras se tomarán como los que da el broker. Y estos dos valores, "tecleado por el terminal" y "recibido del corredor" son completamente diferentes, a veces diez veces. Ahora tengo que mantener el terminal en funcionamiento durante un par de meses para conseguir volúmenes de ticks reales y no los del broker y entonces podré intentar utilizarlos de nuevo.

no sé por qué son tan extremos, pero no hablo de exóticos como Brasil, Sudáfrica, Polonia, Oceanía.
 
Renat Fatkhullin:

Para obtener información sobre el lenguaje R y el nuevo MetaTrader 5 build 1467:

  • Se ha publicado una versión actualizada de bibliotecas estadísticas similares a R:

    Distribuciones estadísticas en MQL5 - tome lo mejor de R y hágalo más rápido

  • Los cálculos en MQL5 son de 3 a 7 veces más rápidos que en R (incluso teniendo en cuenta que las funciones allí están implementadas en C++).
  • Algunas funciones de R tienen errores debido a los antiguos métodos de optimización/simplificación, lo que lleva a resultados erróneos
  • Se ha añadido una versión beta de librerías gráficas similares a las de R, que ofrece la posibilidad de visualizar los datos como en R.
  • Se ha añadido la práctica función ArrayPrint, que imprime tanto matrices como estructuras estándar como en R


Puede actualizar a 1467 desde el servidor MetaQuotes-Demo.

En las próximas versiones se añadirán muchas nuevas funciones matemáticas y estadísticas similares a las de R. Esto permitirá más cálculos y visualización directamente en MetaTrader 5.

¡Querido Renat!

Permítanme responder al comentario sobre el punto 6. Los errores de cálculo detectados en R en el enlace citado:Distribuciones estadísticas en MQL5 - tomar lo mejor de R y hacerlo más rápido

Se ha realizado la comprobación de la función Gamma. Dejaremos la comprobación del resto de las funciones a su propia responsabilidad.

En nombre del departamento de Ciencia de Datos, representado por el gerente y dos estadísticos (puedo informarle por MP) le informamos que la densidad de la distribución gamma en el punto cero no se reduce a cero, estrictamente hablando.

R estima efectivamente que la densidad en el punto cero es 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

Sin embargo, podemos ver que cuando x tiende a cero, la densidad se acerca a la unidad.

Además, según:

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

en x = 0, alfa = 1, beta = 1, el numerador da un valor indeterminado, lo que hace que toda la fracción entre en incertidumbre.

Afirmamos que, en sentido estricto, la densidad gamma de la distribución en el punto cero es indefinida. Y tomando el límite de la derecha, la densidad es igual a uno.

A la luz de esto, creemos que la formulación de la afirmación "errores de cálculo en R" no es correcta. Más concretamente, se trata de una cuestión de convención: lo que debe considerarse igual a la expresión cero a la potencia de cero. Igualar la densidad de la distribución gamma a cero en el punto cero no parece ser ninguna práctica 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, en sentido estricto, la densidad de la distribución gamma en el punto cero es indefinida. Y cuando se toma el límite de la derecha, la densidad es igual a uno.

A la luz de esto, creemos que la formulación de la afirmación "errores de cálculo en R" no es correcta. Más concretamente, se trata de una cuestión de convención: que equiparar la expresión cero a la potencia de cero. Igualar la densidad de la distribución gamma a cero en el punto cero no parece ser ninguna práctica condicional.

Si la densidad (pdf) es distinta de cero, entonces la integral (cdf) en ese punto también debe ser distinta de cero, de lo contrario no es posible el cero.

> n <- 5> k <- seq(0,1,by=1/n)> gamma_pdf<-dgamma(k, 1,1, log =FALSE) > gamma_cdf<-pgamma(k, 1,1, log = FALSE)> k[1] 0,0 0,2 0,4 0.6 0.8 1.0> gamma_pdf[1] 1.00 00000 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

Pero cdf=0. Es difícil de explicar.

En x=0 el pdf es cero por definición:


Wolfram Alpha:

Para distribuciones chi-cuadrado no centrales y centrales:


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:

Si la densidad (pdf) es distinta de cero, entonces la integral (cdf) en ese punto también debe ser distinta de cero, de lo contrario no hay cero.

Pero cdf=0. Esto es difícil de explicar.

En x=0 el pdf es cero por definición:


Wolfram Alpha:

Para distribuciones chi-cuadrado no centrales y centrales:


Será mejor que nos diga usted mismo qué es 0 ^ alfa - 1, cuando alfa = 1.

La integral tampoco está definida allí.... Pero en el límite se acerca a cero. Cuestión de convenios...

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:
y ¿alguien utiliza volúmenes reales e indicadores de volumen?
Ver https://www.mql5.com/ru/forum/86386/page174#comment_2911488
Машинное обучение: теория и практика (торговля и не только)
Машинное обучение: теория и практика (торговля и не только)
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...
 

para que el límite esté definido, tiene que ser el mismo para los enfoques izquierdo y derecho, pero no es el 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 el límite esté definido, tiene que ser el mismo para los enfoques izquierdo y derecho, pero no es el caso:

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


Sólo hay uno a la derecha y es 1...

Lo que dice Wolfram 0 no es la verdad en última instancia. Quiero decir que la palabra "error" en la redacción es redundante...

 

He encontrado otro error en R. R no divide por 0 correctamente.

Aquí está el guión:

//+------------------------------------------------------------------+
//|                                                         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);
  }
//+------------------------------------------------------------------+

La respuesta correcta, en mql es.
división cero en 'test.mq5' (20,13)
con
parada del script

Incorrecto, en R:
> 1/0
Inf
con la
continuación del guión

Me refiero a lo mismo que Alexey - el comportamiento de los programas en condiciones indefinidas puede ser diferente, y no es un error. Tal y como se supone que es la arquitectura, así será el resultado.


 

Otra observación interesante. No se puede dividir por cero. Y no se puede sacar la raíz de los números negativos. Recuerdo de la uni que todo esto es posible, pero ahora no se trata de eso, en las simples matemáticas no se pueden hacer las dos cosas.

¿Por qué si divido por 0 en mql entonces se rompe todo el script y lo rompe, pero si extraigo una raíz de un número negativo entonces obtengo "-nan(ind)" sin romper el script, y este "-nan(ind)" puede ser usado para hacer más cálculos (romperá todos los cálculos posteriores)? Aquí es donde yo esperaría el mismo comportamiento del script mql en ambos casos.