Warum gibt es KEINEN vollständigen EA in der Code-Basis? - Seite 4

 

Einige Dinge sollten als EA-Optionen hinzugefügt werden:

- eindeutige Berechnung der magischen Zahl, vielleicht sogar narrensicher, um das gleiche Ergebnis zu erhalten, wenn der Broker den Symbolnamen ändert (z.B. von "EURUSD" zu "EURUSD.m")

- Optionen für das Ordermanagement (Trailing Stop, Break Even (in Pips oder anderen Werten wie Psar, X Bars High/Low, Ma, etc.), Order Close)

- ausführliche Auftragsinfos per Auftragsticket (wofür eine Text- (oder csv-) Datei der einfachste Weg zu sein scheint). GV ist begrenzt, OrderComment() kann vom Broker geändert werden.

 
Aufbauend auf IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, aktualisieren Sie den Download-Link oder müssen wir manuell "patchen" die WHRea Quelle mit allen Updates, die Sie in diesem Thread zur Verfügung stellen?
 
Sie können Beiträge nicht mehr aktualisieren, wenn sie ein paar Tage alt sind.
 
Ich verstehe... Würden Sie dann bitte wieder die neueste Version hier posten?
 
mbirrell:

Ich bin ein bisschen besorgt über die gemeinsame Nutzung meiner benutzerdefinierten Indikatoren und EAs, weil, wenn ich tat und jeder begann mit ihnen sie nicht mehr funktionieren würde... Ist jemand anderer Meinung?

Ich weiß, das klingt ein bisschen egoistisch... aber wenn ich 5 Millionen erreicht habe, werde ich teilen ;-)

Wenn alle Ihre Ea nutzen würden, wäre der Marktpreis entweder gleich Null oder unendlich. Jeder wird zur gleichen Zeit kaufen oder verkaufen wollen.
 

Hallo Leute, ist das Beispiel in MQL4 Tutorial gerade genug, wenn wir nur einfache und allgemeine Lösung wollen?

Mein EA Handel und tun Berechnung pro bar und nicht pro Tick.


int Fun_Error(int Error) // Funktion zur Verarbeitung von Fehlern
{
switch(Error)
{// Nicht entscheidende Fehler
Fall 4: Alert("Der Handelsserver ist beschäftigt, versuchen Sie es noch einmal...");
Sleep(3000);// Einfache Lösung
return(1);// Beenden Sie die Funktion
case 135:Alert("Preis geändert. Nochmaliger Versuch.");
RefreshRates();// Kurse aktualisieren
return(1);// Beenden Sie die Funktion
case 136:Alert("Keine Kurse. Warten auf einen neuen Tick..");
while(RefreshRates()==false) // Bis zu einem neuen Tick
Sleep(1);// Pause in der Schleife
return(1);// Beenden Sie die Funktion
case 137:Alert("Broker ist beschäftigt, versuche es noch einmal...");
Sleep(3000);// Einfache Lösung
return(1);// Beenden Sie die Funktion
case 146:Alert("Das Handelssubsystem ist beschäftigt. Ich versuche es noch einmal...");
Sleep(500);// Einfache Lösung
return(1);// Beenden Sie die Funktion
// Kritische Fehler
Fall 2: Alert("Allgemeiner Fehler.");
return(0);// Beenden Sie die Funktion
case 5: Alert("Alte Terminalversion.");
Work=false;// Beenden Sie den Vorgang
return(0);// Beenden Sie die Funktion
Fall 64: Alert("Konto gesperrt.");
Work=false;// Beenden der Operation
return(0);// Beenden Sie die Funktion
case 133:Alert("Handel verboten.");
return(0);// Beenden Sie die Funktion
case 134:Alert("Nicht genug Geld zur Ausführung der Operation.");
return(0);// Beenden Sie die Funktion
Standard: Alert("Fehler aufgetreten: ",Error); // Andere Varianten
return(0);// Beenden der Funktion
}
}

 

Dies könnte die Grundlage für eine wirklich gute EA-Shell /Vorlage sein: WHR ist ein erfahrener MT-Codierer.

Es war ursprünglich als eine Quelle für nützlichen EA-Code gedacht, es ist keine "Plug and Play"-Shell.

Ich habe diesen EA in mehrfacher Hinsicht aktualisiert:

1. Ich habe die Syntax und die Variablennamen geändert, so dass er in aktuellen Versionen von MQL4 kompiliert.
Außerdem fügte ich sehr kleine Änderungen hinzu, damit er kompiliert, kommentiert mit "Big Be".

2. Ich habe alle zusätzlichen Codeabschnitte, die WHR in den Thread gestellt hat, eingearbeitet.
Ich habe sie an Ort und Stelle gelassen, aber die Abschnitte, die ersetzt wurden, auskommentiert.
Fehler beim Hinzufügen dieser Abschnitte sind möglich, obwohl ich so vorsichtig wie möglich war.
Eine fehlende vollständige Integration mit dem Rest des EA ist ebenfalls möglich.

3. Außerdem habe ich ihn durch ein Programm laufen lassen, das das Textformat zur besseren Lesbarkeit bereinigt.

Er wird im Strategy Tester ausgeführt.
Er nimmt keine Trades an, da die Einstellung der Einstiegsregeln Ihnen überlassen ist.
Ich habe es nicht weiter bearbeitet, da ich andere Anforderungen an meine Zeit habe.

ARBEITEN ERFORDERLICH:
Obwohl es überall Kommentare gibt, müssen viele geklärt werden. Oder schreiben, wenn sie nicht vorhanden sind. Was tut jeder Abschnitt oder jede Funktion?
Ein Beispiel: CallAgain() sagt "Überspringe nutzlose Ticks". Was ist die Methode oder Logik? Wahrscheinlich werden nur Ticks übersprungen, die weit genug entfernt sind und/oder in der Handelsrichtung liegen, wenn es sich um einen Trailing Stop handelt, aber es bedarf einiger Untersuchungen, um dies zu überprüfen.

Dadurch wird es seine Rolle als Ideenquelle besser erfüllen und die Funktionsfähigkeit als EA-Shell/Template weiter erhöhen.

WEITERE TESTS:
Fügen Sie einige Eingaberegeln hinzu, und testen Sie, ob jeder Abschnitt das tut, was er soll. Dies erfordert eine Menge Arbeit mit dem Strategy Tester. Und wahrscheinlich auch ein wenig Kodierung hier und da, um das zu erreichen, was es tun soll. Wenn es dort funktioniert, kann man es auf einem Demokonto testen.

WARNUNGEN:
Mindestens eine Funktion ist unvollständig, und es kann Fehler in diesem Code geben, oder Änderungen in Metatrader, seit die whrea geschrieben wurde, die nicht erlaubt sind.

Einen EA zu programmieren / zu verwenden, ohne ihn zu verstehen, ist in etwa so, als würde man versuchen, einen Jet zu fliegen, ohne alle Bedienelemente zu kennen und zu wissen, wie man sie benutzt.
Aber, tun Sie, was Sie wollen: es ist Ihr Geld.

ANFORDERUNG
Bitte helfen Sie, wenn Sie das nötige Wissen und ein wenig Zeit haben.


Big Be (BigBe)

Dateien:
whrea_v1.2.mq4  188 kb
 
William Roeder:

Könnten Sie bitte erklären, was pips2dbl ist?

 
Pooya Khamooshi: Könnten Sie bitte erklären, was pips2dbl ist?

Um PIPs in einen Tick zu konvertieren.

Ein PIP ist weder ein Punkt noch ein Tick.
Was ist ein TICK? -MQL4-Programmierforum

Die Verwendung von Punkten bedeutet Codebrüche bei 4-stelligen Brokern, Exoten (z.B. USDZAR mit einem Spread von über 500 Punkten) und Metallen. Berechnen Sie, was ein PIP ist und verwenden Sie es, nicht Punkte.
Wie kann man JPY-Paare mit Parametern verwalten? -MQL4 Programmierung Forum
Slippage definiert in Indexpunkten - Währungspaare - Expert Advisors und Automated Trading - MQL5 programming forum