Indikatoren: Kursprognose mit Nearest Neighbor

 

Kursprognose mit Nearest Neighbor:

Dieser Indikator verwendet die Nearest Neighbor Clustering Technik, auch k-NN genannt, um das ähnlichste Muster in der Historie zu suchen und dessen Kurse als Prognose für die Kurse des aktuellen Musters heranzuziehen.

Kursprognose mit Nearest Neighbour

Autor: Vladimir

 

die Zahl Pi ist besser so eingestellt.

pi = 4*MathArctan(1);
Ich hatte die Idee einmal, und jetzt gebe ich sie an Sie weiter.
 
Prival:

die Zahl Pi ist besser so eingestellt.

Ich habe den Tipp einmal bekommen, jetzt gebe ich ihn an Sie weiter.
Danke, ich werde das im Hinterkopf behalten. Übrigens, pi wird dort nicht verwendet. Ich habe diese Zeile aus Versehen drin gelassen.
 

Es gibt auch einen Abschnitt Mathematische Konstanten in der Sprache MQL5:

Spezielle Konstanten mit Werten sind für einige mathematische Ausdrücke reserviert. Diese Konstanten können überall im mql5-Programm verwendet werden, anstatt ihren Wert mit mathematischen Funktionen zu berechnen.

Konstante

Beschreibung

Wert

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:

Es gibt auch einen Abschnitt Mathematische Konstanten in MQL5:


Was Sie brauchen.
 
Rosh:

Es gibt auch einen Abschnitt Mathematische Konstanten in MQL5:


Sind diese Konstanten mit der maximal möglichen Genauigkeit eingestellt oder nicht? Ich habe diesen Eintrag verwendet, weil es notwendig war, die maximale Genauigkeit zu haben, da sonst der Fehler akkumulierte
 
Prival:
Sind diese Konstanten mit der maximal möglichen Genauigkeit eingestellt oder nicht? Ich habe diesen Eintrag verwendet, weil es notwendig war, genau die maximale Genauigkeit zu haben, da sich sonst der Fehler häufte.

Sie müssen es nehmen und überprüfen. Hier ist das Skript, es gibt fünf mal 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. Wenn der Algorithmus wegen eines Fehlers in 16 Dezimalstellen rechts vom Komma in einer Konstanten ein schlechtes Ergebnis liefert, ist es offensichtlich nicht die Konstante. Und wozu braucht man eine solche Rechengenauigkeit, wenn die Anführungszeichen ohnehin gefiltert werden?

 
lea:

Ich muss dies nehmen und überprüfen Sie es aus. Hier ist das Skript, es ergibt fünfmal 100500.

p.s. Wenn der Algorithmus wegen eines Fehlers in 16 Dezimalstellen rechts vom Komma in einer Konstante ein schlechtes Ergebnis liefert, liegt es offensichtlich nicht an der Konstante. Und wozu braucht man eine solche Rechengenauigkeit, wenn die Anführungszeichen ohnehin gefiltert werden?

Ich rate Ihnen als Programmierer, wenigstens einmal in Ihrem Leben über iterative Algorithmen zu lesen, was sie sind und wofür sie verwendet werden. Und dann die Rundung http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ Mathematiker rätseln, wie man mit dieser Rundung umgeht (um stabile Algorithmen zu entwickeln), und hier ist es einfach und nicht erzwungen, und warum ...

Z.y. danke für den Hinweis. Ich habe schon einmal 2 Wochen verloren, um https://www.mql5.com/de/code/8309 zu überprüfen, jetzt werde ich nicht auf diese Harke treten.

З.З.Ы und so schon krank von der Überprüfung, in den fünf ist es bereits zu Paranoia ...

 
Prival:

Ich rate Ihnen als Programmierer, einmal in Ihrem Leben über iterative Algorithmen zu lesen, was sie sind und was sie essen. Und dann die Rundung http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ Mathematiker rätseln darüber, wie man mit dieser Rundung umgeht (um stabile Algorithmen zu entwickeln), und hier ist es einfach und nicht erzwungen, und warum ...

Ich musste das alles letztes Jahr nachlesen. Außerdem habe ich die Instabilität angedeutet (indem ich sagte, dass es nicht um Konstanten geht).

Wenn Sie den Mangel an Genauigkeit nur wegen der Typen fühlen - können Sie etwas wie http://gmplib.org/ empfehlen (natürlich wird die Geschwindigkeit der Berechnungen fallen).

H.S.Y. Ich bin es schon leid, zu prüfen, in 5 wird es paranoid....

Man sollte immer alles prüfen, was man kann, auch wenn es manchmal viel Zeit kostet. Sonst kann es Überraschungen geben.

 
lea:

Ich habe im letzten Jahr darüber gelesen. Außerdem habe ich die Instabilität angedeutet (indem ich sagte, dass es nicht um Konstanten geht).

Wenn Sie den Mangel an Genauigkeit nur wegen der Typen spüren, können Sie etwas wie http://gmplib.org/ empfehlen (natürlich wird die Geschwindigkeit der Berechnungen sinken).

Sie sollten immer alles prüfen, was Sie können, auch wenn es manchmal zeitaufwendig ist. Sonst kann es zu Überraschungen kommen.

Sie haben keine Ahnung, was ich programmiert habe, und Sie geben Ratschläge. Und Sie unterrichten eine Person, die (Ihrem Profil nach zu urteilen) mit dem Programmieren begonnen hat, als Sie noch in den Kindergarten gingen.

Sie sind kein Entwickler, ich habe Ihnen die Frage nicht gestellt, aber Sie haben angefangen, mir beizubringen, wie man den Code überprüft. Willst du mir helfen - mir die Ergebnisse geben, wie genau alle Konstanten gesetzt sind? Ich kann es ohne Ratschläge überprüfen, ich will nur meine Zeit sparen.