Hilfe beim Schreiben einer linearen Regression - Seite 2

 
kvn писал (а): WO LIEGT ALSO DER FEHLER [...] ???????
DNA?
 
kvn:
Ich werde mich nicht über LR streiten. WO LIEGT ALSO DER FEHLER IM INDIKATOR CODE???????
Wer zum Teufel weiß das schon. Keiner weiß, welchen Algorithmus Sie zu implementieren versuchen. Schreiben Sie zuerst eine Idee, dann Formeln und dann eine Erklärung - dieses Stück Code macht dies und das. Und niemand wird es erraten.
 
wieder einmal
wie LR berechnet wird
//Der Indikator wird nach folgender Formel berechnet: LR = at+b
//wobei LR - prognostizierter "durchschnittlicher" Schlusskurs,
//t - Zeitpunkt, (n1 Variable im Indikator)Pt - Schlusskurs der letzten n Perioden.(Close[n2])
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - Winkeltangente der Regressionsgeraden,
//b = 1/n*(SUMM(Pt) - a*SUMM(t)), - horizontale Verschiebung}

Indikatorcode oben.

Er rechnet von n=1 bis 100 falsch, gibt dann n=22 aus und das Ergebnis ist richtig, ich denke, die Schleife ist falsch geschrieben, aber ich weiß nicht, wo.
 
Es scheint unsynchronisiert zu sein. Für bar n x braucht es nn, wobei der Index für y ist
n2=n+n1-1 = n+nn-1
Es gibt viele Regressionsindikatoren in der Nähe, z. B. https://forum.mql4.com/ru/10446/page39, wenn Sie nach allen suchen, ist es besser, vom Ende her zu suchen.
 
Ich kann nur eine Formel ableiten:
 
lna01:
Es scheint unsynchronisiert zu sein. Für den Balken n dauert x nn, wobei der Index für y ist
n2=n+n1-1 = n+nn-1

Und im Allgemeinen
es gibt zahlreiche Regressionsindikatoren in der Nähe, z. B.
https://forum.mql4.com/ru/10446/page39, wenn Sie nach allen suchen.
ist es besser, am Ende anzufangen.


n1 ist nicht gleich nn, sondern variiert von 1 bis nn - der Periode des Indikators.
und n - Anzahl der neu zu berechnenden Balken (um schneller arbeiten zu können, ohne den gesamten Schweif zu ziehen)

Im Allgemeinen handelt es sich bei https://forum.mql4.com/ru/10446/page39 nicht um eine lineare Regression, sondern um eine Ableitung des MA.
 
kvn:
lna01:
Es scheint unsynchronisiert zu sein. Für den Balken n dauert x nn, wobei der Index für y ist
n2=n+n1-1 = n+nn-1

n1 ist nicht gleich nn, sondern variiert von 1 bis nn - Periode des Indikators.
und n ist die Anzahl der neu zu berechnenden Balken (um schneller zu arbeiten und nicht den ganzen Schweif zu ziehen)

Im Allgemeinen handelt es sich bei https://forum.mql4.com/ru/10446/page39 nicht um eine lineare Regression, sondern um eine Ableitung des MA.
Nun, was soll's, nehmen wir an, die LR wird absichtlich um einen Punkt verschoben. Ich schlage Folgendes vor: Ersetzen Sie den komplizierten Ausdruck
b=(1/nn)*(ssm3-a*ssm2);
ersetzen durch
b=(1.0/nn)*(ssm3-a*ssm2);
(der Hauptfehler lag hier).
Und wenn die Verschiebung nicht benötigt wird, ersetzen Sie durch
LR=a*nn+b;
zu
LR=a+b;
Vergleichen Sie anschließend die von diesem Indikator gezeichnete Kurve mit der von at_LR0. mq4 und versuchen Sie herauszufinden, warum es sich nicht um eine Ableitung des MA handelt und wie man den Schwanz korrekt entfernt.

P.S. Um sich nicht mit den Parametern herumzuschlagen, lassen Sie die Indikatoren auf dem Stundenchart platzieren und setzen Sie die Periode Ihres Indikators auf eine weitere.
 
(der Hauptfehler lag hier).
Vielen Dank für den Tipp, das hätte ich nicht gedacht, schade, dass es nicht im Sprachhandbuch steht.
Es stellt sich heraus, dass immer dann, wenn eine der Variablen eine ganze Zahl ist, die Konstante als Bruchzahl geschrieben werden muss. Ich werde das im Hinterkopf behalten.
Und ob DR oder nicht, das ist eine private Angelegenheit.
Setzen Sie meinen Indikator auf das Diagramm und achten Sie auf die Wendepunkte der Linie. Es ist immer das Ende des Trends und kein schlechter Ausstiegspunkt.
Und der Schnittpunkt mit dem MA (beliebig) ist auch schön.

Ich wäre sehr dankbar für Informationen darüber, wie man den Indikator schneller machen kann, wie man die MT-Geschwindigkeit erhöhen kann.
Und vielleicht weiß jemand, wo die Informationen über die Ausführungsgeschwindigkeit der verschiedenen MT-Operatoren zu finden sind (z. B. wie viele Taktzyklen in den verschiedenen Operatoren der Schleife ausgeführt werden).
 
kvn:
(der Hauptfehler lag hier).
Vielen Dank für den Tipp, das hätte ich nicht gedacht, schade, dass es nicht im Sprachenhandbuch steht.
Es stellt sich heraus, dass immer dann, wenn eine der Variablen eine ganze Zahl ist, die Konstante als Bruchzahl geschrieben werden muss. Ich hab's.
Wenn Sie sich auf das Casting beziehen, ist es in MQL4 und in allen anderen Programmiersprachen beschrieben.
 
kvn:
Außerdem wäre ich sehr dankbar für Informationen darüber, wie man die Drehscheibe schneller machen kann, wie man die MT-Geschwindigkeit erhöhen kann.
Und weiß jemand, ob es Informationen über die Ausführungsgeschwindigkeit der verschiedenen MT-Anweisungen gibt (z. B. wie viele Taktzyklen die verschiedenen Anweisungen ausgeführt werden)?
Wie bei MT ist es für den Benutzer sinnvoll, die Anzahl der Indikatorpuffer zu minimieren. Die Ausführungsgeschwindigkeiten der Operatoren werden normalerweise unabhängig voneinander mit den Operatoren Print und GetTickCount erlernt. Es wäre allerdings zu begrüßen, wenn jemand dies aufarbeiten und einen Artikel veröffentlichen würde.