eine Handelsstrategie auf der Grundlage der Elliott-Wellen-Theorie - Seite 259

 
cooper123 19.03.07 15:15

Vielleicht mache ich mir zu viele Gedanken, aber ich verstehe nicht, was eine Kanalüberschneidung ist.
Das Bild ist eine typische Situation, aber es gibt keine Kanalüberschneidung als solche.
Es gibt Kanäle mit unterschiedlichen Skalen. Ich verstehe nicht, wie eine Pivot-Zone durch sich kreuzende Kanäle gebildet wird.
Vielleicht kann jemand dieses Bild erklären.


Hier ist eine der typischen Umkehrzonen



Ich wollte in diesem Bereich durch die Verwendung verschiedener Farben den Anschein eines Wahrscheinlichkeitsgradienten erwecken.

ZZY Ich habe es zuerst in Paint gemacht, dann wurde es mir peinlich und ich habe es in Photoshop überarbeitet
 
<br/ translate="no"> Wenn Sie mir also die Wahl lassen, entscheide ich mich für MQL. :-))
Hier oder direkt an meine Mailbox - wie Sie wollen.
Ich danke Ihnen im Voraus.


Gut!


Der Code selbst:

//+------------------------------------------------------------------+
//|                                     Moving Average Batteruot.mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Blue
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=300, K=1;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=Open[Start+1];
	 MA[Start+2]=Open[Start+2];
	 for (i=0;i<=Start;i++) {Y[i]=Open[i];}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}	 
    for (i=Start-2;i>=0;i--) {Y[i]=MA[i];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



Sie setzen also den Indikator auf das Diagramm und arbeiten. Dies ist ein optimaler (im Sinne der Phasenverzögerung (PD)) Tiefpassfilter (LPF).
FLFPeriod ist eine natürliche Zahl im Bereich von 2 bis zu der gewünschten Zahl. Er ist für die Bandbreite des LPF verantwortlich.
K ist eine natürliche Zahl im Bereich von 1 bis zur gewünschten Zahl. Diese Variable bestimmt die Ordnung des LPF, die wiederum die Steigung des LPF bestimmt. Alle Einzelheiten zur Funktionsweise und zum Aufbau des LPF finden Sie unter dem obigen Link. Man muss bedenken, dass bei K>2 hochfrequente Obertöne SEHR stark unterdrückt werden und eine weitere Erhöhung der Ordnung keinen Sinn macht - sie führt nur zu einem großen Anstieg der FS und dem Auftreten von parasitären, schwach gedämpften Pieptönen (Gibson-Phänomen) im Ausgangspunkt (bei mir sind es 5000 Takte). Die Mittelwertbildung erfolgt anhand der Eröffnungskurse.
Aus Erfahrung habe ich festgestellt, dass es für praktische Zwecke optimal ist, K=1 zu wählen, wodurch das maximale Verhältnis zwischen Glättungsqualität und FZ erreicht wird.

 
Herzlichen Dank, Jhonny
Jetzt ist alles mehr oder weniger klar, und sogar der Einsatz von potenzieller Energie scheint vorstellbar zu sein.


Viel Glück dabei.
 
zu Neutron.
Natürlich habe ich viel in diesem Thread verpasst, aber wenn ich mir den Code des Indikators ansehe, und noch früher, wenn ich mir ansehe, was dieser Indikator zeichnet, verstehe ich nicht - was ist der Sinn?
Erstens hat dieser Mouwing die gleiche Verzögerung und keinen Vorteil gegenüber seinen Gegenspielern (er steht in der Tabelle).
Zweitens habe ich im Code des Indikators keine Hervorhebung gesehen. Ich werde jetzt die letzten 5 Seiten des Threads durchgehen, vielleicht finde ich ja die Antwort.

PS. Der Code des Indikators ist alles andere als perfekt.
 
zu Rosh

Es hängt alles davon ab, welchen Zweck Sie mit dieser oder jener LPF verfolgen. Für meinen TS ist es wichtig, einen möglichst niedrigen SPF bei maximaler Stabilität in der Filterbandbreite zu haben. Dies sind die Eigenschaften, die Butterloot-Filter erfüllen (Details unter dem obigen Link). Unten sehen Sie einen Screenshot des Terminals, auf dem zwei Muwenges laufen - Butterluot (blau) und einfache gleitende Summierung (rot).



Es ist zu erkennen, dass der Standardfilter bei größerem PZ eine geringere Qualitätsglättung aufweist, die sich in der Übertragung von Hochfrequenzkomponenten (Brüche im Diagramm) und der Unterdrückung der Niederfrequenzkomponenten des Spektrums (Fehlen von durchschnittlichen Einbrüchen und Hügeln) äußert. Speziell in meinem TS führt dies zu mehr als der Hälfte der Rentabilität. Außerdem können wir durch die Änderung des Parameters K nach eigenem Ermessen die Form der Filterbandbreite ändern, indem wir sie näher an das Ideal heranführen oder im Gegenteil in Richtung eines einfachen gleitenden Durchschnitts gehen. Stimmt, das ist ein zusätzlicher Knopf für einen wissbegierigen Geist!

P.S. Ich stimme zu, dass der Code suboptimal ist, da ich ihn selbst gekratzt habe :-)
 
Ich trinke Cognac und denke über die Harmonie des Chaos nach. :)
 
2 Neutron
Hallo Sergej! Danke für den Code, ich habe die Bilder verglichen. Ich wollte das Ergebnis veröffentlichen, aber mql4.com hatte Probleme mit dem Editor, und dann habe ich mir einen Virus eingefangen und musste die Daten reinigen und wiederherstellen. Jetzt stelle ich sie ein.


Ich weiß nicht, wie der Parameter FLFPeriod der normalen МА-Periode entspricht, deshalb habe ich für alle drei Diagramme die Periode=100 gewählt. Darüber hinaus ist K=1. Die blaue Linie ist die Butterloot MA, die rote Linie ist meine, CadetBlue ist die einfache Standard-MA.
Vielleicht wird Sie dieses Bild nicht beeindrucken, weil meine Kurve mit einer kleineren FP nicht glatt genug ist.
Ich verfolgte jedoch kein solches Ziel, sondern wollte nur "Ergebnisse melden". :-))
 
Ich weiß nicht, wie sich Ihr Parameter FLFPeriod zu einer normalen MA-Periode verhält, deshalb habe ich für alle drei Diagramme eine Periode von 100 angenommen. Außerdem ist K=1. Die blaue Linie ist die Butterloot MA, die rote Linie ist meine, CadetBlue ist die einfache Standard-MA.
Wahrscheinlich wird Sie dieses Bild nicht beeindrucken, denn mit meiner unteren FP ist die Kurve noch nicht glatt genug.


Yura, hallo!
Ehrlich gesagt, habe ich es mir nicht zur Aufgabe gemacht, den Parameter FLFPeriod mit der FLF-Bandbreite zu verknüpfen, aber das ist nicht schwer zu machen.
Es wäre interessant, Ihre Ergebnisse zu sehen, wenn die Parameter aller Filter so angepasst werden, dass die FLFs übereinstimmen.

Nachfolgend finden Sie den Code von Butterloot's LPF mit ZERO FZ!!!! :-)))
//+------------------------------------------------------------------+
//|              Moving Average Batteruot Simmetric (ЭТО ШУТКА!).mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=20, K=4;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=(Open[Start+1]+Close[Start+1]+High[Start+1]+Low[Start+1])/4;
	 MA[Start+2]=(Open[Start+2]+Close[Start+2]+High[Start+2]+Low[Start+2])/4;
	 for (i=0;i<=Start;i++) {Y[i]=(Open[i]+Close[i]+High[i]+Low[i])/4;}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}
	 Y[0]=MA[0];
	 Y[1]=MA[1]; 	 
          for (i=2;i<=Start-2;i++) {Y[i]=g*(MA[i]+2*MA[i-1]+MA[i-2])+b*Y[i-1]-ci*Y[i-2];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



VERSUCHEN SIE NICHT, MIT DIESEM CODE EINE HANDELSSTRATEGIE ZU ENTWICKELN!!!




 
2 Neutron
Ich weiß den Witz zu schätzen! :-))
Aber wie schön es aussieht!
Ich habe meinen MA-Parameter so eingestellt, dass er dem Hauptmaximum des Bildes entspricht.
Also, FLFPeriod=100, K=1, mein MA hat period=136 und die Periode für MAsimple=136.
Aus der Abbildung ist ersichtlich, dass das Zusammentreffen eines Maximums nicht unbedingt das Zusammentreffen der anderen bedeutet.


Übrigens, ich muss den Indikatorcode korrigieren. Anstelle von
MA[Start+1]=Öffnen[Start+1]; MA[Start+2]=Öffnen[Start+2];



schreiben.

MA[Start]=Open[Start]; MA[Start-1]=Open[Start-1];



 
<br/ translate="no"> Ok!

Richtiger Code:
...............................................................


Danke für den Hinweis - interessant.

Und noch etwas: Es gibt einen Fehler im Code - er überschreitet die Array-Grenzen.
Legen Sie die Größe von double MA[5003];
Y[] darf nicht platziert werden, aber lassen Sie double Y[]; wird korrekt sein.


Viel Glück!
Grund der Beschwerde: