Indicadores: Predicción del precio mediante el método de los vecinos más cercanos

 

Predicción del precio mediante el método de los vecinos más cercanos:

Este inidcador utiliza el la técnica de clustering Vecinos Cercanos, también llamada k-NN, para encontrar el patrón más similar en la historia en el historial y utilizar los precios pasados como predicciones del patrón actual para los precios futuros.

Predicción del precio mediante vecinos cercanos

Autor: Vladimir

 

el número de pi es mejor ponerlo así.

pi = 4*MathArctan(1);
Una vez tuve la idea, y ahora te la transmito.
 
Prival:

el número de pi es mejor ponerlo así.

Me dieron el dato una vez, ahora te lo paso a ti.
Gracias, lo tendré en cuenta. Por cierto, pi no se usa ahí. Dejé esa línea por error.
 

También hay una sección Constantes matemáticas en el lenguaje MQL5:

Constantes especiales que contienen valores reservados para algunas expresiones matemáticas. Estas constantes se pueden utilizar en cualquier parte del programa mql5 en lugar de calcular su valor mediante funciones matemáticas.

Constante

Descripción

Valor

M_E

e

2.71828182845904523536

M_LOG2E

log2(e)

1.44269504088896340736

M_LOG10E

log10(e)

0.434294481903251827651

M_LN2

ln(2)

0.693147180559945309417

M_LN10

ln(10)

2.30258509299404568402

M_PI

pi

3.14159265358979323846

 
Rosh:

También hay una sección Constantes matemáticas en MQL5:


Lo que necesitas.
 
Rosh:

También hay una sección Constantes matemáticas en MQL5:


¿Estas constantes se establecen con la máxima precisión posible o no? He utilizado esta entrada porque era necesario tener la máxima precisión, de lo contrario el error acumulado
 
Prival:
¿Estas constantes están configuradas con la máxima precisión posible o no? Utilicé esta entrada porque era necesario tener exactamente la máxima precisión, de lo contrario el error se acumulaba.

Tienes que cogerlo y comprobarlo. Aquí está el script, da cinco veces 100500.

#property copyright "Copyright © 2010 Eugene Logunov (lea)"
#property version "1.00"

int CalcDifference(double approx, double exact) {
   double diff = MathAbs(approx - exact);
   if (diff == 0.0) {
      return 100500;
   }
   else {
      return (int)(-MathLog10(diff));
   }
}

void OnStart() {
   PrintFormat("%d", CalcDifference(MathExp(1.0), M_E));
   PrintFormat("%d", CalcDifference(MathLog10(MathExp(1)), M_LOG10E));
   PrintFormat("%d", CalcDifference(MathLog(2.0), M_LN2));
   PrintFormat("%d", CalcDifference(MathLog(10.0), M_LN10));
   PrintFormat("%d", CalcDifference(MathArctan(1.0) * 4.0, M_PI));
}

p.s. Si el algoritmo produce un mal resultado debido a un error en 16 decimales a la derecha del punto decimal en una constante, es obvio que no es la constante. ¿Y para qué necesitas tanta precisión de cálculo si las comillas se filtran de todos modos?

 
lea:

Tengo que coger esto y comprobarlo. Aquí está el script, da cinco veces 100500.

p.d. Si el algoritmo produce un mal resultado debido a un error en 16 decimales a la derecha del punto decimal en una constante, obviamente no es la constante. ¿Y para qué necesitas tanta precisión de cálculo si las comillas se filtran de todas formas?

Te aconsejo como programador que al menos una vez en tu vida leas sobre algoritmos iterativos, qué son y para qué sirven. Y luego redondeo http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ matemáticos rompecabezas sobre cómo hacer frente a este redondeo (para llegar a algoritmos estables), y aquí es fácil y no forzada, y por qué ...

Z.y. gracias por el consejo. Ya una vez perdí 2 semanas para comprobar https://www.mql5.com/es/code/8309 ahora no voy a pisar este rastrillo.

З.З.Ы y así ya harto de comprobar, en los cinco ya se está convirtiendo en la paranoia ...

 
Prival:

Te aconsejo, como programador, leer una vez en su vida acerca de los algoritmos iterativos, lo que son y lo que comen. Y luego redondeo http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ matemáticos rompecabezas sobre cómo hacer frente a este redondeo (para llegar a algoritmos estables), y aquí es fácil y no forzada, y por qué ...

Tuve que leer sobre todo el año pasado. Además, yo estaba haciendo alusión a la inestabilidad (al decir que no se trata de constantes).

Si usted siente la falta de precisión sólo a causa de los tipos - se puede recomendar algo como http://gmplib.org/ (por supuesto, la velocidad de los cálculos caerá).

Ya estoy harto de comprobar, en 5 se vuelve paranoico....

Siempre hay que comprobar todo lo que se pueda, aunque a veces lleve mucho tiempo. De lo contrario puede haber sorpresas.

 
lea:

Llevo un año leyendo sobre el tema. Además, estaba insinuando inestabilidad (al decir que no se trata de constantes).

Si sientes la falta de precisión sólo por los tipos, puedes recomendar algo como http://gmplib.org/ (por supuesto, la velocidad de los cálculos caerá).

Siempre hay que comprobar todo lo que se pueda, aunque a veces lleve mucho tiempo. De lo contrario, puede haber sorpresas.

No tienes ni idea de lo que he programado y das consejos. Y enseñas a una persona que empezó a programar (a juzgar por tu perfil) cuando ibas al parvulario.

No eres desarrollador, no te hice la pregunta, pero empezaste a enseñarme a comprobar el código. ¿Quieres ayudarme - darme los resultados de la precisión con que se establecen todas las constantes? Puedo comprobarlo sin consejos, sólo quiero ahorrar mi tiempo.

 
Muy bonito