Hatalar, hatalar, sorular - sayfa 14

 
stringo :
bool optimizasyonu düzeltildi
Peki, tamam, ama uygulamada herhangi bir hareket görmüyorum (hala bazı nüanslar vardı) ...
 
Interesting :
Peki, tamam, ama uygulamada herhangi bir hareket görmüyorum (hala bazı nüanslar vardı) ...

Lütfen bekle.

Uygulamalar bir süre sonra senkronize edilir.

 
alexvd :

Lütfen bekle.

Uygulamalar bir süre sonra senkronize edilir.

Fark ettiyseniz, hatırlatırsanız, senkronizasyon daha hızlıdır ...


not

Örneğin, 14620 numaralı başvurumu unuttular (acı verici derecede uzun bir şey senkronize edildi) ...

 

Bana neyi yanlış yaptığımı söyle. Açıklama için göstergeler oluşturulur.

1. iki gösterge oluşturdu, her şey ayrı ayrı çalışıyor (çiziyor).

Gösterge 00 (tek renk)

 #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);
  }

Gösterge 11 (çok renkli)

 #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);
  } 

2. Şimdi bunları birleştirmek istiyorum, indikatör 11'i (çok renkli) baz alıyorum ve buna indikatör 00'da olduğu gibi 1 tane daha tampon ekliyorum.

(Buffer_2[i]=high[i];) satırı çizilmiyor, hesaplanmasına rağmen rengini değiştirebilirsiniz.

 #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);
  }

Neyi yanlış yapıyorum?

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

Neyi yanlış yapıyorum?


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

dize :

Yaygın bir uygulama, özellikle çok sayıda ayar varsa, ayarlar için bir yapılandırma dosyası kullanmaktır. Ancak yapılandırma dosyasının adı parametre olarak iletilebilir.

Yaygın bir uygulama (profesyoneller arasında), terminalin çökme yerine bir hata mesajı vermesidir.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции - Документация по MQL5
 
simpleton :
Yaygın bir uygulama (profesyoneller arasında), terminalin çökme yerine bir hata mesajı vermesidir.

Destek - Her fırsatta terminali kapatmayın veya uzmanı tablodan çıkarmayın (geliştiricilere göre)...


not

Kuşlardan bahsetmişken, sadece bu konuda 17391 numaralı bir başvuru var...

 
Interesting :

Fark ettiyseniz, hatırlatırsanız, senkronizasyon daha hızlıdır ...


not

Örneğin, 14620 numaralı başvurumu unuttular (acı verici derecede uzun bir şey senkronize edildi) ...

Yardımın en son sürümünü indirin ve " MQL5 Referansı / Standart Sabitler, Numaralandırmalar ve Yapılar / Ortam Durumu / Cihaz Bilgileri " bölümüne bakın.
 
Rosh :
Yardımın en son sürümünü indirin ve " MQL5 Referansı / Standart Sabitler, Numaralandırmalar ve Yapılar / Ortam Durumu / Cihaz Bilgileri " bölümüne bakın.

Çevrimiçi sürümü elimdeki dosyayla karşılaştırdım. Ya ben tamamen körüm ya da onlar tamamen aynı...

Anladığım kadarıyla, terminalin bir sonraki sürümünden ve yardımın yeni sürümünden mi bahsediyoruz?

Neden: