Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 874

 

Merhaba, lütfen aşağıdaki kodda, döngü bloğu olmadan (CopyByffer'dan sonra gelir), gösterge normal şekilde başlar, ancak bir mumun fiyatını bantlardan birinin fiyatı ile karşılaştırmak için döngüyü açarsanız, söyleyin. lansmandan sonra grupların kendileri görüntülenmeyi bırakıyor, sorun ne olabilir?

 #property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots    3
#property indicator_type1    DRAW_LINE
#property indicator_color1   Olive
#property indicator_type2    DRAW_LINE
#property indicator_color2   Green
#property indicator_type3    DRAW_LINE
#property indicator_color3   Olive

input int peroid = 20 ;         // период полос 1
input int bands_shift= 0 ;           // смещение полос 1 
input double deviation = 2.3 ;   // отклонение полос 1

input ENUM_APPLIED_PRICE    applied_price= PRICE_CLOSE ; // тип цены 

double       Base[];     // массив для BASE_LINE индикатора iBands
double       Upper[];     // массив для UPPER_BAND индикатора iBands
double       Lower[];     // массив для LOWER_BAND индикатора iBands

int iBands1_handle; //Указатель на первый индикатор 
int iBands2_handle; //Указатель на первый индикатор 

int g_i_Window;


int OnInit ()
  {
   g_i_Window= ChartWindowFind ();
   SetIndexBuffer ( 0 ,Base, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,Upper, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,Lower, INDICATOR_DATA );
           
   iBands1_handle= iBands ( NULL , PERIOD_CURRENT ,peroid,bands_shift,deviation,applied_price);

   if (iBands1_handle== INVALID_HANDLE ){
         Alert ( "Неудалось загрузить индикатор, повторите попытку" );
         return (- 1 );
         }
   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 
  {
   int i;
   int shift = 0 ;
   int shift1;
   int shift2;
   int shift3;
   string alert;
   
   double O, O1, O2, C, C1, C2, L, L1, L2, H, H1, H2;
      shift1 = shift;
      shift2 = shift + 1 ;
      shift3 = shift + 2 ;   
      O = open[shift1];
      O1 = open[shift2];
      O2 = open[shift3];
      H = high[shift1];
      H1 = high[shift2];
      H2 = high[shift3];
      L = low[shift1];
      L1 = low[shift2];
      L2 = low[shift3];;
      C = close[shift1];
      C1 = close[shift2];
      C2 = close[shift3]; 
   
   i = (prev_calculated== 0 )? 1 : prev_calculated;
   i = (prev_calculated==rates_total)?rates_total- 1 : i;
   
   CopyBuffer (iBands1_handle, 0 , 0 ,rates_total- 1 ,Base);
   CopyBuffer (iBands1_handle, 1 , 0 ,rates_total- 1 ,Upper);
   CopyBuffer (iBands1_handle, 2 , 0 ,rates_total- 1 ,Lower);

   for (i = i; i < rates_total; i++)
   {
     if (H > L && O > Lower[i])
    {
     int time_waiting = ( int ) TimeLocal () + 1 ;
     while ( TimeLocal () < time_waiting){}
     Comment ( "True" );
     return ( 0 );
    }
     else Comment ( "False" ); 
   }
   
   
   if (prev_calculated== 0 ) ChartRedraw ();   
   return (rates_total);
  }

Sonuç:


 
Aleksey Vyazmikin :

Yasaktır.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Alexey Viktorov , 2018.05.30 15:53

Pekala, o kadar dinamik değil, ama bir kez yeniden başlatma yoluyla mümkün. Yapıyordum.


 
Alexey Viktorov :

lütfen mümkünse daha detaylı anlatın

 
Andrii Djola :

lütfen mümkünse daha detaylı anlatın

Daha ne kadar detaylı?

Bir durumda, renkli çubuklar veya renkli mumlar yapmam gerekiyordu. 4 değer tamponu ve 1 renk tamponu kullanırlar. Diğer bir seçenek ise, 1 değer tamponu ve 1 renk tamponu olan renkli bir çizgi ile gösterilmesi gerekiyordu.

Gösterge özelliklerini çağırmak ve değiştirmek, göstergenin başlatılmasına neden olur. Buna göre, ayarlarda çubuklar veya mumlar varsa, başlatma için bir seçenek. Bir satır ise, başlatma için başka bir seçenek.

Diğer seçeneklerden habersiz Alexey Vyazmikin'in dediği gibi, göstergenin ortasındaki tampon sayısını değiştirmek imkansız.

 
Alexey Viktorov :

Daha ne kadar detaylı?

Bir durumda, renkli çubuklar veya renkli mumlar yapmam gerekiyordu. 4 değer tamponu ve 1 renk tamponu kullanırlar. Diğer bir seçenek ise, 1 değer tamponu ve 1 renk tamponu olan renkli bir çizgi ile gösterilmesi gerekiyordu.

Gösterge özelliklerini çağırmak ve değiştirmek, göstergenin başlatılmasına neden olur. Buna göre, ayarlarda çubuklar veya mumlar varsa, başlatma için bir seçenek. Bir satır ise, başlatma için başka bir seçenek.

Diğer seçeneklerden habersiz Alexey Vyazmikin'in dediği gibi, göstergenin ortasındaki tampon sayısını değiştirmek imkansız.

Soyadımı Rusça yazmaya karar verirseniz, Vyazmikin gibi geliyor.

Şüphelerime gelince - sorulan sorunun cevabını doğru buluyorum. İhtiyaçları açıklamadan başka bir şey söylemenin anlamı yok. Yeniden başlatma, programın yeniden başlatılmasıdır, ayarlarda herhangi bir şeyi değiştirebileceğiniz açıktır.

 
Aleksey Vyazmikin :

Soyadımı Rusça yazmaya karar verirseniz, Vyazmikin gibi geliyor.

Şüphelerime gelince - sorulan sorunun cevabını doğru buluyorum. İhtiyaçları açıklamadan başka bir şey söylemenin anlamı yok. Yeniden başlatma, programın yeniden başlatılmasıdır, ayarlarda herhangi bir şeyi değiştirebileceğiniz açıktır.

Yumuşak bir işaretin olmaması çok mu rahatsız ediyor?

Sadakatsizlikten bahsettim mi, bence cevabın doğruluğunu vurguladım.

 
alph :
Lütfen söyle bana, test cihazının böyle bir göstergesi hayatta gerçek mi? Ve 3000 $ depo ile yıl için iyi mi yoksa kötü bir sonuç mu?
gerçekten.
 
Alexey Viktorov :

Yumuşak bir işaretin olmaması çok mu rahatsız ediyor?

Ben aydınlanma tarafından yönlendiriliyorum, kırgınlık değil. Neden güceneyim, doğru yazmayı biliyor muydun ve beni gücendirmek mi istedin? Bu seçeneği düşünmedin bile, değil mi?

 
Aleksey Vyazmikin :

Ben aydınlanma tarafından yönlendiriliyorum, kırgınlık değil. Neden güceneyim, doğru yazmayı biliyor muydun ve beni gücendirmek mi istedin? Bu seçeneği düşünmedin bile, değil mi?

Barış, dostluk, sakız.

 
Alexey Viktorov :

Barış, dostluk, sakız.

Yarım litreye ne dersin?