Bewertung der Effektivität von Handelssystemen durch eine Analyse ihrer Komponenten
Einführung
Jeder Trading-Anfänger auf den Finanzmärkten begreift schnell, dass man in dieser Branche Erfolg haben kann, wenn man nur einen gewissen systematischen Ansatz hält. Ein spontanes Handeln, dies aufs Glück, systemlos, emotional durchgeführt wird, führt in der Regel nicht zu positiven Ergebnissen, oder nur zu einem kurzfristigen Erfolg, und schließlich beendet das dramatisch. Von daher jede Analyse, egal ob es eine grafische Analyse, die basierend auf Indikatoren oder auf eine andere Analyse ist, ist eine der wichtigsten Komponenten für das erfolgreiche Handeln auf den Finanzmärkten. Dieser Artikel ist zu einem gewissen Grad eine Forschung von einigen einfachen und unabhängigen Handelssystemen, enthält ihre Wirksamkeitsanalyse und Nützlichkeitsanalyse bei einer gemeinsamen Anwendung.
Die Bestimmung der Kriterien für die Bewertung der Effektivität des Handelssystems
In der Regel eine Bewertung der Wirksamkeit eines Handelssystems ist ein bestimmter Satz von definierten und spezifizierten Parametern, sowie einige der resultierenden Werte des Systems. Als eingegeben Parameter können Perioden von Indikatoren, Stop-Loss oder Take-Profit-Größen oder eine komplexere Reihe von Koeffizienten des Systems, die eine Auswirkung auf den Ein- und Ausstieg aus dem Markt haben, verwendet werden. Die resultierenden Werte sind wiederum Netto-Gewinn, Verlust, Prozentsatz der erfolgreichen Trades oder der Mittelwert der Gewinn-Trades in der Deposites-Währung.
Jedes Handelssystem im Laufe der Zeit reduziert seine Wirksamkeit, da die Art der Devisenmärkte ändert sich ständig, wird das aus den resultierenden Indikatoren deutlich. Von daher müssen die eingegebenen Systemparameter auf die ändernden Bedingungen geändert und angepasst werden. In diesem Artikel wollen wir das Konzept eines komplexen Handelssystems definieren.
Ein komplexes Handelssystem — ist eine Reihe von separaten Blöcken, die ihre eigenen Algorithmen und Parameter haben und sie arbeiten in Verbindung miteinander. Die Arbeit von jedem diesem Block, der in dem System enthalten ist, kann durch einen gegebenen Satz von Kriterien ausgewertet werden. Betrachten wir das Bewertungsschema der Systemseffektivität in Abbildung 1. Das komplexe System hat drei konstituierenden Blöcke A, B, C und jeder von ihnen hat seine persönlichen Arbeitsparameter. Die Arbeit und die Effektivität dieses Systems werden durch drei Parameter bewertet: 1, 2, 3. Im Laufe der Zeit werden die Marktbedingungen, in denen dieses System handelt, sich ändern und die Parameter 1-3 werden auf unbefriedigende Seite geändert, was zu folge signalisiert, dass es Zeit ist, um das System neuzukonfigurieren. Dies kann man mit den folgenden Methoden erfolgen:
- Starten Sie die Optimierung aller neun Parameter, um das System auf die aktuellen Marktgegebenheiten anzupassen. Diese Methode enthält jedoch Redundanz - warum alle Parameter optimieren, wenn es möglich ist, herauszufinden, welcher Block die Arbeit schlimmer macht!?
- Dementsprechend ist die zweite Methode. Es wird ein gemeinsamer Satz von Bewertungskriterien К1, К2, К3, für alle drei Systemsblöcke erzeugt, was die Arbeitseffizienz für jeden Block separat zu bewerten und zu vergleichen, ermöglicht.
Die Vorteile dieser Methode:
- Die Redundanzvermeidung. Es besteht keine Notwendigkeit in der Optimierung, wenn Blöcke hervorragend funktionieren.
- Die Überwachung des Systems. Die Parameter К1-К3 können nach einigen Zeit-Perioden gemessen werden, wodurch das Verhalten des Systems und seine Blöcke zusammen und getrennt zu verschiedenen Zeiten des Marktes (Handelssitzungen, Pressemitteilung, etc.) klargestellt werden können.
- Die Analyse der Vulnerabilität. Das ermöglicht zu bestimmen, welcher Block das gesamte System nach unten zieht, um lediglich diesen Block danach zu optimieren, zu ersetzen oder zu verbessern, und nicht das gesamte System.
in Abb.1. Das komplexe Handelssystem
Das Bewertungsbeispiel der Effektivität von einem Handelssystem durch eine Analyse seiner Komponenten
Um die Effektivität eines gesamten Handelssystems zu testen, müssen wir überprüfen, wie die Systemsblöcke getrennt voneinander und zusammenarbeiten. Das Testsystem besteht aus zwei Blöcken:
- Der Block A. Der ist auf den Signalen des standarten Indikators Parabolic SAR basierend.
- Der Block B. Der ist auf den Signalen des standarten Indikators Accelerator Oscillator(AC) basierend.
Wir werden direkt eine Reihe von Kriterien für die Bewertung dieser Blöcke definieren:
- Das Kriterium К1 - Nettogewinn.
- Das Kriterium К2 - die maximale Drawdown.
- Das Kriterium К3 - Die Gewinn-Trades (in% von allen).
Für eine vollständige Klarheit werden wir die gleichen Indikatoren wie die Parameter der Gesamteffektivität wählen:
- Der Parameter 1 - Nettogewinn.
- Der Parameter 2 — die maximale Drawdown.
- Der Parameter 3 — Die Gewinn-Trades (in% von allen).
Die Beispiele der Signale für den Markteintritt für diese Indikatoren befinden sich in der Dokumentation der standerten Bibliothek von MQL5: Signale Parabolic SAR und Signale Accelerator Oscillator (erste Bedingungen). Für jeden von ihnen werden wir die Teilnahmebedingungen beschreiben und die Bedingungen herauszufinden, unter denen sie in einem vorgegebenen Test-Intervall wirksam sind.
Alle Parameter des Tests-Expert Advisors sehen folgendermaßen aus:in Abb.2. EA-Parameter
//+------------------------------------------------------------------+ //| | //| Alexander Fedosov | //| https://www.mql5.com/ru/users/alex2356 | //+------------------------------------------------------------------+ #property copyright "Alexander Fedosov" #property link "https://www.mql5.com/ru/users/alex2356" #property version "1.00" #property strict #include "trading.mqh" input int tm = 1; //Test mode 1,2 or 3 input int SL = 40; //Stop-loss input int TP = 70; //Take-profit input bool lot_const = false; //Lot of balance? input double lt=0.01; //Lot if Lot of balance=false input double Risk=2; //The risk in the lot of the balance, % input int Slippage= 5; //Slippage input int magic = 2356; //Magic number input ENUM_TIMEFRAMES tf1 = PERIOD_H1; //Timeframe for the calculation module1 input ENUM_TIMEFRAMES tf2 = PERIOD_M5; //Timeframe for the calculation module2 input double Step = 0.02; //Step PSAR input double Mxm = 0.2; //Maximum PSAR CTrading tr(magic,Slippage,lt,lot_const,Risk,5); //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(tm<1 || tm>3) return; //--- Die Bedingungen für den Markteintritt des Moduls Parabolic SAR if(tm==1 && !tr.isOpened(magic)) { double psar[],prc[]; ArrayResize(psar,3); ArrayResize(prc,3); for(int i=0; i<3; i++) { psar[i]=iSAR(_Symbol,tf1,Step,Mxm,i); prc[i]=iClose(_Symbol,tf1,i); } if(psar[2]>prc[2] && psar[1]<prc[1] && psar[0]<prc[0]) tr.OpnOrd(OP_BUY,lt,TP,SL); if(psar[2]<prc[2] && psar[1]>prc[1] && psar[0]>prc[0]) tr.OpnOrd(OP_SELL,lt,TP,SL); } //--- Die Bedingungen für den Markteintritt des Moduls auf AC if(tm==2 && !tr.isOpened(magic)) { double ac[]; ArrayResize(ac,3); for(int i=0; i<3; i++) ac[i]=iAC(Symbol(),tf2,i); if(ac[2]>0 && ac[1]>0 && ac[1]>ac[2]) tr.OpnOrd(OP_BUY,lt,TP,SL); if(ac[2]<0 && ac[1]<0 && ac[1]<ac[2]) tr.OpnOrd(OP_SELL,lt,TP,SL); } //--- Die Bedingungen für den Markteintritt bei der Zusammenarbeit von zwei Moduls if(tm==3 && !tr.isOpened(magic)) { double psar[],prc[],ac[]; ArrayResize(psar,3); ArrayResize(prc,3); ArrayResize(ac,3); for(int i=0; i<3; i++) { psar[i]=iSAR(_Symbol,tf1,Step,Mxm,i); prc[i]=iClose(_Symbol,tf1,i); ac[i]=iAC(Symbol(),tf2,i); } if((psar[2]>prc[2] && psar[1]<prc[1] && psar[0]<prc[0]) || (ac[2]>0 && ac[1]>0 && ac[1]>ac[2])) tr.OpnOrd(OP_BUY,lt,TP,SL); if((psar[2]<prc[2] && psar[1]>prc[1] && psar[0]>prc[0]) || (ac[2]<0 && ac[1]<0 && ac[1]<ac[2])) tr.OpnOrd(OP_SELL,lt,TP,SL); } } //+------------------------------------------------------------------+
Der erste Parameter von EA ist — tm (Test mode) und kann die Werte 1, 2 oder 3 halten. Diese Werte entsprechen für drei Arbeitsarten:
- tm = 1. Der wird nur die Markteintrittsbedingungen mit dem Indikator Parabolic SAR verwendet. Die Arbeitsart nur für den Block A.
- tm = 2. Der wird nur die Markteintrittsbedingungen mit dem Indikator Accelerator Oscillator verwendet. Die Arbeitsart nur für den Block B.
- tm = 3. Die gemeinsame Arbeit beider Blöcke. Dabei arbeitet das ganze System.
Bei der Änderung des Parameters Test Mode, können wir uns interessierten Parameter erfahren: für die Blöcke A und B sind es K1-K3, für das ganze System sind es Parameter 1-3. Im Folgenden sind die Testergebnisse des Blocks auf Parabolic SAR (Bild 3), AC (Abb. 4) und ihrer gemeinsamen Arbeit (Abb. 5).
in Abb.3. Der Test des Moduls Parabolic SAR
in Abb.4. Der Test des Moduls AC
in Abb.5. Die gemeinsame Arbeit der Moduls Parabolic SAR und AC
Basierend auf den Ergebnissen von drei verschiedenen Arbeitsarten wird die Vergleichstabelle zur Verdeutlichung und zur Verfügung gestellt:
Test Mode | Nettogewinn | Profit Trades,% | Maximale Drawdown |
---|---|---|---|
1 | 27,56 | 37,91 | 32,71 |
2 | 106,98 | 39,19 | 38,94 |
3 | 167,16 | 40,64 | 18,62 |
Die Simulation der Systemsverschlechterung
Lassen Sie uns die Arbeitsparameter des Blocks A (Test Mode = 1) in Richtung ihrer Effektivität-Reduktion verändern. Dies gibt uns die Antwort auf die Frage, was mit dem System geschehen wird, falls einer seiner Blöcke sich schlecht ändert.
Um die Effektivitätgeringung des Systems zu modellieren,simulieren wir einen Parameter, der zur Arbeit des Blocks A gehört - das ist Timeframe for the calculation module1 — - die ist folgendermaßen in Abb. 6 gezeigt. Dadurch wird die Periode seiner Berechnung, die auf Basis des Parabolic SAR ist, sich ändern. Zufolge wird es auf die Markteintrittsstelle auswirken, und somit ändert es die Effektivität des gesamten Systems.
in Abb.6. Die Modellierung der Gerinnung in Systemseffektivität
in Abb.7. Das Ergebnis der Änderung von Moduls Parametern basierend auf Parabolic SAR
Zwecks der Erläuterung werden wir die beobachtete Leistung des Blocks A mit zwei unterschiedlichen Werten seiner Parameter Timeframe for the calculation module1 vergleichen:
Timeframe for the calculation module1 | Nettogewinn | Profit Trades,% | Maximale Drawdown |
---|---|---|---|
1 Hour | 27.56 | 37.91 | 32.71 |
4 Hours | 2.54 | 36.73 | 43.21 |
Dies zeigt, dass die Berechnung der 4-Stunden-Periode gab uns schlechtere Ergebnisse der Moduloperation für alle drei Bewertungskriterien. Die Testen des gesamten Systems mit absichtlich verschlechterten Werten von einem seinen Komponenten hat auch die Effektivität der Parameter 1-3 reduziert, wie in Abb. 8 gezeigt ist.
in Abb.8. Die gemeinsame Arbeit der Moduls Parabolic SAR (verschlechtert) und AC
Jetzt werden wir alle Testergebnisse zusammenfassen, um zu bestimmen, wie die Änderungen im Block A auf die Gesamteeffektivität des Systems ausgewirkt haben.
Timeframe for the calculation module1 | Nettogewinn (Modul 1) | Profit Trades,% (Modul 1) |
die maximale Drawdown,% (Modul 1) |
Nettogewinn (das System) |
Profit Trades,% (das System) |
die maximale Drawdown,% (das System) |
---|---|---|---|---|---|---|
4 Hours | 2.54 | 36.73 | 43.21 | 139.34 | 40.00 | 24.9 |
1 Hour | 27.56 | 37.91 | 32.71 | 167.16 | 40.64 | 18.62 |
Die Ergebnisse zeigten, dass die Forschung jedes Blocks getrennt im komplexen System, zwecks der Effektivität zu verbessern, aktuell und gut auf die Auswertungsparameter des gesamten Systems auswirkt. Die Thesen am Anfang dieses Artikels wurden auch bestätigt, dass diese Methode weniger redundant ist als die Optimierung des gesamten Systems als ein einzelnes Objekt; Darüber hinaus bietet diese Methode die zusätzlichen Fähigkeiten, das System zu überwachen.
Fazit
In diesem Artikel wurde die Bewertungsmethode der Effektivität von Handelssystemen durch eine Analyse ihrer Komponenten betrachtet. Auf der Grundlage des Tests und der Forschung der Blocksystems-Komponente und seiner Module, können folgende Schlussfolgerungen gezogen werden:
- Diese Bewertungsmethode ist weniger redundant als die Optimierung aller Systemparameter, die nur durch die Komponenten identifiziert werden, welche die Optimierung und Verbesserung fordern.
- Die Erstellung der Handelssystems in Form der Komponenten, mit der Verwendung der Blöcke, die von festgelegten Kriterien bewertet werden können, ermöglicht sie besser zu steuern, Schwachstellen zu erkennen und mit mehr Flexibilität zu aktualisieren.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1924
- 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.