Startseite Technischer Indikator Beitrag

Optimierung des Cross Moving Average Indikators für MetaTrader 4

Anhang
9528.zip (6.69 KB, Herunterladen 0 mal)

Aktualisierte Version.

Siehe Beschreibung unten.



Ich glaube weiterhin an den Cross Moving Average und – als Programmierer – suche stets nach der einfachsten Lösung. Dabei bin ich auf die Aussage gestoßen: "Es gibt keine magische Einstellung für den Cross MA". Dieser Indikator testet bei jeder Änderung des Zeitrahmens oder des Symbols viele Einstellungen oder sogar bei jeder neuen Kerze. Er funktioniert, indem er die letzten 100 Kerzen "langweilig tradet" und die Einstellungen mit dem besten Erfolg auswählt. Es misst einfach den Abstand zwischen einem kurzen und einem langen Signal, als ob jemals jemand ohne Stop-Loss getradet hätte. Dabei wird der Spread berücksichtigt.

Das untere Fenster zeigt den Abstand zwischen dem kurzen und dem langen Moving Average an. Positive Werte stehen für Long-Trades, negative Werte für Short-Trades, angegeben in Pips. Mit dem "Profit Oszillator" kannst du einen Trade profitabel beenden, indem du prüfst, ob Short/Long-Trades einen maximalen Unterschied aufweisen und den Trade kurz vor dem Maximum beendest.

Die obere Linie sagt: "Profit heute mit MA 5/19 beträgt 60 Pips". Der Indikator oder der Benutzer hat 5 für den schnellen MA und 19 für den langsamen MA gewählt. Das nächste Textfeld zeigt die Ergebnisse von gestern mit dem Signal Long oder Short an. Trader können zwei Moving Averages in das Chart einfügen und diese auf den angegebenen Wert einstellen.

Ich bin auf der Suche nach weiteren MA-Empfehlungen in der Literatur.

Parameter

  • PeriodShort=6;
    Periode für den schnellen MA. Ignoriere dies, wenn Optimierung wahr ist.
  • PeriodLong=40;
    Periode für den langsamen MA. Ignoriere dies, wenn Optimierung wahr ist.
  • Method=0;
    Methode für iMA.
  • Optimize=true;
    Der Indikator wählt automatisch Werte für schnellen und langsamen MA aus.
  • DrawTriangles=true;
    Zeichne Dreiecke in das Chart.
  • MinShortMA=2;
    MaxShortMA=20;
    MaxLongMA=100;
    Min- und Max-Werte für die Optimierung; es werden Werte zwischen 2 und 20 für den schnellen MA und 7 bis 100 für den langsamen MA getestet.
  • StepLongMA=5;
    StepShortMA=5;
    Um die Suche zu beschleunigen, wird jeder dritte Wert getestet.
  • CountOptimize=200;
    Es werden 200 Kerzen aus der Vergangenheit analysiert. Je mehr Kerzen analysiert werden, desto langsamer wird es; eine große Zahl kann auch zu weniger guten Ergebnissen führen.
  • OptimizeOnNewCandle=false;
    Starte die Optimierung bei jeder neuen Kerze. Hinweis: Die Optimierung kann einige Zeit in Anspruch nehmen und dein Terminal verlangsamen.
  • Alarm=true;
    Gib ein Signal, wenn ein neues Signal erscheint.

Als nächstes möchte ich einen Expert Advisor erstellen, frage mich jedoch, wie ich einen seitwärts gerichteten Trend erkennen kann, der nicht mit dem Cross MA gehandelt werden sollte. Bisher hat mein EA, der auf dem optimierten Cross MA basiert, manchmal hervorragende Gewinne erzielt und die am nächsten Tag wieder verbrennt.

Aktualisierte Version

Neue Funktionen:



- Der Indikator zeichnet jetzt die Moving Averages im Chart, der "Profit Oszillator" ist in einem anderen Indikator (MAProfit2) enthalten; beide kommunizieren über globale Variablen.


- Unterstützt MA-Kanäle (siehe eBook unter www.vnchanger.org); der langsame Moving Average wird in zwei Linien aufgeteilt, eine für niedrige und eine für hohe Werte, um Verluste im seitwärts gerichteten Markt zu vermeiden.


- Anstatt alle Kombinationen zu testen, kann er bestimmte MA-Bereiche testen, die in der Literatur gefunden wurden. Setze dazu OptimizeAll auf false und OptimizeSystems auf true.


Du kannst die Systemtabelle hinzufügen oder ändern. Stelle sicher, dass du sie mit 0,0,0,0,0,0 beendest.



extern bool OptimizeAll=false;
extern bool OptimizeSystems=true;

int Systems[] = {PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,200,
PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,100, //
Death Cross
PRICE_MEDIAN,MODE_SMA,10, PRICE_MEDIAN,MODE_SMA,40,
PRICE_MEDIAN,MODE_SMA,13, PRICE_MEDIAN,MODE_SMA,26,
PRICE_MEDIAN,MODE_SMA,5, PRICE_MEDIAN,MODE_SMA,10,
PRICE_CLOSE, MODE_EMA,5, PRICE_OPEN, MODE_EMA,6,
PRICE_MEDIAN,MODE_SMA,3, PRICE_MEDIAN,MODE_SMA,8,

0,0,0,0,0,0};


- Neue Alarme können als Sprache ausgegeben werden. Um dies zu unterstützen, musst du gspeak herunterladen, z.B. von https://www.mql5.com/en/code/8621.



Wenn du keine Sprache möchtest, musst du den Code ändern. Entferne die Zeilen von #import "speak.dll" bis #import und entkommentiere die gSpeak-Funktion. Dank an den Autor für diese wunderbare DLL.



#import "speak.dll"
void gRate(int rate);
void gVolume(int rate);
void gPitch(int rate);
void gSpeak(string text);
#import

// wenn du die speech.dll nicht hast (oder willst), entkommentiere dies
/*
void gSpeak(string x)
{
}
*/

Wenn du die Sprache nicht entfernst, wirst du nach einem gewissen Gewinn anfangen, "Oncle Sams" Stimme zu lieben, die spricht.



- Beim ersten Start oder bei Parameteränderungen merkt er sich die Kerze beim ersten Trade, um zu vermeiden, dass alte Trades mit anderen übermalt werden.



- Die Dreiecke haben jetzt drei Farben: Grün für Long-Trades, Rot für Short-Trades und Violett für Trades mit Verlust (lang oder kurz). Die Farben können im Quellcode geändert werden:

int ColorLongTrade = MediumSpringGreen;
int ColorShortTrade = Red;
int ColorBadTrade = Violet;

- Die Schritte in der MA-Optimierung wurden auf 5 gesetzt.

- Der interne Name dieses Indikators wurde in SMA (Smart Ass ... er zeigt, wie du nachträglich hättest traden sollen) geändert.


MA Optimizer


Verwandte Beiträge

Kommentar (0)