Antwort

CustomFunction zum Schließen von Aufträgen mit aktuellem Gewinn

3 Antworten

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #111629

Ich habe diesen Code schließlich in einen einfachen benutzerdefinierten Indikator mit Puffern eingebaut, der vom EA-Assistenten erkannt wird. Ich werde am Montag sehen, ob der EA, der erstellt wird, Aufträge nach Bedarf schließt, indem er den Puffer des benutzerdefinierten Indikators nutzt. Das Hauptproblem, das ich habe, ist, dass ich nicht weiß, wo ich eine FUNCTION im EA-Assistenten einfügen und wie ich sie verwenden soll. Sie können mir sagen, dass ich die FUNCTION in die customfunction.mq4 einfügen soll? Ich bin kein Experte im Schreiben von Code, weshalb ich den EA-Assistenten gekauft habe. Kann mir bitte jemand erklären, wo und wie ich eine FUNKTION in die EA Wizard Software einfüge, damit der EA Wizard sie nutzen kann?

 

Ich denke, ich habe es herausgefunden. Siehe angehängte Datei...

double profit()

{

   OrderSelect(NULL,0);

   double profit = OrderProfit() + OrderSwap();

   Rendite (Gewinn);

}

 

Überarbeitung seit der ersten Veröffentlichung. (nur noch ein Fehler)

Ich benötige eine benutzerdefinierte Funktionsbedingung, die einfach den aktuellen Gewinn aus einer offenen Order ermittelt. Wenn also der Wert der Funktion größer als Null ist, dann schließt der EA die offenen Aufträge am Freitag. Ich versuche herauszufinden, wie ich die folgende Funktion in C:\SQ_EAWizard\code\CustomFunctions.mq4 einfügen kann. Ich denke, die folgende Funktion wird funktionieren?
double profit();

 

REVISION:

double profit();
{
   OrderSelect();
   double profit = OrderProfit(NULL) + OrderSwap(NULL);
   Rendite (Gewinn);
}

 

1 Fehler:

1:8;'profit' - keine dll für die importierte Funktion definiert

 

OLD:

{
   OrderSelect();
   Gewinn = OrderProfit() + OrderSwap();
   Rendite (Gewinn);
}
Ich versuche, diese Funktion in CustomFunctions.mq4 einzufügen:
double exampleFunction(double value) {
   return(2 * Wert);
}
Wie kann ich erreichen, dass die Gewinnvariable nicht global ist?
Warum erhalte ich beim Kompilieren die Fehlermeldung, dass ich eine .dll-Datei nicht importieren kann?

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 10 Jahren #122753

Ich habe Ihnen in einem anderen Thread geantwortet und auch ein Beispiel für eine Gewinnfunktion gepostet.

 

Hier ist die Standardfunktion, die von EA Wizard verwendet wird, um den offenen Gewinn zu ermitteln (ohne Swaps und Provisionen), Sie können sie mit einem anderen Namen kopieren

und ändern Sie sie so, dass sie auch Swaps und Provisionen umfasst.

 

double sqGetOpenPLInMoney(int orderMagicNumber) {
   double pl = 0;
 
   for (int cc = OrdersTotal() - 1; cc >= 0; cc-) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue;
      if(OrderType() != OP_BUY && OrderType() != OP_SELL) weiter;
      if(OrderSymbol() != Symbol()) weiter;
      if(orderMagicNumber != 0 && OrderMagicNumber() != orderMagicNumber) weiter;
 
      pl += OrderProfit();
   }
 
   zurück(pl);
}

 

Ich bin mir nicht sicher, warum es einen DLL-Fehleraufruf gibt. Es sieht so aus, als könne MT4 die Funktion nicht finden. Können Sie Ihren EA überprüfen, ob Ihre Funktion vorhanden ist?

 

Mark

Mark
StrategyQuant Architekt

0

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #122762

Ja, Mark,

       Ich erinnere mich, dass ich mir diesen Zustand angesehen habe. Ich verzichtete darauf, sie zu nutzen, weil sie den Swap nicht beinhaltete. Ich mache mir keine Sorgen um die Provision, weil ich nach Spread zahle...

Vielleicht kann ich den Code vor dem Kompilieren ändern... Eigentlich habe ich den Code für Order Opened This Minute & Order Closed This Minute auf 1320 Sekunden statt auf 60 Sekunden geändert. 60 Sekunden sind nicht lang genug, um zu sehen, ob sich die Richtung des Währungspaares ändern könnte...

0

Mike H.

Abonnent, bbp_participant, Gemeinschaft, 76 Antworten.

Profil besuchen

vor 10 Jahren #122770

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

0

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