Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 200
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Volvamos a la afirmación original sobre los errores de la R en el artículo.
Nuestra opinión sigue siendo la misma: hay errores, y fueron causados por un descuido en la aplicación.
Intentaré hacer una pregunta al equipo de soporte de R.
Y te metes en él, lo recalculas todo, te pasas unas semanas revisándolo como hizo él. Pero en cambio, ni siquiera has leído nuestro artículo.
Por nuestra parte, hicimos el trabajo. Y hemos hecho un buen trabajo. Si Wolfram tampoco es una autoridad para ti, entonces estás perdiendo el tiempo con esta forma de comunicación.
No confundas a los creadores con los usuarios, por favor.
Y te metes en él, lo recalculas todo, te pasas unas semanas volviendo a comprobarlo, como hizo él. Pero en cambio, ni siquiera has leído nuestro artículo.
Por nuestra parte, hicimos el trabajo. Y hemos hecho un buen trabajo. Si Wolfram tampoco es una autoridad para ti, entonces estás perdiendo el tiempo con esta forma de comunicación.
No confundas a los creadores con los usuarios, por favor.
Hay muchas fórmulas que suponen 0^0=1, por ejemplo la notación para polinomios y series de potencias, la aritmética de los números cardinales, el teorema del binomio, etc., todos ellos suponen 0^0=1. Por ejemplo, sustituyendo x=0 en x^0+x^1+x^2+... = 1/(1-x) muestra que 0^0 = 1.
Se puede suponer que definir una función significa especificar una forma de calcularla.
Expresión dadaAdemás, según:
https://en.wikipedia.org/wiki/Gamma_distribution
si x = 0, alfa = 1, beta = 1, se obtiene un valor indefinido en el numerador, 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 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 una práctica válida.
no se ajusta a la definición de la función porque contiene una incertidumbre en el punto x=0, como has señalado.
Si se pone la condición x>=0 en lugar de x>0 entonces no hay incertidumbre y se pueden calcular los valores con esta fórmula.
En cuanto a la práctica - Mathematica y Matlab pueden considerarse como estándares de la industria para los cálculos de ingeniería, producen 0, es decir, esa expresión sólo es válida para x>0.
Podemos suponer que definir una función significa especificar una forma de calcularla.
La expresión dada es.no es apropiado para definir una función porque contiene una incertidumbre en x=0, como has señalado.
Si se pone la condición x>=0 en lugar de x>0, no hay incertidumbre y se pueden calcular los valores con esta fórmula.
En cuanto a la práctica - Mathematica y Matlab pueden considerarse el estándar de la industria para los cálculos de ingeniería, dan 0, es decir, esa expresión sólo es verdadera para x>0.
Mathematica y Matlab pueden considerarse el estándar de la industria para los cálculos de ingeniería
Has tomado una situación para la que no hay solución, has buscado el resultado que devuelve Wolfram y has calificado de erróneos todos los demás resultados. No se trata de cálculos de ingeniería, sino de un dogma.
Podrían tomar R como referencia, y escribir sobre la búsqueda de un error en Wolfram. Supongo que si tomas todo el software de matemáticas, y los divides en dos grupos basados en lo que devuelven en esta situación - habrá una división 50%/50%, puedes añadir una docena más de software que mql sobresale en un artículo sobre mql.
Gracias por los errores mencionados enAS 243. Pero no hay que achacarlo al comportamiento de otras funciones con parámetros, para las que no hay una solución clara.
Deberías haber escrito en el artículo sobre las ventajas de mql - R tiene tal o cual función que tiene un error de 15 decimales. Y tenemos otra función en mql que es más precisa. Todo sería culto y científico, no dogmático como ahora.
Consideremos un ejemplo con los parámetros a=0,5, b=1 en el punto x=0
Si no excluimos el punto x=0, la densidad diverge y la probabilidad está bien.
Y más adelante tampoco hay ningún problema:
Resulta que al calcular la CDF R se excluye el punto x=0, el infinito ha desaparecido en alguna parte.
¡Querido colega!
Durante varias páginas se discute sobre las diferencias entre sus algoritmos y los de R en los bordes del dominio de la función. Los puntos marginales son puntos marginales y, en la práctica, las diferencias pueden despreciarse.
Pero en este caso tengo una pregunta mucho más sustancial:
¿Dónde está la documentación de todas sus funciones?
Anteriormente, pensé que tomamos su función, luego tomamos la documentación de R, ya que sus funciones son análogas, y profundizamos en las partes de la documentación de R que describen los algoritmos, o van a los enlaces proporcionados por R. R tiene una documentación y un aparato de referencia de muy alta calidad.
En el transcurso de la discusión, descubrí que sus funciones son diferentes a las de R: son otras funciones cuyos algoritmos se basan en otras fuentes. No hay nada sobre esto en el propio artículo, ni documentación. Y nos enteramos por Renat en un contexto completamente diferente.
En la práctica, podemos sacar una conclusión inequívoca de que el código no puede ser portado de R a MQL5.
Y he aquí por qué.
Tengo claro que si dice "análogo de R" y no hay documentación sobre el análogo, entonces es 100% análogo y puedo transferir fácilmente el código del intérprete al compilador sin preocuparme. Y si no es así, es suficiente para acabar con la idea de portar código de R a MQL5. Nadie quiere tener un dolor de cabeza completamente muerto cuando al transferir el código de trabajo a R se obtiene un código MQL que no funciona debido a sutilezas en la implementación de los algoritmos.
¿Dónde está la documentación de todas sus funciones?
Anteriormente, pensé que tomamos su función, luego tomamos la documentación de R, ya que sus funciones son análogas, y vamos a las partes de la documentación de R que describen los algoritmos, o van a los enlaces proporcionados por R. R tiene una documentación y un aparato de referencia de muy alta calidad.
En el transcurso de la discusión, descubrí que sus funciones son diferentes a las de R: son otras funciones cuyos algoritmos se basan en otras fuentes. No hay nada sobre esto en el propio artículo, ni documentación. Y nos enteramos por Renat en un contexto completamente diferente.
En la práctica, podemos sacar una conclusión inequívoca de que el código no puede ser portado de R a MQL5.
Y he aquí por qué.
Tengo claro que si dice "análogo de R" y no hay documentación sobre el análogo, entonces es 100% análogo y puedo transferir fácilmente el código del intérprete al compilador sin preocuparme. Y si no es así, es suficiente para acabar con la idea de portar código de R a MQL5. Nadie quiere llegar a un punto muerto completo, cuando después de la migración del código de trabajo en R se obtiene el código MQL, que no funciona debido a las sutilezas en la implementación de algoritmos.
Por el momento, las funciones se describen en el artículo https://www.mql5.com/ru/articles/2742
Considere el cálculo de una distribución normal con parámetros mu=2, sigma=1 como ejemplo:
n <- 10
k <- seq(0,1,by=1/n)
mu=2
sigma=1
normal_pdf<-dnorm(k, mu, sigma, log = FALSE)
normal_cdf<-pnorm(k, mu, sigma, lower.tail=TRUE,log.p = FALSE)
normal_quantile <- qnorm(normal_cdf, mu,sigma, lower.tail=TRUE,log.p = FALSE)
normal_pdf
normal_cdf
normal_quantile
1) El análogo de la función R dnorm() es una función:
La función calcula los valores de la función de densidad de probabilidad de la distribución normal con los parámetros mu y sigma para el conjunto de variables aleatorias x[]. En caso de error devuelve false. Un análogo de dnorm() en R.
2) Pnorma analógica:
La función calcula el valor de la función de distribución normal con los parámetros mu y sigma para el array de variables aleatorias x[]. En caso de error, devuelve false. Análogo de pnorm() en R.
3) Análogo de qnorm:
Esta función calcula los valores de la función inversa de la distribución normal con los parámetros mu y sigma para el array de valores probability[]. En caso de error, devuelve false. El análogo de qnorm() en R.
Este es un ejemplo de cómo utilizarlo:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- arrays for calculated values
double x_values[];
double normal_pdf[];
double normal_cdf[];
double normal_quantile[];
//--- prepare x values
const int N=11;
ArrayResize(x_values,N);
for(int i=0;i<N;i++)
x_values[i]=i*1.0/(N-1);
//--- set distribution parameters
double mu=2.0;
double sigma=1.0;
//--- calculate pdf, cdf and quantiles
MathProbabilityDensityNormal(x_values,mu,sigma,false,normal_pdf);
MathCumulativeDistributionNormal(x_values,mu,sigma,true,false,normal_cdf);
MathQuantileNormal(normal_cdf,mu,sigma,true,false,normal_quantile);
//--- show calculated values
for(int i=0;i<N;i++)
PrintFormat("1 %d, x=%.20e PDF=%.20e, CDF=%.20e, Q=%.20e,",i,x_values[i],normal_pdf[i],normal_cdf[i],normal_quantile[i]);
}
Resultado:
2016.11.11:56:46.413 Prueba (EURUSD,H1) 1 0, x=0.0000000000000000e+00 PDF=5.39909665131880628364e-02, CDF=2.27501319481792120547e-02, Q=0.0000000000000000e+00,
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 1, x=1.00000000000000005551e-01 PDF=6.56158147746765951780e-02, CDF=2.87165598160018034624e-02, Q=1.000000000000088818e-01
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 2, x=2.00000000000000011102e-01 PDF=7.89501583008941493214e-02, CDF=3.593031911292598098213e-02, Q=2.0000000000177636e-01
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 3, x=2.9999999999988898e-01 PDF=9.40490773768869470217e-02, CDF=4.456546247585430410108e-02, Q=3.0000000000266454e-01
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 4, x=4.00000000000000022204e-01 PDF=1.109208346794543315e-01, CDF=5.47992916995579740225e-02, Q=3.99999999911182e-01
2016.11.11:56:46.413 Prueba (EURUSD,H1) 1 5, x=5.0000000000000000e-01 PDF=1.29517595665891743772e-01, CDF=6.68072012688580713080e-02, Q=5.0000000000222045e-01,
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 6, x=5.99999999999999977796e-01 PDF=1.49727465635744877437e-01, CDF=8.07566592337710387195e-02, Q=6.0000000000310862e-01
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 7, x=6.999999999999955591e-01 PDF=1.71368592047807355438e-01, CDF=9.68004845856103440793e-02, Q=7.0000000000177636e-01
2016.11.11:56:46.413 Prueba (EURUSD,H1) 1 8, x=8.000000000000044409e-01 PDF=1.94186054983212952330e-01, CDF=1.15069670221708289515e-01, Q=8.000000000000044409e-01,
2016.11.11 11:56:46.413 Prueba (EURUSD,H1) 1 9, x=9.000000000000022204e-01 PDF=2.17852177032550525793e-01, CDF=1.356660946382671659e-01, Q=9.0000000000133227e-01
2016.11.11:56:46.413 Prueba (EURUSD,H1) 1 10, x=1.00000000000000000000e+00 PDF=2.41970724519143365328e-01, CDF=1.58655253931457046468e-01, Q=1.0000000000000000e+00,
Resultado del cálculo en R: