Weitere Verbesserung der Handelsstrategie
Aktionsbestimmung nach Bedingungen für Handelstransaktionen
Starten Sie das EURUSD 1Std. Chart - Fenster und das “Gleitender Durchschnitt des Relativen Stärke Index” Handelssystem wieder im Demomodus, wenn Sie VT geschlossen haben, indem Sie alle Schritte durchführen:
Chart - Fenster EUR/USD 1Std - > Rechte Maustaste - > Handelssysteme hinzufügen - > Gleitender Durchschnitt des Relativen Stärke Index - > OK …
Folgen Sie diesem Pfad und stellen Sie sicher, dass gegenwärtig keine Handelssysteme eingefügt sind:
VT Navigator - > Werkzeuge - > Laufende Handelssysteme - > … - > OK…
Wir werden dem Handelsystem beibringen, Positionen zu öffnen und zu schließen, Eingabedaten zu ändern und den Alarm zu benutzen.
Sogar das beste Handelssystem der Welt weiß nichts über die speziellen Marktcharakteristika, und es weiß sicherlich auch nicht, wie es selbst arbeiten soll. Es versteht nur Logik und Mathematik. Jedoch haben die Entwickler von der VT Handelsplattform dem Handelssystem beigebracht, Positionen in passender Richtung zu öffnen. Das Handelssystem kann nur Kauf - oder Verkaufsaktionen ausführen. Beachten Sie, dass das Handelssystem eine Verkaufsposition nur bei einer „wahren“ erfüllten Bedingung öffnen kann, um eine Kaufposition zu schließen. Eine andere Verkaufsposition kann an der gleichen Stelle geöffnet werden, wenn das in der Formel so steht.
Um eine Verkaufsposition zu schließen und eine Kaufposition zu öffnen, werden zwei Kaufpositionen benötigt: eine um die bestehende Verkaufsposition zu schließen und die andere um die neue Kaufposition zu öffnen.
Lassen Sie uns das Handelssystem untersuchen, das wir mit der unteren Formel entwickelt haben.
…………………………………………………………………………………….
{Relativer Stärken Index}
RSI_r:= (CLOSE - ref(CLOSE, - 1));
RSI_rs:= Wilders(if(rsi_r> 0,rsi_r,0),14) /
Wilders(if(rsi_r<0,Abs(rsi_r),0),14);
RS:= 100 - (100/(1+rsi_rs));
{ Gleitender Durchschnitt des Relativen Stärke Index }
MA1:=MOV (RS, 10, E);
MA2:=MOV (RS, 30, E);
{Signale Long und Short}
Long:= CROSS (MA1, MA2);
Short:= CROSS (MA2, MA1);…………………………………………………………………………………….
Der erste Teil:
{ Relativer Stärken Index }
RSI_r:= (CLOSE - ref(CLOSE, - 1));
RSI_rs:= Wilders(if(rsi_r> 0,rsi_r,0),14) /
Wilders(if(rsi_r<0,Abs(rsi_r),0),14);
RS:= 100 - (100/(1+rsi_rs));
Es wird der „relative Stärke“ Indikator für das Handelssystem berechnet.
Der zweite Teil:
{ Gleitender Durchschnitt des Relativen Stärke Index }
MA1:=MOV (RS, 10, E);
MA2:=MOV (RS, 30, E);
Er berechnet zwei gleitende Durchschnitte. Der erste gleitende Durchschnitte ist MA1 mit einem 10 Tagesintervall und der zweite MA2 mit einem 30 Tagesintervall vom “relative Stärke” Indikator.
Der dritte Teil ermöglicht Handelsaktivitäten bei Kreuzungen von MA1 und MA2:
{Signale Long und Short}
Long:= CROSS (MA1, MA2);
Short:= CROSS (MA2, MA1);
Wenn der MA1 gleitende Durchschnitt MA2 übersteigt, bekommt die “Long” Variable den Wert 1. Es wird ein Symbol auf dem Chart - Fenster angezeigt (blauer Aufwärts - Pfeil).
Wenn der MA1 gleitende Durchschnitt MA2 unterschreitet, bekommt die “Short” Variable den Wert 1. Es wird ein Symbol auf dem Chart - Fenster angezeigt (roter Abwärts - Pfeil).
Wir werden sehen was passiert, wenn die Signale nicht nur auf dem Chart - Fenster angezeigt werden, sondern wenn die “Long” und “Short” Variablen Handelsaktivitäten in Pfeilrichtung ausführen.
Lasst uns der “Long” Variablen das Öffnen von Kaufpositionen und der “Short” Variablen das Öffnen von Verkaufspositionen zuweisen. Untersuchen Sie bitte sorgfältig den Indikator “Gleitender Durchschnitt des Relativen Stärke Index” unter dem Chart - Fenster:
Wenn der rote MA1 gleitende Durchschnitt den blauen MA2 gleitenden Durchschnitt kreuzt, war der “Long” Parameter für einen kurzen Zeitraum “wahr” (1) und die Kaufposition wurde eröffnet (Für den Rest der Zeit ist die Variable gleich 0).
Wenn die rote MA1 Linie unter die blaue MA2 Linie kreuzt, ist der „Short“ Parameter kurzzeitlich „wahr“ (1) und den Rest der Zeit gleich 0. Der Auftrag eine Verkaufsposition zu öffnen würde eine bestehende Kaufposition schließen, aber keine neue Verkaufsposition öffnen. Das würde gegen die Arbeitsweise des Handelssystems verstoßen.
Wir verlassen jetzt die Long - und Short - Variablen. Jetzt erstellen wir Variablen, die in der Lage sind Positionen in einer Richtung allein zu öffnen und zu schließen.
Folgen Sie dem unteren Pfad. Öffnen Sie das Popup - Fenster “Handelssysteme”, klicken Sie auf “Gleitender Durchschnitt des Relativen Stärke Index” und klicken Sie auf „Bearbeiten“. Gehen Sie in den Formelreiter:
VT Navigator - > Werkzeuge - > Handelssysteme - > Handelssysteme bearbeiten - > Gleitender Durchschnitt des Relativen Stärke Index - > Bearbeiten - > Indikatoren bearbeiten - > Formel...
Wir erstellen jetzt eine Variable, die bei einer “wahren“ Bedingung mit „OpenBuy“ eine Kaufposition auslößt und mit “CloseBuy” eine Verkaufsposition auslößt. Die vorherige Kaufposition (OpenBuy) wird wieder geschlossen.
OpenBuy:= condition ; { Anweisung zu Öffnen einer Kaufposition }
CloseBuy:= condition ; { Anweisung zu Öffnen einer Verkaufposition, die eine Kaufposition schließt, welche vorher mit OpenBuy geöffnet wurde }
Wir erstellen jetzt in gleicher Weise eine Variable, die bei einer “wahren“ Bedingung mit OpenSell“ eine Verkaufsposition auslößt und mit “CloseSell” eine Kaufsposition auslößt. Die vorherige Verkaufposition (OpenSell) wird wieder geschlossen.
OpenSell:= condition ; { Anweisung zu Öffnen einer Verkaufposition }
CloseSell:= condition ; { Anweisung zu Öffnen einer Kaufposition, die eine Verkaufsposition schließt, welche vorher mit OpenSell geöffnet wurde }
Weil die Bedingung zum Öffnen einer Position beim Long - Parameters “wahr” ist, kann die Variable wie folgt programmiert werden:
OpenBuy:= Long ; { Anweisung zu Öffnen einer Kaufsposition }
CloseBuy:= Short ; {Anweisung zu Öffnen einer Verkaufposition, die eine Kaufposition schließt, welche vorher mit OpenBuy geöffnet wurde}
Und:
OpenSell:= Short ; {Anweisung zu Öffnen einer Verkaufposition}
CloseSell:= Long ; {Anweisung zu Öffnen einer Kaufposition, die eine Verkaufsposition schließt, welche vorher mit OpenSell geöffnet wurde}
Wenn Sie das verstanden haben, fahren wir fort. Schauen Sie auf die folgende Formel, womit Positionen geöffnet werden:
{OpenBuy und CloseBuy}
OpenBuy:= Long ;
CloseBuy:= Short ;
{OpenSell und CloseSell}
OpenSell:= Short ;
CloseSell:= Long ;
Die OpenBuy und CloseSell Variablen sind gleich 1, wenn eine der Bedingungen der “Long” oder “Short” Variablen (als Beispiel wählen wir “Long”) “wahr” ist, und MA1 über MA2 kreuzt (Long:= CROSS (MA1, MA2)). OpenBuy und CloseSell müssen hierbei “Long” sein.
Aufgrund der Handelsaktivitäten wird jede eine Kaufposition geöffnet. Eine dieser Positionen ist dazu da, eine vorherige Verkaufsposition zu schließen.
Aber nehmen wir an, dass keine vorherige Verkaufsposition da ist. Das Ergebnis wird sich von dem was wir sehen unterscheiden. Zwei Position in gleicher Richtung würden geöffnet werden (in diesem Fall für das Kaufen).
Es ist notwendig, die Bedingungen der Variablen zuzuweisen, damit sie Handelsaktivitäten ausführen.
In diesem Fall:
OpenBuy:= Long ; wird nur durchgeführt, wenn “Long” “wahr” ist.
CloseBuy:= muss nicht nur “wahr” sein wenn “Short” “wahr” ist, sondern auch wenn eine Position durch die Variable OpenBuy geöffnet wurde. Die OpenBuy und CloseBuy Variablen müssen in gleicher Weise miteinander verbunden sein. Die CloseBuy Variable ist nur für das Schließen von Positionen zuständig, die vorher durch OpenBuy geöffnet wurden. Deshalb erhält CloseBuy ein Signale von OpenBuy.
Für das Verkaufen gilt das Gleiche:
OpenSell:= Long ; wird nur durchgeführt, wenn “Short” “wahr” ist.
CloseSell::= muss nicht nur “wahr” sein wenn “Long” “wahr” ist, sondern auch wenn eine Position durch die Variable OpenSell geöffnet wurde. Die OpenSell und CloseSell Variablen müssen in gleicher Weise miteinander verbunden sein. Die CloseSell Variable ist nur für das Schließen von Positionen zuständig, die vorher durch OpenSell geöffnet wurden. Deshalb erhält CloseSell ein Signale von OpenSell.
Es muss klar sein, dass die Variable OpenBuy mit CloseBuy verbunden sein muss, damit das Handelssystem richtig funktioniert. CloseBuy kann nur durchgeführt werden, wenn vorher OpenBuy “wahr” gewesen ist und eine Handelsaktivität ausgeführt wurde.
In gleicher Weise müssen wir die OpenSell Variable mit CloseSell verbinden. CloseSell kann nur durchgeführt werden, wenn vorher OpenSell vorher “wahr” gewesen ist und eine Handelsaktivität ausgeführt wurde.
Um die beiden Bedingungen miteinander zu verbinden, empfehlen wir die EventCount(“param”) Funktion. Sie gibt die Anzahl der „wahren“ Zustände laut Bedingung zurück. Sie sind nicht fallspezifisch.
EventCount(“OpenBuy”) – liefert die Anzahl an “wahren” Zuständen des OpenBuy Parameters
.
EventCount(“CloseBuy”)– liefert die Anzahl an “wahren” Zuständen des CloseBuy Parameters
EventCount(“OpenSell”) – liefert die Anzahl an “wahren” Zuständen des OpenSell Parameters
EventCount(“CloseSell”)– liefert die Anzahl an “wahren” Zuständen des CloseSell Parameters
Wir können nun folgende Änderungen bei den offenen Positionen vornehmen:
{OpenBuy und CloseBuy}
OpenBuy:= Long and (eventCount('OpenBuy')= eventCount('CloseBuy'));
CloseBuy:= Short and (eventCount('OpenBuy')> eventCount'CloseBuy'));
{OpenSell und CloseSell}
OpenSell:=Short and (eventCount('OpenSell')= eventCount('CloseSell'));
CloseSell:= Long and (eventCount('OpenSell')> eventCount('CloseSell'));Schauen Sie in die Reihe der OpenBuy Bedingung. Es wird gesagt, dass die OpenBuy Variable gleich 1 sein muss. Das bedeutet, dass eine Kaufposition nur geöffnet werden kann, wenn MA1 über MA2 kreuzt (Long=1). Die Anzahl der “wahren” Zustände von OpenBuy, muss gleich der Anzahl der “wahren” Zustände bei der CloseBuy Variablen sein.
Die Variable wird den Wert „wahr“ annehmen, wenn es Kaufpositionen gab, die durch die OpenBuy Variable geöffnet wurden und durch die CloseBuy Variable geschlossen wurden. Die MA1 Linie muss dazu die MA2 Linie kreuzen. Eine neue Position in der selben Richtung kann nicht geöffnet werden, wenn es zuletzt schon eine Position in diese Richtung gab.
CloseBuy besagt, dass die Kaufposition nur geschlossen werden kann, wenn M1 unter M2 kreuzt (Short=1). Es sollte weiterhin eine Variable geben, die durch die OpenBuy Variable erstellt wurde [eventCount('OpenBuy')> eventCount('CloseBuy')].
Nehmen wir an, dass die OpenSell Variable gleich 1 ist. Das bedeutet, dass eine Verkaufsposition nur geöffnet wird, wenn M1 unter M2 kreuzt (Short=1). Die Anzahl der “wahren” Zustände von OpenSell, muss gleich der Anzahl der “wahren” Zustände durch die CloseSell Variable sein.
Wenn MA1 und MA2 sich kreuzen, wird die Bedingung nur „wahr“, wenn Verkaufspositionen durch die OpenSell Variable geöffnet wurden und alle durch die CloseSell Variable geschlossen wurden. Eine neue Position in die selbe Richtung kann nicht geöffnet werden, wenn zuletzt schon eine Position in dieser Richtung existiert.
CloseSell besagt, dass einer Verkaufsposition nur geschlossen wird, wenn MA1 über MA2 kreuzt (Long=1). Es muss aber eine Position durch die OpenSell Variable offen sein (eventCount('OpenSell')> eventCount('CloseSell')).
Jetzt sind wir in der Lage, das Öffnen und Schließen von Positionen in der gleichen Richtung zu kontrollieren. Abschließend können wir sagen, dass der Code für das Öffnens von Positionen richtig arbeitet.
Wir empfehlen Ihnen, ein “Template” für Positionen zu benutzen, wenn Handelssysteme entwickelt werden. Ein „Template“ ist eine gewisse Vorlage von Formeln. Um die Handelssysteme in der Testphase verständlicher zu machen, empfehlen wir pro Bedingung nur eine Handelsaktivität zuzuweisen. Dadurch wird die Fehlersuche im Code des Handelssystems einfacher. Als Beispiel können wir festlegen, dass für jede getroffene Bedingung ein Symbol auf dem Chart - Fenster erscheint und eine Position geöffnet wird. Es können auch zwei Variablen erklärt werden und ihnen wird die gleiche Handelsaktivität zugewiesen. Im ersten Fall wird das Symbol nur angezeigt, wenn das Handelssystem im automatischen Modus läuft und neue Handelsaktivitäten ausgeführt werden. Im zweiten Fall wird das Symbol nur angezeigt, wenn die Bedingung für bereits laufende Handelsaktivitäten laut Formel erfüllt ist.
Prüfen und korrigieren Sie wenn es nötig ist den Code der Formel (Sie können den unteren Code einfach kopieren und einfügen) im entsprechenden Textfeld:
VT Navigator - > Werkzeuge - > Handelssysteme - > Handelssysteme bearbeiten - > Gleitender Durchschnitt des Relativen Stärke Index - > Bearbeiten - > Studies Editor - > Formel...
Folgendes sollte in dem Fenster stehen:
…………………………………………………………………………………….
{ Relativer Stärken Index }
RSI_r:= (CLOSE - ref(CLOSE, - 1));
RSI_rs:= Wilders(if(rsi_r> 0,rsi_r,0),14) /
Wilders(if(rsi_r<0,Abs(rsi_r),0),14);
RS:= 100 - (100/(1+rsi_rs));
{ Gleitender Durchschnitt des Relativen Stärke Index }
MA1:=MOV (RS, 10, E);
MA2:=MOV (RS, 30, E);
{Signal Long und Short}
Long:= CROSS (MA1, MA2);
Short:= CROSS (MA2, MA1);
{OpenBuy und CloseBuy}
OpenBuy:= Long and (eventCount('OpenBuy')= eventCount('CloseBuy'));
CloseBuy:= Short and (eventCount('OpenBuy')> eventCount('CloseBuy'));
{OpenSell und CloseSell}
OpenSell:=Short and (eventCount('OpenSell')= eventCount('CloseSell'));
CloseSell:= Long and (eventCount('OpenSell')> eventCount('CloseSell'));
…………………………………………………………………………………….
Gehen Sie auf den “Ausgabe” Reiter vom “Indikatoren bearbeiten” Popup - Fenster. Folgen Sie dem unteren Pfad, um die benötigten Aktionen den Variablen zuzuweisen.
Für die OpenBuy Variable stellen Sie das Durchführen der Handelsaktivitäten ein:
Indikatoren bearbeiten - > Ausgabe - > Neu - > Regression Line Properties - > Name - >
- > Variablen Name - > OpenBuy - >
- > Name - > Open Buy - >
- > Beschreibung - > Open Position Buy - >
- > Handeln eingeschaltet - > ON…
Gehen Sie dann auf ihre Eigenschaften beim “Handeln” Reiter. Beschreiben Sie die Kaufaktivitäten:
- > Regression Line Properties - > Handeln - > BUY…
Eine Position wird erst bei vollendeter Kerze eingegangen. Natürlich nur, wenn der Zustand am Ende des Zeitintervalls einen „wahren“ Wert hat. Diese Parameter werden in verschiedenster Weise in der Testphase des Handelssystems angepasst. Die Grundlage bildet die Volatilität der verschiedenen Zeitintervalle.
Klicken Sie auf den “OK” - Knopf. Die Aktionen für die OpenBuy Variable sind eingefügt.
- > Ok
Lassen Sie das “Indikatoren bearbeiten” Popup - Fenster geöffnet. Passen Sie in ähnlicher Weise die Aktionen für andere Variablen des Handelssystems an:
Benutzen Sie für die CloseBuy Variable folgenden Pfad:
Indikatoren bearbeiten - > Ausgabe - > Neu - > Regression Line Properties - > Name - >
- > Variablen Name - > CloseBuy - >
- > Name - > Close Buy - >
- > Beschreibung - > Close Position Buy - >
- > Handeln eingeschaltet - > ON…
Regression Line Properties - > Handeln - > SELL - >
Klicken Sie “OK”: - > Ok
Für die OpenSell Variable gilt folgendes:
Indikatoren bearbeiten - > Ausgabe - > Neu - > Regression Line Properties - > Name - >
- > Variablen Name - > OpenSell - >
- > Name - > Open Sell - >
- > Beschreibung - > Open Position Sell - >
- > Handeln eingeschaltet - > ON…
- > Regression Line Properties - > Handeln - > SELL - >
Für die CloseSell Variable gilt folgendes:
Indikatoren bearbeiten - > Ausgabe - > New - > Regression Line Properties - > Name - >
- > VariablenName - > CloseSell - >
- > Name - > Close Sell - >
- > Beschreibung - > Close Position Sell - >
- > Handeln eingeschaltet - > ON…
- > Regression Line Properties - > Handeln - > BUY - >
Schließen Sie “Indikatoren bearbeiten“ jetzt nicht. Prüfen Sie die Einstellungen bei dem “Bearbeiten” - Knopf. Prüfen Sie die Syntax. Sehr oft sind die meisten Fehler in der Syntax zu finden.
Das Handelssystem ist beinah fertig. Aber es gibt noch einige Schritte, die wir durchführen müssen. Zu Beginn des Handbuches haben wir erwähnt, dass es von Vorteil ist, die Eingabedaten anzupassen, wenn sie auf dem Chart - Fenster sichtbar sind. Das geht, ohne den „Formel“ Reiter selbst zu bearbeiten. Wir sollten diesen Teil jetzt beenden. Das wird aus ihrem Handelssystem ein funktionsfähiges Produkt machen, welches den Anforderungen der Händler entspricht.
Führen Sie die folgenden Schritte durch, und korrigieren Sie das Handelssystem.