[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 249

 
artmedia70:
Fragen Sie nicht, fragen Sie einen Prüfer... :)
Nach der Kompilierung funktioniert der Expert Advisor genauso wie vor den Änderungen. D.h. es wird eine Linie gezogen.
 
globad:
Der Experte zieht eine Linie.
wenn der Code sagt: "Zeichne Linie 1, wenn sie nicht gezeichnet ist; zeichne Linie 2, wenn sie nicht gezeichnet ist" - können sie nicht nicht gezeichnet werden:)
 
eddy: artmedia70:
wenn der Code sagt: "Zeichne Linie 1, wenn sie nicht gezeichnet ist; zeichne Linie 2, wenn sie nicht gezeichnet ist" - können sie nicht nicht gezeichnet werden:)
Leute, ich habe es herausgefunden! Es funktioniert!
 

Können Sie mir sagen, warum alle Prozentzahlen im Prüfbericht 0 sind? D.h. relativer Drawdown, maximaler Drawdown usw.?

 
artmedia70:

Zum Beispiel so:

Rufen Sie so an:

Ich hoffe, Sie können Minuten in Stunden verwandeln ... :)





Ich habe versucht, es so zu schreiben, wie Sie es gesagt haben, aber es funktioniert nicht... es öffnet immer noch Positionen beim Abschluss der vorherigen...((

vielleicht verstehen Sie nicht, was ich meine, ich möchte, dass eine Position frühestens 1 Stunde nach Schließung der vorherigen Position eröffnet wird ... und in Ihrem Fall wird die Möglichkeit einer erneuten Eröffnung ausgeschlossen, aber sobald die Position geschlossen wird, wird sofort die nächste eröffnet

 if (SecondsAfterOpenLastPos(NULL, OP_SELL, MAGIC)>=(Period()*Interval)*60) {
        OpenSell();  
           } 
 
Jungs helfen: Wir brauchen einen Handel, der eröffnet wird, wenn eine bestimmte Zeitspanne vergangen ist, nachdem der vorherige geschlossen wurde....help
 
Vovo4ka:
Hilfe, Leute: Ich muss einen Handel eröffnen, wenn eine bestimmte Zeit verstrichen ist, nachdem der vorherige geschlossen wurde....help


for (int i=0; i<OrdersTotal(); i++)
{ if(OrderSelect(i, SELECT_BY_POS)==true)
{
TC = TimeCurrent();
OM = OrderMagicNumber();
if (TC-OM>86400 && (OrderType()==OP_SELL)){
CLOSEORDER("Sell");
}
if (TC-OM>86400 && (OrderType()==OP_BUY)){
CLOSEORDER("Buy");
}
}
}

In OrderMagicNumber() wird beim Öffnen einer Bestellung geschrieben: Magic = TimeCurrent();

 
ILL:


for (int i=0; i<OrdersTotal(); i++)
{ if (OrderSelect(i, SELECT_BY_POS)==true)
{
TC = TimeCurrent();
OM = OrderMagicNumber();
if (TC-OM>86400 && (OrderType()==OP_SELL)){
CLOSEORDER("Sell");
}
if (TC-OM>86400 && (OrderType()==OP_BUY)){
CLOSEORDER("Buy");
}
}
}

In OrderMagicNumber() heißt es beim Öffnen einer Bestellung: Magic = TimeCurrent();


Ich vergaß =) 86400 - dies ist die Anzahl der Sekunden, nach denen die Position geschlossen wird
 
ILL:

Können Sie mir sagen, warum alle Prozentzahlen im Prüfbericht 0 sind? D.h. relativer Drawdown, maximaler Drawdown usw.?


Alles klar - die Kaution war zu hoch)
 
Vovo4ka:


Ich habe versucht, es so zu schreiben, wie Sie es gesagt haben, es funktioniert... es öffnet immer noch eine Position beim Abschluss der vorherigen...(

Vielleicht verstehen Sie nicht, was ich meine: Es muss ein Geschäft nicht früher als 1 Stunde nach Schließung des vorherigen eröffnet werden... und in Ihrem Fall schließt es die Möglichkeit aus, ein weiteres Geschäft zu eröffnen, aber sobald es geschlossen ist, wird sofort das nächste eröffnet.

Und was ist mit dem Funktionscode? Finde vier Unterschiede :) :

//+----------------------------------------------------------------------------+
datetime SecondsAfterCloseLastPos(string sy, int op, int mn) 
{
   datetime t;
   int      i, k=OrdersHistoryTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()!=op)          continue; 
         if (OrderMagicNumber()!=mn)   continue; 
         if (t<OrderCloseTime()) t=OrderCloseTime();
         }
      }
  return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
Grund der Beschwerde: