Ema Cross! - Seite 20

 

EMA Kreuztester

Hallo Codersguru!

Zuerst möchte ich mich bei euch für die tollen MT-Lernkurse bedanken. Ohne sie wüsste ich nicht, wie ich mql so schnell gelernt hätte. Du bist der MANN!!

Kürzlich habe ich ea's programmiert, um in der Lage zu sein, in einer Vielzahl von verschiedenen Möglichkeiten zu handeln, so dass ich in der Lage bin, ea's auf einem Live-Konto zu testen, während ich mehrere Einstellungen auf dem gleichen Paar und dem gleichen TF laufen lasse. Ich liebe die EMA-Idee, und ich habe einen EA programmiert, der Ihre Kriterien verwendet. Diese Version wird in der Lage sein, fast unbegrenzt Instanz des EA mit verschiedenen Einstellungen auf dem gleichen TF/PAIR oder jede Kombination zu handeln. Das Programm setzt eine GlobalVariable in MT und verwendet sie, um eine eindeutige ID zu erstellen, die dann in den Kommentar der geöffneten Trades eingefügt wird. Der EA verarbeitet dann Aufträge auf der Grundlage dieser eindeutigen ID.

Zusätzlich habe ich eine Funktion hinzugefügt, um eine csv-Datei zu schreiben, die einer Handelsabrechnung ähnelt und die Einstellungen enthält, die zum Zeitpunkt des Tests (Ordner expert/files) vorhanden waren. Nach dem Handel auf diese Weise gibt es eine Menge von Trades aus all den verschiedenen EA's so im Wesentlichen ist dies, wo Sie gehen, um die genaue Handel stmnts zu erhalten.

Nach dem Auspacken sollte es genau wie V2 funktionieren. Es gibt einige zusätzliche Funktionen, die ich hinzugefügt habe, falls jemand live gehen möchte.

Ich bin für alles dankbar und bin neugierig, was ihr darüber denkt!

Nic

 
hellkas:
Hallo Hendrick

Könnten Sie mir bitte Ihre Einstellungen und TF...

vielen Dank!

Hallo Hellkas,

Dies sind meine Paare (Timeframe für alle Paare ist Tag)

USDJPY, EURCHF, AUDUSD, EURAUD, USDCAD, USDCHF, AUDCAD, EURCHF.

Einstellungen: Standard; außer Reversal=True und Lots=0,1

Grüße!

 
Nicholishen:
Hallo Codersguru!

Das Programm setzt eine GlobalVariable in MT und verwendet diese, um eine eindeutige ID zu erstellen, die dann in den Kommentar der eröffneten Trades eingefügt wird. Der EA verarbeitet dann Aufträge auf der Grundlage dieser eindeutigen ID.

Nic

Nic

Dies ist ein großartiger Weg, um Ihre Aufträge und alle separaten Dateien, die Ihr EA erstellen kann, zu verfolgen, zeigt wieder Ihre Fähigkeit, Dinge zu sehen, die andere vielleicht nicht sehen. Der Grund, warum ich das schreibe, ist, dass ich das Gleiche getan habe, indem ich OrderComment() zur Kennzeichnung von Trades verwendet habe und festgestellt habe, dass es ein zukünftiges Problem darstellt. In diesem;

1) Das Kommentarfeld ist ein String-Parameter, an den Ihr Broker seine eigenen Kommentare anhängen kann. Wenn Ihre Order z.B. mit einem Take-Profit oder einem Stop-Loss geschlossen wird, fügt der Broker eine Nachricht an Ihr Kommentarfeld an. Wenn Sie sich dessen nicht bewusst sind, könnte dies in Zukunft zu Fehlern führen, wenn Sie auf die Handelshistorie Ihres Kontos zugreifen und dabei Ihren ursprünglichen Kommentar verwenden, ohne zu wissen, dass dieser ebenfalls angefügt wurde.

2) Die Funktion GlobalVariable() ist vom Typ double number, der in den Typ string umgewandelt wird, wenn er als OrderComment-Eingabe verwendet wird. Die Vermischung von Variablentypen ist keine gute Programmiergewohnheit, da dies in Zukunft zu Fehlern bei der Variablenvermischung führen kann, wenn Sie Ihren Code wieder ändern wollen.

Um dies zu vermeiden, habe ich das MagicNumber-Feld der Funktion OrderSend() verwendet. Der folgende Code ist der Funktionsaufruf, den ich verwende, um eine eindeutige Nummer zu generieren, die, wie von Ihnen beschrieben, für die Auftragsverfolgung und -aufzeichnung verwendet wird. Es wird eine Nummer von 100 bis 999 erzeugt. Sobald die Nummer verwendet wird, wird die neue Nummer um eins erhöht, damit der nächste EA sie verwenden kann. Wenn Sie den Aufruf dieser Funktion im init()-Funktionsbereich Ihres Codes platzieren, wird sie nur einmal beim Starten angezeigt und bleibt in Ihrem EA, bis er ausgeschaltet wird.

Beispiel;

int OrderID = 0;

int init() {

OrderID = GetTagNumber()

...

...

...

return( 0 );

} // Ende init, Funktion:

Sie können die OrderID dann überall dort verwenden, wo Sie Ihre Trades, Dateieinträge usw. kennzeichnen möchten.

//«« <<<>>> »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

int

GetTagNumber() { // Sets the SystemTag To....

int PullNumber = 0;

if( GlobalVariableCheck( "PullTag ( Do Not Delete )" ) ) {

PullNumber = GlobalVariableGet( "PullTag ( Do Not Delete )" );

} else {

PullNumber = 100;

} // End If, GlobalVariableCheck:

GlobalVariableSet( "PullTag ( Do Not Delete )", PullNumber + 1 );

if( GlobalVariableGet( "PullTag ( Do Not Delete )" ) > 999 ) {

GlobalVariableSet( "PullTag ( Do Not Delete )", 100 );

} // End If, GlobalVariableSet:

return( PullNumber );

} // End Function, GetTagNumber:

Die OrderID-Variable muss außerhalb der init()-Funktion deklariert werden, damit der Rest Ihres Programms ihren Wert sehen kann.

Sie können die untere und obere Grenze (100 - 999) nach Belieben ändern oder die obere Grenze entfernen, so dass der Wert weiter steigt, ohne zurückgesetzt zu werden.

Der Grund für den Variablennamen ... "PullTag ( Do Not Delete )" ... liegt darin begründet, dass Sie nun die globalen Variablen außerhalb des EAs einsehen und löschen können. Das "Nicht löschen" ist eine Warnmeldung, die angezeigt wird, wenn Sie Ihre globalen Variablen ansehen. Wenn Sie die PullTag-Variable löschen, wird sie beim nächsten Start des EA wieder bei 100 beginnen. Globale Variablen behalten ihren Wert, auch wenn Sie Ihre Workstation ausschalten.

Der CockeyedCowboy

Wie immer sage ich zu viel.

 

...gerade als ich mich fragte, warum die SL/TP nicht in der Geschichte auftauchen. Danke für den Hinweis! Ich werde das in meinen Code einbauen. Vielen Dank, dass Sie eine so wertvolle Ressource sind!!

 

Nic

Wenn Sie Ihr Handelsterminal öffnen und auf die Registerkarte Kontoverlauf klicken, klicken Sie mit der rechten Maustaste auf einen beliebigen Bereich des Terminals und dann auf das Menü > Kommentare. Sie können dann Ihre Kommentare und alle angehängten Kommentare Ihres Brokers (sie befinden sich in der Regel unter [ .... ]) in Ihrem Terminal-Fenster sehen.

Der CockeyedCowboy

 

Ja... Mir ist aufgefallen, dass alle TP/SL als [tp][sl] angehängt sind. Ihr Code gefällt mir besser.

 

was passieren Coders Guru? was passieren? Ich lade Ihre letzte Version von ema cross ea in Beitrag 369, Sie sehen, was mit dem Test grv passieren, aber sagen Sie mir, warum

Dateien:
1_4.gif  8 kb
 

Leute bitte,

helft mir bei etwas. Warum die REVERSAL-Option ist in diesem EA enthalten? Ich verstehe einfach nicht, warum Handel gegen den Punkt der beiden EMA Kreuz...

Danke...

So weit mit REVERSAL true = I ve verdienen mehr als 100 Pips, aber es ist verrückt. Ich meine, wenn die EMA-Kreuz Punkt appaers, diese EA wird absolut entgegengesetzten Handel öffnen, so dass Sie Geld verlieren...

 

Pro-Trend vs. Gegen-Trend

glader:
Leute bitte,

helfen Sie mir bei etwas. Warum ist die REVERSAL-Option in diesem EA enthalten? Ich verstehe einfach nicht, warum Handel gegen den Punkt der beiden EMA Kreuz...

Danke...

Bis jetzt mit REVERSAL true = I ve verdienen mehr als 100 Pips, aber es ist verrückt. Ich meine, wenn die EMA-Kreuz-Punkt appaers, diese EA wird absolut gegenüber Handel öffnen, so dass Sie Geld verlieren...

Nun, Sie können wählen, um pro-Trend zu arbeiten.

IMHO, im Gegentrend eröffnen wir die Position zum besten Preis und tragen einige Verluste am Anfang, dann gewinnen wir den maximalen Betrag, den wir gewinnen könnten!

 

unzureichende Daten!

Audio:
Was passiert Coder Guru? was passiert? Ich lade Ihre letzte Version von ema cross ea in Beitrag 369, Sie sehen, was mit dem Test grv passieren, aber sagen Sie mir, warum

Audio,

Bitte weinen Sie nicht .

Ich glaube, Sie haben nicht genug Daten über die Geschichte.

Schauen Sie sich meinen Backtest und Forwardtest an !

Dateien:
Grund der Beschwerde: