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

 
nikelodeon:

Kann jemand erklären, warum während des Optimierungszeitraums Einstellungen des EA erscheinen, bei denen es keine Rentabilität gibt. Was bedeutet das????

Wenige Trades, maximal 8. Gehen Sie die Geschichte noch einmal durch.
 
Forexman77:
Können Sie mir sagen, wie ich mit dem Strategietester das absolute Maximum und Minimum in der Historie finden kann?
Maximum und Minimum von was?
 
paladin80:
Maximum und Minimum von was?

In der Geschichte des EURUSD, die Höchst- und Tiefstkurse des Tages. Der Zeitpunkt ihrer Gründung.
 
Forexman77:

Höchst- und Tiefstkurse des EURUSD im Tagesverlauf. Der Zeitpunkt ihrer Gründung.
Lesen Sie iHighest und iLowest
 
paladin80:
Lesen Sie iHighest und iLowest

Die Suche über iHighest und iLowest ist kein Problem. Wie kann man dies in den Tester einbauen, so dass er Informationen über den Zeitpunkt der Bildung einer bestimmten Geschichte liefert?
 
Forexman77:

Die Suche über iHighest und iLowest ist kein Problem. Wie kann man dies in das Prüfgerät einbauen, so dass es Informationen über den Zeitpunkt der Entstehung, über eine bestimmte Geschichte gibt.

Sie können es auf diese Weise versuchen:

 for (int i=0; i<iBars(Symbol(),PERIOD_D1); i++) {
  double HistoryMaximum=iHigh(Symbol(),PERIOD_D1,i);
  double HistoryMinimum=iLow(Symbol(),PERIOD_D1,i);
  Print("Дата ",TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)," Максимум=",DoubleToStr(HistoryMaximum,Digits)," Минимум=",DoubleToStr(HistoryMinimum,Digits));
 }

 
Forexman77:

Die Suche über iHighest und iLowest ist kein Problem. Wie kann man dies in das Prüfgerät einbringen, so dass es Informationen über den Zeitpunkt der Bildung einer bestimmten Geschichte liefert?

double High_price=-1.0;
double Low_price=10000000000.0;
double Time_high_price, Time_low_price;
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
//----
   if (iHigh(NULL,PERIOD_M1,0)>High_price)
   {
     High_price=iHigh(NULL,PERIOD_M1,0);
     Time_high_price=iTime(NULL,PERIOD_M1,0);
   }
   
   if (iLow(NULL,PERIOD_M1,0)<Low_price)
   {
     Low_price=iLow(NULL,PERIOD_M1,0);
     Time_low_price=iTime(NULL,PERIOD_M1,0);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Print("Highest price = ",DoubleToStr(High_price,Digits)," on ",TimeToStr(Time_high_price,TIME_DATE|TIME_SECONDS));
   Print("Lowest price = ",DoubleToStr(Low_price,Digits)," on ",TimeToStr(Time_low_price,TIME_DATE|TIME_SECONDS));
//----
   return(0);
  }
 
Sepulca:

Sie können es so versuchen:


Wie kann ich erreichen, dass die Mindest- und Höchstzeiten getrennt angezeigt werden? Oder besser gesagt, es ist kein Problem. Für jede Zeit gibt es mehrere Zeilen im Logbuch.

Was könnte das Problem sein? Wie man eine Zeile pro Wert ausgibt. Im Idealfall möchten Sie eine Zeit in Zahlen angeben, die Sie in Excel kopieren und mit den folgenden Daten vergleichen können

übereinstimmen.


 
Bitte geben Sie mir einen Link zu einem Artikel, wie man Signale für MetaTrader 4 einrichtet
 

Auch hier gilt, dass meine Funktion zum Löschen ausstehender Aufträge nicht alles löscht. Außerdem wird nicht alles im Testgerät gelöscht. Helfen Sie mir zu verstehen, was daran falsch ist.

void DeletePendingOrders()
{
    int numberOfTry = 0,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1 && OrderType() < 6)
      {
         ticket = OrderTicket();
         numberOfTry = 0;
      
         while (numberOfTry < 3)
         {
            while (!IsTradeAllowed()) Sleep(5000);
                err = 0;

           if (OrderDelete(ticket, Red))
            {
                numberOfTry = 3;
            }
            else
            {
                err = GetLastError();
                Print("err = ", err);
            }
      
            if (err > 0)
            { 
              Print(numberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000); RefreshRates(); numberOfTry++;
            }
         }
      }
   }
}