Fehler, Irrtümer, Fragen - Seite 14

 
stringo:
Die Optimierung nach bool wurde korrigiert
OK, nur sehe ich keine Bewegung in der Bewerbung (es gab da noch gewisse Nuancen)...
 
Interesting:
OK, nur sehe ich keine Bewegung in der Bewerbung (es gab da noch gewisse Nuancen)...

Bitte warten Sie.

Die Anwendungen werden nach einer Weile synchronisiert.

 
alexvd:

Bitte warten Sie.

Die Anwendungen werden nach einer gewissen Zeit synchronisiert.

Es hat sich gezeigt, dass die Synchronisierung schneller erfolgt, wenn man sie daran erinnert...


PS

Zum Beispiel scheint meine Anfrage #14620 vergessen worden zu sein (es dauert zu lange, sie zu synchronisieren)...

 

Können Sie mir sagen, was ich falsch mache? Die Indikatoren wurden zur Verdeutlichung erstellt.

1. ich habe zwei Indikatoren erstellt, getrennt funktioniert alles (zeichnet).

Blinker 00 (einfarbig)

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_color1  Green

double      Buffer_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=high[i];
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Indikator 11 (mehrfarbig)

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   1
#property indicator_color1  Blue,Yellow,Red

double      Buffer_0[],Buffer_1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=low[i];
     Buffer_1[i]=1;
     if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
     if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  } 

Ich möchte sie miteinander kombinieren; ich nehme den Indikator 11 (Multicolor) als Basis und füge einen Puffer hinzu, wie es beim Indikator 00 der Fall ist

Die Linie (Buffer_2[i]=high[i];) wird nicht gezeichnet, obwohl sie berechnet wird, ich kann die Farbe ändern.

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   2
#property indicator_color1  Blue,Yellow,Red
#property indicator_color2  Green

double      Buffer_0[],Buffer_1[];
double      Buffer_2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
   SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,Buffer_2,INDICATOR_DATA);
   
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
   PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[])        // Spread
  {
   if(rates_total<10) return(0);
   int  start_pos=0;   // точка старта

   if(prev_calculated==0) start_pos=rates_total-100;
   else start_pos=prev_calculated-1;
   
   for(int i=start_pos;i<rates_total;i++)
     {
     Buffer_0[i]=low[i];
     Buffer_2[i]=high[i];// вот это не рисует
     Buffer_1[i]=1;
     if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
     if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Was mache ich falsch?

Dateien:
00.mq5  2 kb
11.mq5  2 kb
22.mq5  3 kb
 
Prival:

Was mache ich falsch?


PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
 
Ich danke Ihnen.
 
sergey1294:
Вопрос был по поводу внешних параметров input , у меня в советнике их большое количество, необходимые для более гибкой настройки эксперта, так вот как только я выбираю своего эксперта из общего списка в тестере, вылетает сразу терминал. с меньшим количеством нормально.

stringo:

Es ist gängige Praxis, eine Konfigurationsdatei für Einstellungen zu verwenden, insbesondere wenn es viele Einstellungen gibt. Der Name der Konfigurationsdatei kann jedoch als Parameter übergeben werden.

Eine gängige Praxis (unter Fachleuten) ist, dass das Terminal eine Fehlermeldung ausgibt, anstatt abzustürzen.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
 
simpleton:
Die gängige Praxis (unter Fachleuten) ist, dass das Terminal eine Fehlermeldung ausgibt, aber nicht, wenn es abstürzt.

Ich unterstütze Sie - Schließen Sie nicht bei jeder Gelegenheit das Terminal oder entfernen Sie den EA aus dem Chart (laut den Entwicklern)...


PS

Apropos Vögel, es gibt eine Anfrage #17391 genau zu diesem Thema...

 
Interesting:

Das ist ein guter Punkt, wenn man sich daran erinnert, dass die Synchronisierung schneller geht...


PS

Zum Beispiel scheinen sie meine Anfrage #14620 vergessen zu haben (es dauert zu lange, sie zu synchronisieren)...

Laden Sie die neueste Version der Hilfe herunter und sehen Sie sich"MQL5 Referenz / Standardkonstanten, Aufzählungen und Strukturen / Umgebungsstatus / Toolinfo" an.
 
Rosh:
Laden Sie die neueste Version der Hilfe herunter und sehen Sie sich"MQL5 Referenz / Standardkonstanten, Aufzählungen und Strukturen / Umgebungsstatus / Toolinfo" an.

Ich habe die Online-Version mit der Datei verglichen, die ich habe. Entweder bin ich völlig blind oder sie sind völlig identisch...

Ich nehme an, wir sprechen über die nächste Version des Terminals und eine neue Version der Hilfe?