Handelsideen basierend auf der Kursrichtung und der Bewegungsgeschwindigkeit
Einleitung
Es ist seit langem bekannt, dass wenn ein Kurs sich bewegt, alle liquiden Märkte eine Art von zyklischer Welle zeigen, die sich zuerst nach oben und dann nach unten bewegt. Man kann dies ganz klar auf Charts mit längeren Zeitrahmen sehen. Das sinusförmige Wesen spiegelt die Tatsache wider, dass der Kurs eine gewisse Beharrlichkeit hat. Sonst wäre ein Zick-Zack am Chart zu sehen: abrupte Auf- und Abwärtsbewegungen innerhalb kurzer Zeiträume. Lassen Sie uns versuchen, Gründe für dieses Phänomen zu finden sowie überlegen, wie wir es für den Handel verwenden können.
Beginn und Beharrlichkeit der Bewegung
Jede Bewegung in unserer Welt kann durch ihre Richtung, Beschleunigung und Geschwindigkeit charakterisiert werden. Dies funktioniert auch in liquiden Märkten. Dies impliziert eine wichtige Regel, die besagt, dass eine Bewegung, die sich stark in eine Richtung bewegt, niemals unsanft enden kann. Es kann mit einem Zug verglichen werden: wenn ein Zug mit voller Geschwindigkeit bremst, kann sein Bremsweg bis zu einen Kilometer lang sein.
Wann beginnt also ein Trend? Wenn aus irgendwelchen Gründen die Mehrheit der Marktteilnehmer ihre Meinung ändert, egal ob globale Veränderungen, wichtige Faktoren, die den Markt beeinflussen oder Nachrichten der Auslöser dafür sind. Dadurch bildet sich eine kollektive Meinung und der Trend entsteht. Die Marktteilnehmer sind zunehmend davon überzeugt, dass die Bewegung noch stärker und auch weiter gehen wird. Sie hat eine Richtung, eine Beschleunigung sowie eine bestimmte Geschwindigkeit, denn die großen Spieler am Markt steigen mit großen Positionen in den Markt ein. Dies ist der Punkt, wo diejenigen, die am Anfang der Bewegung eingestiegen sind und ihr einen Impuls sowie Geschwindigkeit gegeben haben, zu profitieren beginnen. Andere Händler steigen erst später und zu weniger attraktiven Kursen in den Markt ein. Aber im Gegensatz zu den ersten Händlern, versuchen sie die Richtung der Kursbewegung auszunutzen.
Der Trend endet, wenn Änderungen auftreten. Warum aber bewegt sich der Kurs immer noch in die gleiche Richtung? Wieso ändert er nicht abrupt die Richtung? Der Grund für ein solches Verhalten ist, dass diejenigen, die den Kurs zu Beginn in die gewünschte Richtung beschleunigt und bewegt haben, mit dem Schließen ihrer Positionen beginnen und somit den Trend unterdrücken. Und diejenigen, die gerade erst "auf die Welle aufgesprungen" sind, glauben immer noch, dass sich nichts geändert hat und versuchen sogar, den Preis weiter zu bewegen. Aber dieser "Zug" stoppt nicht nur. Der Kurs beginnt sich in die entgegengesetzte Richtung zu bewegen und hier endet die Geschichte.
Handelsidee und wie man nicht vom "Zug" überrollt wird
Die Idee, die Bewegung zu nutzen und Gewinn zu erzielen basiert auf der Analyse zur aktuellen Trendtiefe, d.h. die Größe und Dauer des Trends.
Um ein anschauliches Beispiel zu bieten, verwenden wir Standard-Indikatoren: RSI (Relative Stärke Index) und AC (Beschleunigung/Verzögerung).
1. Bedingungen für den Martkeintritt
Wir werden den ersten Indikator verwenden, um zu zeigen, wie weit und tief sich der Kurs bewegt hat.
Wir werden Levels platzieren, um einen Abstand und eine Tiefe zu bestimmen:
Abb. 1. RSI Oszillator Levels
Die Bewertungskriterien für die Tiefe der Kursbewegung:
- Ein Bereich zwischen 40-60 wird als flache Zone (Seitwärtszone) betrachtet. Es gibt keinen Trend, wenn sich der Kurs in dieser Zone befindet. Lassen Sie uns einen Index 0 für das Fehlen einer Bewegung mit Richtung zuordnen.
Kaufzonen bei einer Preisbewegung:
- Zone 60-70 - dies ist der mögliche Beginn einer Aufwärtsbewegung. Lassen Sie uns dieser Bewegung den Index 1 zuordnen.
- Zone 70-80 - die Aufwärtsbewegung ist deutlicher. Die Bewegung nimmt Fahrt auf. Wir ordnen ihr den Index 2 zu.
- Zone 80-90 - die Bewegung hat eine stabile Richtung. Die Geschwindigkeit hat zugenommen. Wir vergeben den Index 3.
- Zone 90-100. In der Regel ist dies eine starke Einbahnbewegung, die keine Rückschläge beinhaltet. Sehr selten. Der Index hierfür ist 4.
Lassen Sie uns nun den Index für Verkaufkurse auf gleiche Weise zuordnen:
- Zone 30-40. Die Abwärtsbewegung beginnt. Index -1.
- Zone 20-30. Die Bewegung nimmt an Fahrt auf. Index -2.
- Zone 10-20. Stabile Richtung nach unten. Index -3.
- Zone 0-10. Starke Einbahnbewegung nach unten. Index -4.
Wir können diese Bedingungen wie folgt in der MQL4 Sprache schreiben:
//--- determining buy index double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0); index_rsi = 0; if(rsi>90.0) index_rsi=4; else if( rsi > 80.0 ) index_rsi = 3; else if( rsi > 70.0 ) index_rsi = 2; else if( rsi > 60.0 ) index_rsi = 1; else if( rsi < 10.0 ) index_rsi = -4; else if( rsi < 20.0 ) index_rsi = -3; else if( rsi < 30.0 ) index_rsi = -2; else if( rsi < 40.0 ) index_rsi = -1;
Wir werden den AC-Indikator von Bill Williams für den vorgesehenen Zweck verwenden, und zwar werden wir die Geschwindigkeit und die Beschleunigung der aktuellen Bewegung messen.
Abb. 2. AC-Indikator
Bewertungskriterien für Geschwindigkeit:
Zunahme.
- Das erste Kriterium ist die aktuellen Histogramme mit den vorhergehenden zu vergleichen. Wenn das aktuelle Histogramm das vorherige übersteigt, gibt es wahrscheinlich einen Kursanstieg. Lassen Sie uns dies als Geschwindigkeitsindex gleich 1 definieren.
- Das zweite Kriterium ist der Vergleich von 3 benachbarten Balken (vom Null-Balken bis zum zweiten Balken). Wir können über eine zunehmende Beschleunigung sprechen, wenn der Wert eines jeden nachfolgenden Balkens den Wert des vorherigen Balkens überschreitet. Der Geschwindigkeitsindex ist 2.
- Es gibt einen ähnlichen Vergleich von 4 Balken, um zu überprüfen, ob jeder vorherige Balken kleiner als der nächste ist. Der Geschwindigkeitsindex ist 3.
- Der Vergleich der letzten 5 Balken unter Berücksichtigung des aktuellen, um die gleichen Bedingungen zu überprüfen. Geschwindigkeitsindex ist 4.
Abnahme.
- Ebenso. Der Vergleich des aktuellen Balken mit den vorherigen. Wenn der aktuelle Balken kleiner als der vorherige ist, ist der Geschwindigkeitsindex gleich -1.
- Der Vergleich von 3 Balken hinsichtlich der Abnahme von vorherigen zum nächsten. Index ist -2.
- Der Vergleich von 4 Balken. Index ist -3.
- Der Vergleich von 5 Balken. Index ist -4.
In MQL4 sieht dies wie folgt aus:
double ac[]; ArrayResize(ac,5); for(int i=0; i<5; i++) ac[i]=iAC(Symbol(),tf,i); index_ac=0; //--- buy signal if(ac[0]>ac[1]) index_ac=1; else if(ac[0]>ac[1] && ac[1]>ac[2]) index_ac=2; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3]) index_ac=3; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3] && ac[3]>ac[4]) index_ac=4; //--- sell signal else if(ac[0]<ac[1]) index_ac=-1; else if(ac[0]<ac[1] && ac[1]<ac[2]) index_ac=-2; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3]) index_ac=-3; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3] && ac[3]<ac[4]) index_ac=-4;
Wenn wir Indizes zur Bewegungstiefe haben und die Bewegungsgeschwindigkeit kennen, können wir einige Einstiegsbedingungen festlegen und klassifizieren.
Es gibt Optionen für den Markteinstieg:
//--- buy signal if(index_rsi==1 && index_ac>=1) //possible buy movement if(index_rsi==2 && index_ac>=1) //weak buy movement if(index_rsi==3 && index_ac==1) //weak buy movement if(index_rsi==3 && index_ac>=2) //moderate buy movement if(index_rsi==4 && index_ac>=1) //strong buy movement //--- sell signal if(index_rsi==-1 && index_ac<=-1) //possible sell movement if(index_rsi==-2 && index_ac<=-1) //weak sell movement if(index_rsi==-3 && index_ac==-1) //weak sell movement if(index_rsi==-3 && index_ac<=-2) //moderate sell movement if(index_rsi==-4 && index_ac<=-1) //strong sell movement //--- flat if(index_rsi==0)
2. Bedingungen für den Marktaustritt
Wir haben Parameter für den Einstieg festgelegt und klassifiziert. Wir werden die folgende Analogie machen, um zu erklären, wie die Marktaustrittsbedingungen gebildet wurden.
Denken Sie zum Beispiel an einen Gummiball für Kinder. Und nun lassen Sie uns überlegen, was passiert, wenn jemand diesen Ball von einer hohen Stelle in Wasser wirft. Zunächst wird er aufgrund der Erdbeschleunigung fallen und Geschwindigkeit aufnehmen. Dann schlägt er am Wasser auf. Aber er hat genug Kraft, um bis zu einer gewissen Tiefe einzutauchen und einen negativen Wert zu erreichen, während er an Geschwindigkeitkeit verliert. Anschließend wirkt sich das Prinzip des Archimedes auf ihn aus, so dass er wieder an die Oberfläche gedrückt wird.
Wir werden nun einen Drill-down für dieses Beispiel durchführen:
- Wie Sie wohl bereits verstanden haben, ist der Ball der Kurs.
- Eine Person, die den Ball wirft, stellt Marktteilnehmer dar, die den Trend starten.
- Die Schwerkraft, die die Erdbeschleunigung verursacht, repräsentiert die Händler, die auf die Kursrichtung aufgesprungen sind, nachdem der Trend begonnen hat.
- Das Wasser stellt wichtige Faktoren dar, die eine Richtungsänderung beeinflussen.
- Das Prinzip des Archimedes stellt die geschlossenen Positionen derjenigen dar, die den Trend gestartet haben.
Die zwei Hauptziele, um Gewinn zu erzielen, sind die folgenden:
- Rechtzeitig einen Moment zu bestimmen, wenn der Ball schon geworfen wurde und dann zu kaufen oder verkaufen.
- Eine Position zu schließen, wenn der Balls ins Wasser fällt und verlangsamt wird.
Es kann schwierig sein, die Dauer und die genaue Fallstrecke zu bestimmen, da wir weder eine Person sehen, die den Ball wirft, noch das Wasser in den Finanzmärkten. Wir können nur die Geschwindigkeit und Richtung des Balls sehen.
Wir haben die oben angeführten Bewertungskriterien für die Tiefe und die Geschwindigkeit der Kursbewegung betrachtet.
Jetzt werden wir die Austrittsbedingungen definieren:
//--- possible downward reversal if(index_rsi>2 && index_ac<0)
Wenn der Kurs sich lange genug nach oben bewegt hat, wird seine Beschleunigung negativ (nach unten gerichtet). Dies deutet darauf hin, dass eine Trendänderung durchaus möglich ist.
//--- possible upward reversal if(index_rsi<-2 && index_ac>0)
Ähnlich verhält es sich beim gegebenen Beispiel: der Ball fiel lange genug, aber er fiel ins Wasser und das Wasser drückt den Ball in die engegengesetzte Richtung. Es zeigt den Moment zum Schließen der Positionen.
3. Verbesserung der Effizienz hinsichtlich Ein- und Ausstieg
Es ist bekannt, dass einige Handelsindikatoren erst annehmbare Reaktionsgeschwindigkeit für eine Trendwende erreichen, wenn wir einen größeren Zeitraum verwenden. Jedoch erscheinen auch mehr falsche Signale.
Der alternative Weg ist nicht den Berechnungszeitraum nach unten zu ändern, sondern den Kurs auf mehreren Zeitrahmen zu verfolgen.
Abb. 3. Trend auf verschiedenen Zeitrahmen, basierend auf RSI und AC Signalen
Der Trend der Kursbewegung kann klar aufgrund unserer Kriterien und der RSI und AC Indikatoren in dr Abbildung gesehen werden. Lassen Sie uns einen genaueren Blick darauf werfen.
Bewegung und Geschwindigkeit bei M1: starke Bewegung, AC Index ist 4, RSI Index-Tiefe ist 2. M5 hat die gleiche Tiefe, aber die Geschwindigkeit ist gleich 1. Die gleiche Bewegung wird bei M15 ermittelt, aber sie ist weniger sichtbar als auf den kürzeren Charts. Wenn wir über den 30-Minuten und 1-Stunden-Chart sprechen, ist es beeindruckend zu sehen, dass M30 bereits ein Signal hat und H1 bereits eine Verzögerung bzw. sogar ein mögliches Signal für eine mögliche Umkehr sieht.
Dieses Beispiel gibt uns eine gewichtige Schlussfolgerung:
4. Implementierung der Handelsstrategie in Form eines Expert Advisor
Expert Advisor Code:
//+------------------------------------------------------------------+ //| tester.mq4 | //| Alexander Fedosov | //+------------------------------------------------------------------+ #property copyright "Alexander Fedosov" #property strict #include <trading.mqh> //Support library for trade operations //+------------------------------------------------------------------+ //| Parameters | //+------------------------------------------------------------------+ input int SL = 40; // Stop loss input int TP = 70; // Take profit input bool Lot_perm=true; // Lot of balance? input double lt=0.01; // Lot input double risk = 2; // Risk of deposit, % input int slippage= 5; // Slippage input int magic=2356; // Magic number input int period=8; // RSI indicator period input ENUM_TIMEFRAMES tf=PERIOD_CURRENT; // Working timeframe int dg,index_rsi,index_ac; trading tr; //+------------------------------------------------------------------+ //| Expert Advisor initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- determining variables for auxiliary class of trading functions //--- language for displaying errors, Russian of by default. tr.ruErr=true; tr.Magic=magic; tr.slipag=slippage; tr.Lot_const=Lot_perm; tr.Lot=lt; tr.Risk=risk; //--- number of attempts. tr.NumTry=5; //--- determining decimal places on the current chart dg=tr.Dig(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Main calculation function | //+------------------------------------------------------------------+ void OnTick() { depth_trend(); speed_ac(); //--- check for presence of open orders if(OrdersTotal()<1) { //--- check of buy conditions if(Buy()) tr.OpnOrd(OP_BUY,tr.Lots(),Ask,SL*dg,TP*dg); //--- check of sell conditions if(Sell()) tr.OpnOrd(OP_SELL,tr.Lots(),Bid,SL*dg,TP*dg); } //--- are there open orders? if(OrdersTotal()>0) { //--- check and close sell orders which meet closing conditions. if(Sell_close()) tr.ClosePosAll(OP_SELL); //--- check and close buy orders which meet closing conditions. if(Buy_close()) tr.ClosePosAll(OP_BUY); } } //+------------------------------------------------------------------+ //| Function for determining the trend depth | //+------------------------------------------------------------------+ void depth_trend() { //--- determining buy index double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0); index_rsi = 0; if(rsi>90.0) index_rsi=4; else if(rsi>80.0) index_rsi=3; else if(rsi>70.0) index_rsi=2; else if(rsi>60.0) index_rsi=1; else if(rsi<10.0) index_rsi=-4; else if(rsi<20.0) index_rsi=-3; else if(rsi<30.0) index_rsi=-2; else if(rsi<40.0) index_rsi=-1; } //+------------------------------------------------------------------+ //| Function for determining the trend speed | //+------------------------------------------------------------------+ void speed_ac() { double ac[]; ArrayResize(ac,5); for(int i=0; i<5; i++) ac[i]=iAC(Symbol(),tf,i); index_ac=0; //--- buy signal if(ac[0]>ac[1]) index_ac=1; else if(ac[0]>ac[1] && ac[1]>ac[2]) index_ac=2; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3]) index_ac=3; else if(ac[0]>ac[1] && ac[1]>ac[2] && ac[2]>ac[3] && ac[3]>ac[4]) index_ac=4; //--- sell signal else if(ac[0]<ac[1]) index_ac=-1; else if(ac[0]<ac[1] && ac[1]<ac[2]) index_ac=-2; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3]) index_ac=-3; else if(ac[0]<ac[1] && ac[1]<ac[2] && ac[2]<ac[3] && ac[3]<ac[4]) index_ac=-4; } //+------------------------------------------------------------------+ //| Function for checking buy conditions | //+------------------------------------------------------------------+ bool Buy() { bool res=false; if((index_rsi==2 && index_ac>=1) || (index_rsi==3 && index_ac==1)) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking sell conditions | //+------------------------------------------------------------------+ bool Sell() { bool res=false; if((index_rsi==-2 && index_ac<=-1) || (index_rsi==-3 && index_ac==-1)) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking buy position closing conditions | //+------------------------------------------------------------------+ bool Buy_close() { bool res=false; if(index_rsi>2 && index_ac<0) res=true; return (res); } //+------------------------------------------------------------------+ //| Function for checking sell position closing conditions | //+------------------------------------------------------------------+ bool Sell_close() { bool res=false; if(index_rsi<-2 && index_ac>0) res=true; return (res); }
Wir haben eine kleine Optimierung mit nur zwei Parametern durchgeführt: tf (Arbeitszeitrahmen) und period (RSI-Indikator Periode).
Und wir haben folgende Ergebnisse bei M15 erhalten:
Abb. 4. Die Expert Advisor Backtesting-Ergebnisse
Fazit
Das Bestimmen des Anfangs und des Endes eines Trends ist für Händler auf der ganzen Welt eine komplizierte Aufgabe, da es unmöglich ist, das Marktverhalten vorherzusagen.
Aber es ist durchaus möglich, die Ein- und Ausstiegsmomente bei einem aktuellen Trend zu bestimmen und so beträchtliche Gewinne zu lukrieren. Und die allgemeine Idee der Bestimmung und der dynamischen Verfolgung der Bewegungsgeschwindigeit kann in dieser Angelegenheit sehr hilfreich sein.
Wir wünschen Ihnen einen erfolgreichen Handel.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1747
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.