Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 406

 
bergkamp.:
hier ist ein Beispiel ... Wie funktioniert es, wenn Sie einfach sleep an das Ende des Codes setzen?

Wenn es Ihnen egal ist, dass die Startfunktion nach dem Starten 30 Sekunden lang nicht gestartet wird (und EA in dieser Zeit keine Aktionen ausführt), dann stellen Sie bitte den Ruhezustand ein.

 

Der Expert Advisor testet im Tester im visuellen Modus einwandfrei, aber die Optimierung ist völlig langsam, obwohl es nur zwei Parameter für die Optimierung und eine kleine Zeitspanne gibt, was ist der Grund dafür?

 
vadynik:

Der Expert Advisor testet gut im Tester im visuellen Modus, aber in der Optimierung ist völlig langsam, obwohl es nur zwei Parameter für die Optimierung und eine kleine Zeitspanne, was ist der Grund dafür?

Die Optimierung nimmt viel mehr Zeit in Anspruch als ein einzelner Testlauf, selbst im visuellen Modus. Versuchen Sie, die Schrittweite der Parameteränderungen zu erhöhen. Oder wechseln Sie zu Tests zu Eröffnungspreisen.
 
khorosh:

Wenn es Ihnen egal ist, dass die Startfunktion nicht mehr startet, nachdem die Funktion 30 Sekunden lang gestartet wurde (und der EA in dieser Zeit keine Aktion ausführt), dann setzen Sie bitte sleep.

daher werden nach 30 Sekunden die Startfunktion und alle sequenziellen Funktionen mit dem Eintreffen eines Ticks neu gestartet... und gehen für 30 Sekunden in den Ruhezustand zurück ... Liege ich falsch? und der Experte wird alle seine Aktionen im selben Tick ausführen?
 
bergkamp.:
Daher werden nach 30 Sekunden die Startfunktion und alle sequenziellen Funktionen mit dem Eintreffen eines einzelnen Ticks neu gestartet? und gehen dann für 30 Sekunden in den Ruhezustand zurück... Liege ich falsch?
Ja, während sleep läuft, wird die Funktion start() nicht beendet und daher auch nicht neu gestartet.
 
vadynik:


Kann der Optimierer durch grafische Objekte verlangsamt werden?

Und warum werden die Tags auch dann angezeigt, wenn CLR_NONE gesetzt ist?

Bei der Optimierung gibt es keine Grafiken. Frage: "Wo erscheinen denn die Zeichen?"
 
vadynik:


Kann der Optimierer durch grafische Objekte verlangsamt werden?

Und warum erscheinen die Tags trotzdem, wenn CLR_NONE gesetzt ist?


Es scheint, dass, wenn grafische Objekte in einem EA erstellt werden, die Optimierung eines solchen EAs überhaupt nicht möglich ist. Das kann ich jedoch nicht mit Sicherheit sagen. Zumindest ist mein Expert Advisor, der Trendlinien verwendet, nicht optimiert. Ich kann nichts über Etiketten sagen, ich brauche den gesamten Code.
 
khorosh:
Ja, solange sleep läuft, wird start() nicht beendet und somit auch nicht neu gestartet.
Ist start() überhaupt erforderlich?
 
bergkamp.:
Ist eine Inbetriebnahme überhaupt erforderlich?
Es hängt von Ihnen ab, ob Sie es für die Arbeit von Experten brauchen oder nicht, ich kann Ihren Expertencode nicht sehen. Wenn es sich um einen Spinner mit Pfennigzielen handelt, könnte dies notwendig sein.
 

Es gibt eine Funktion, mit der alle Aufträge geschlossen werden können, aber sie schließt mit dem letzten offenen Auftrag. Bitte geben Sie mir einen Rat, wie ich die Funktion umstellen kann, damit sie mit dem ersten offenen Auftrag beginnt und mit dem letzten endet.


//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  int total = OrdersTotal();
  for(int i=total-1;i>=0;i--)
  {
    OrderSelect(i, SELECT_BY_POS);
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      Sleep(500);
    }  
  }
}

// End