Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 77

 
FinEngineer: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
es stellt sich heraus, dass dieser Fehler auch auftritt... d.h. es gibt zwei Fehler...
Darüber hinaus sind Sie über zwei Fehler besorgt: "unzureichend berechnete Daten" und "Array außerhalb des Bereichs )". Aber aus irgendeinem Grund haben Sie nichts über den zweiten Fehler geschrieben (Sie haben keinen Beispielcode mit Zeile 92 angegeben), obwohl Sie ihn mehrmals hervorgehoben haben.
 
Yedelkin:

Fügen Sie den Code korrektein.

Dort hat es gut funktioniert, dieses "Stück Code, das für unzureichende Daten verantwortlich ist". Und richtig berichtet, dass, wenn der erste Tick ankommt, Daten für RSI ist noch nicht durch das Terminal berechnet. Wenn Sie keine Fehlermeldungen erhalten möchten, versuchen Sie, wie oben beschrieben zu verfahren, d. h. nicht nur in OnCalculate(), sondern auch in OnInit() auf berechnete Daten zu prüfen. Mit anderen Worten: Versuchen Sie, die Datenberechnung für ausgewählte technische Indikatoren in OnInit() abzuwarten und dann zur Tick-Verarbeitung in OnCalculate() überzugehen, wenn die Daten für die Indikatoren garantiert berechnet werden.

Hinzufügen. Letztendlich erhöht das Entfernen eines Teils des Prüfcodes nicht die Menge der berechneten Indikatordaten :)

Ich habe diese Prüfung in die OnInit-Funktion eingefügt, aber in dieser Funktion wissen wir nicht, was 'rates_total' ist... Der Fehler erscheint...'rates_total' - nicht deklarierter Bezeichner... Was ist zu tun?
 
Yedelkin:
Sie sind auch über zwei Fehler besorgt: "Unzureichend berechnete Daten" und "Array außerhalb des Bereichs". Aber aus irgendeinem Grund haben Sie nichts über den zweiten Fehler geschrieben (Sie haben kein Codebeispiel mit Zeile 92 gegeben), obwohl Sie ihn mehrmals betont haben.
int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//считаем индикатор дельта рси
   for(int i=limit;i<rates_total; i++)
      DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
   return(rates_total);
Hier ist irgendwo die Zeile 92...hier ist ein Codefragment...irgendwo muss ein Fehler sein)
 
FinEngineer: Ich habe diese Prüfung in die Funktion OnInit eingefügt, aber in dieser Funktion wissen wir nicht, was 'rates_total' ist... der Fehler kommt heraus...'rates_total' - nicht deklarierter Bezeichner... was ist zu tun?
Haben Sie das Beispiel aus der Funktion BarsCalculated() wie zuvor empfohlen behandelt? Es gibt keine rates_total
 
FinEngineer irgendwo hier in Zeile 92... hier ist ein Stück Code... da ist irgendwo ein Fehler... es stellt sich heraus)

Ich verstehe. Auf der Linie

DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
Es gibt einen Ausgang außerhalb des Feldes. Und die Ausgabe ist in RSI1_Buffer[i]. ...Es ist schwer zu beantworten, es sollte keine Ausgabe außerhalb des Arrays geben.
 
Hallo zusammen ...wer kann mir sagen, wie der folgende Code in mql5 aussehen würde:
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}
 
i999i:
Hallo zusammen ...wer kann mir sagen, wie der folgende Code in mql5 aussehen würde:
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}

Dieser Artikel soll helfen.

Ändern Sie double iFractals(string symbol, int timeframe, int mode, int shift) in vierfacher Ausführung in

double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }

 
Frage zum Strategietester: Ich muss eine Reihe von Parametern mit einem maximalen Prozentsatz an gewinnbringenden Geschäften auswählen - wie kann ich das tun? Das Optimierungskriterium "Balance + min DD" scheint mehr oder weniger geeignet zu sein, aber der Gewinn als Multiplikator blockiert alles andere...
 
f2011:
Frage zum Strategietester: Ich muss eine Reihe von Parametern mit einem maximalen Prozentsatz an profitablen Geschäften auswählen - wie kann ich das tun? Ich denke, "Balance + min DD" ist als Optimierungskriterium mehr oder weniger geeignet, aber der Gewinn als Multiplikator macht alles andere zunichte...

Was hat dies mit dem Saldo und dem Prozentsatz der Gewinngeschäfte zu tun?

Ich glaube, es war ein Artikel, google "Wie Sie Ihre eigenen Kriterien für die Optimierung eines Handels Roboter site:mql5.com".

 
R0MAN:

Was hat dies mit dem Saldo und dem Prozentsatz der Gewinngeschäfte zu tun?

Ich glaube, es war ein Artikel, google "Wie Sie Ihre eigenen Optimierungskriterien für einen Handelsroboter site:mql5.com".


Ich habe es gefunden, danke.

https://www.mql5.com/ru/articles/286

Создание собственных критериев оптимизации параметров эксперта
Создание собственных критериев оптимизации параметров эксперта
  • 2011.06.24
  • Dmitriy Skub
  • www.mql5.com
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
Grund der Beschwerde: