CustomFunctions.mq4 ???

4 Antworten

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #111633

Im EA-Assistenten - Handelsregeln - Bedingungsdialog - Funktionen (17) - Benutzerdefinierte Funktion - Beschreibung (siehe unten), wird erklärt: Rufen Sie Ihre eigene Funktion auf. Sie können hier einen beliebigen MQL-Befehl angeben oder eine eigene MQL-Funktion aufrufen, die in der Datei /code/CustomFunctions.mq4 definiert ist. Sie sind dafür verantwortlich, die Funktion mit den richtigen Typen zu vergleichen. Ich habe etwas, was ich für eine Funktion halte:
double profit() {
   OrderSelect (NULL,0);
   double profit = OrderProfit() + OrderSwap() + OrderCommission()
   Rendite (Gewinn);
}

Ich bin ein Anfänger, deshalb habe ich den EA-Assistenten gekauft. Ich weiß ein wenig über das Schreiben von Code. Ich weiß, wie man einfache benutzerdefinierte Indikatoren schreibt. Ich weiß nicht einmal, ob das obige Format eine Funktion ist, die mit EA Wizard verwendet werden kann.

Wie kann ich die obige Funktion in /code/CustomFunctions.mq4 einfügen?
Ersetze ich einfach den Code in /code/CustomFunctions.mq4 durch den obigen Code, benenne dann die .mq4-Datei um, lege sie im Ordner /code ab, und der EA-Assistent findet sie dort? Ich denke, dass ich im Abschnitt Properties des Dialogs Bedingung hinzufügen nach Function den Namen der Funktionsdatei eingebe. Gebe ich nach Function einfach den Namen der Datei ein, und der EA-Assistent findet sie im Ordner /code? Gebe ich einfach OrderProfit()+OrderSwap() ein? Wie verwenden wir die benutzerdefinierte Funktion?

 

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 10 Jahren #122750

Hallo,

 

können Sie die Datei {EA Wizard}/code/CustomFunctions.mq4 öffnen und Ihre Funktion an das Ende dieser Datei anhängen.

Danach wird Ihre Funktion in den Code jedes vom Programm generierten EA eingefügt, so dass Sie sie verwenden können.

 

 

Aber die Funktion, wie Sie beschrieben haben, ist wahrscheinlich falsch, ich bin nicht sicher, dass Sie OrderSelect so aufrufen können.

Und es fehlt ein ; am Ende der Gewinnberechnung.

 

Die richtige Funktion wäre etwa so:

 

double profit() {
  double profit = 0;
 
  for (int cc = OrdersTotal() - 1; cc >= 0; cc-) {
    if (!OrderSelect(cc, SELECT_BY_POS) ) continue;
 
    Gewinn = OrderProfit() + OrderSwap() + OrderCommission();
    Pause;
  }
 
  return(Gewinn);
}

 

 

 

 

Dann können Sie diese Funktion in benutzerdefinierten Funktionsaufrufen verwenden. Sie rufen die Funktion einfach mit ihrem Namen auf, ohne den Dateinamen zu verwenden.

 

Sie können sie in Bedingungen mit einer benutzerdefinierten Funktion aufrufen, wobei die Funktion wie folgt lautet: profit()

oder in den Aktionen, um den Gewinn in einer Variablen zu speichern, wie z. B. Custom Action Command: ProfitVariable = Gewinn();

 

Aber EA Wizard enthält bereits Funktionen, die den offenen oder geschlossenen Gewinn eines Handels zurückgeben, sie geben den Nettogewinnwert zurück (ohne Swaps oder Provisionen).

Diese Funktionen befinden sich im Listenfeld Strategiekontrolle.

 

Mark

Mark
StrategyQuant Architekt

0

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #122761

Danke, Mark,

       Ich werde sie nächste Woche verwenden. Ich möchte sehen, ob mein benutzerdefinierter Indikator, in den ich die Funktion eingebaut habe, am Freitag funktioniert. Später...

0

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #122771

Mein Custom Indicator, in dem die OpenProfit-Funktion verwendet wurde, hat sehr gut funktioniert. Er hat sogar den Swap mit berechnet.

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 10 Jahren #122795

Ich bin froh, dass es geklappt hat 🙂 .

Mark
StrategyQuant Architekt

0

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)