Dialog des Autors. Alexander Smirnow. - Seite 14

 
Yurixx:
Privatperson:

Aber die ÖVAG hat zuerst einen Indikator gepostet, ihn dann durch einen anderen ersetzt (ich habe alles gesehen :-) ), und den dritten gepostet, aber schon ein Experte. Und ich kann immer noch nicht das bewegte Bild sehen, das mich davon überzeugen wird, dass der Mathematiker recht hat. Der hartgesottene Militär ist so "dumm" :-) auf den blinden Glauben nicht angewiesen :-)


Ich weiß nicht, Sergey, warum du bewegte Bilder brauchst, aber ich kann dir einen Indikator mit 2 Zeilen machen. Eine LRMA, die andere 3*LWMA-2*MA. Sie überlagern sich vollständig, d. h. eines der beiden Elemente wird durch das andere nicht sichtbar. Wenn man die Farbe des anderen ausschaltet, sieht man den ersten. Sie schalten die Farbe ein - Sie sehen nur die andere.

Ich würde Ihnen auch einen Gleichwertigkeitsnachweis schicken, er ist kurz - nur ein Dutzend Zeilen. Sie stützt sich jedoch auf Formeln, die analytisch abgeleitet werden, um eine lineare Regression durchzuführen. Nun, nicht alles in Zahlen zu zählen, und wenn möglich, endliche Formeln zu verwenden - je weniger Zyklen, desto schneller wird gezählt. Aber das ist eine ziemlich lange Berechnung, ich will nicht in Word herumpfuschen.


Danke. Ich werde versuchen, es selbst zu tun. Ich brauche eine Ablenkung. Ich habe endlich den Kalman-Filter fertiggestellt. Aber ich konnte es seit einer Woche nicht mehr auf dem Testgerät laufen lassen. Ich habe Angst, wenn es funktioniert :-(. Ich suche nach Fehlern und versuche, die Daten besser aufzubereiten und die Vorhersage noch genauer zu machen. Es funktioniert in Matkadec, aber ich habe Angst, es im Testprogramm laufen zu lassen.

 
VBAG:
Wenn Sie einen schlankeren Algorithmus für die Berechnung der Striche oder der Regression haben, wäre es sehr interessant, einen Blick darauf zu werfen!

Algorithmen sind zu laut, um sie zu nennen, aber ich kann Ihnen eine Idee geben. Das Prinzip ist einfach: Sie gewinnen bei der Geschwindigkeit, Sie verlieren beim Gedächtnis. Da die erste mehr benötigt wird, laden wir den Speicher.

Zum Beispiel ein einfacher SMA. Der eingebaute Algorithmus muss universell sein und unabhängig vom Kontext überall rechnen. Und Sie können die Ergebnisse früherer Berechnungen in Ihrem eigenen Programm verwenden. Um den neuen SMA-Wert zu berechnen, wird die Summe der vorherigen N Kurswerte genommen, der erste davon abgezogen und der neue, aktuelle Wert addiert. Diese Summe wird dann durch N geteilt. Daher sollten wir die variable Summe der vorherigen N Preise und das Array dieser N Preise einholen und die Summe und das Array bei jedem Balken aktualisieren. Um den SMA für jeden Balken zu berechnen, müssen wir also 3 Operatoren ausführen: die Summe aktualisieren, das Array-Element aktualisieren und den SMA-Wert berechnen. Keine Schleifen.

 
Prival:

Aber ich habe es seit einer Woche nicht mehr auf dem Testgerät laufen lassen können. Ich fürchte, es könnte funktionieren:-( .


Ja, auch das kommt vor. :-))
 
LeoV schrieb:
Hier ist zum Beispiel JMA und SSA mit einem Zeitraum von 50. Aber ich habe CSSA auf der Grundlage von SSA, aber nicht neu gezeichnet. Sehr schnell. Ich empfehle diesen Algorithmus.....

Off-topic, natürlich, aber immer noch interessant - LeoV, könnten Sie mir ein Bild von CSSA Cycles Indikator der gleichen Entwickler (sieht sehr gut auf Aktien) ? Ich möchte sehen, wie es bei den Devisenkursen aussieht.
 
Yurixx:
Eine solche Methode ist wahrscheinlich sinnvoll, aber nur, wenn die Zeiträume kurz sind, und das Gedächtnis ist nicht der Hauptgrund. Durch einen Reset verlieren wir das, was wir hinter uns herziehen. Das ist großartig. Danke für die Antwort.
 
Prival:

Der Kalman-Filter ist endlich fertig.

Ich habe gehört, dass Sie das Kalman-Thema vorantreiben. Diese Diskussion habe ich aus irgendeinem Grund verpasst. Wo kann ich sie sehen?

P.S. Ich habe eine Datei zu diesem Thema beigefügt - vielleicht ist jemand daran interessiert.
 
Ja, wenn man sich selbst als Feigling bezeichnet, kommt man in die Kiste. OK, Sergey, hier ist ein Beweis (ich brauche ihn sowieso, für mein eigenes Vertrauen):

Wir haben Zeitproben - t = 1, 2, ... N. Die Nummerierung ist in MQL4 umgekehrt, d.h. N ist der aktuelle Takt, "Null". Diese Lesarten entsprechen der Klausel Сlose(1), Сlose(2), ... Сlose(N). Versuchen wir, eine gerade Linie y = A*t+B zu konstruieren, die durch die Kreuzungen von MNC verläuft. Dann berechnen wir A*N + B, d.h. LRMA zum aktuellen Takt.

Wir berechnen die Summe der Fehlerquadrate:

Delta^2 = Summe( ( y(i) - Close(i) )^2; i = 1..N ) = Summe( ( A*i + B - Close(i) )^2; i = 1..N )

Wir differenzieren diesen Stoff durch A und B und erhalten ein Gleichungssystem für optimale Quotienten von A und B:

Summe( ( ( A*i + B - Close(i) ) * i ); i = 1...N ) = 0
Summe( A*i + B - Close(i) ); i = 1...N ) = 0

Erweitert man die Summen, erhält man (zur Vereinfachung der Schreibweise lasse ich die Indexbereiche weg)

A*Summe( i^2 ) + B*Summe( i ) = Summe( i*Schluss(i) )
A*Summe( i ) + B*Summe( 1 ) = Summe( Close(i) )

Prival, schauen Sie sich jetzt die rechten Seiten an. Die Summe auf der rechten Seite der ersten Gleichung entspricht fast der LWMA, nur ohne den Normierungsfaktor. Im zweiten Fall handelt es sich um SMA, auch ohne SMA. Hier sind die genauen Formeln für diese Skalen:

LWMA = 2/(N*(N+1)) * Summe( i*Schluss(i) )
SMA = 1/N * Summe( Close(i) )

Erinnern Sie sich nun daran, was die Summe der Quadrate der natürlichen 1 bis N ist (N*(N+1)*(2*N+1)/6), setzen Sie sie in unser System ein und wir erhalten:

A * N*(N+1)*(2*N+1)/6 + C * N*(N+1)/2 = LWMA * N*(N+1)/2
A * N*(N+1)/2 + C * N = SMA * N

Vereinfachen:

A * (2*N+1)/3 + C = LWMA
A * (N+1)/2 + C = SMA

Ich werde das System nicht lösen, ich bin zu faul (das ist hier schon klar). Ich multipliziere einfach die erste Gleichung mit 3 und die zweite mit 2 und subtrahiere dann die zweite von der ersten:

A * (2*N+1) + 3 * C - A * (N+1) - 2 * C = 3 * LWMA - 2 * SMA

Auf der linken Seite bleibt nach der Vereinfachung A*N + B übrig, also genau unsere Regression im Punkt N.
 
Alexey! Nochmals Respekt! Ich habe mich gefragt, woher das "/6" in meiner LRMA-Formel (ich sollte sagen: Omegas) kommt!
 
VBAG:
Diese Methode ist wahrscheinlich sinnvoll, aber nur, wenn die Zeiträume klein sind, und der Speicherplatz ist nicht der Hauptgrund. Bei einem Neustart geht das, was wir hinter uns herziehen, verloren. Aber toll, danke für die Antwort.


Diese Methode ist für alle Zeiträume geeignet. Wenn Sie neu starten, ist natürlich alles verloren. Beim Start können wir jedoch immer zuerst diesen einfachen Algorithmus durch das gesamte Diagramm laufen lassen, um die notwendigen Informationen zu erhalten. Es ist auch möglich, nicht das gesamte Diagramm, sondern nur einen ausreichenden Teil davon zu untersuchen.

Diese Methode hat nur einen Nachteil - anstelle einer iMA müssen Sie eine Reihe von Codezeilen von Hand schreiben. :-)

 

Alexej, ich danke dir. Ich setze mich mit einem Bleistift hin. Die Ableitungen von A und B sind wie folgt


Ich habe die Antwort noch einmal überprüft: Ja, A*N+B=3*LWMA-2*SMA

obwohl der Mathematiker bei der Ableitung eine Zwei verpasst hat.

und ich habe einige Zweifel, dass sie nicht im Punkt N, sondern im Punkt (N-1)/2 übereinstimmen sollten. Bulaschew S.156. Es scheint so. Hier ist ein Bild, das am Punkt N übereinstimmt. Ich liege also ziemlich falsch.

Grund der Beschwerde: