Как правильно выставлять стрелки? - страница 3

 
Andrey F. Zelinsky:

да, это то

Тут вобщем такая проблемка, у меня в конце OnCalculate() есть два цикла, один выделяет сделки на покупку, а второй на продажу.Так вот, сделки показывает только цикла что сверху, т.е. на покупку, хотя описывал циклы одинаково, препроцессорные дерективы одинаковые ставил, всё одинаково...



  for(int a=1;a<rates_total;a++) 
     { 
      if((close[a]>open[a-1])) 
         BuyBuffer[a]=low[a]; else{ 
         BuyBuffer[a]=0;
         } 
        
     } 

//------------------------------------------

      for(int i=1;i<rates_total;i++) 
     { 
      if(close[i]<open[i-1]) 
         SellBuffer[i]=high[i]; 
      else {
         SellBuffer[i]=0; 
         }
     } 
 
ddras2:

Тут вобщем такая проблемка, у меня в конце OnCalculate() есть два цикла, один выделяет сделки на покупку, а второй на продажу.Так вот, сделки показывает только цикла что сверху, т.е. на покупку, хотя описывал циклы одинаково, препроцессорные дерективы одинаковые ставил, всё одинаково...




Два буфера стрелок надо -- одни стрелки будут на покупку -- а другие на продажу.

Каждый буфер будет иметь свой цвет (красный, синий, например) и свой символ (стрелка вверх, вниз)

p.s. И проверьте ещё здесь нужное количество:

#property indicator_buffers 1 
#property indicator_plots   1 
 
препроцессор
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//+----------------------------------------------+
//|  sell|
//+----------------------------------------------+
#property indicator_type1   DRAW_ARROW
#property indicator_color1  Red
#property indicator_width1  4
#property indicator_label1  " signal sell"
//+----------------------------------------------+
//| buy|
//+----------------------------------------------+
#property indicator_type2   DRAW_ARROW
#property indicator_color2  Blue
#property indicator_width2  4
#property indicator_label2 " signal buy"
input ushort   code1=234; 
input ushort   code2=233;
input ushort   SHIFT=5;
double SellBuffer[];
double BuyBuffer[];
int OnInit()
  {
  
   SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); 
   PlotIndexSetInteger(0,PLOT_ARROW,code1); 
   PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,SHIFT); 
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); 


   SetIndexBuffer(0,BuyBuffer,INDICATOR_DATA); 
   PlotIndexSetInteger(0,PLOT_ARROW,code2); 
   PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,SHIFT); 
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); 
//--- 
   return(INIT_SUCCEEDED); 

}
 
ddras2:
препроцессор

   SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); 
   PlotIndexSetInteger(0,PLOT_ARROW,code1); 
   PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,SHIFT); 
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); 


   SetIndexBuffer(0,BuyBuffer,INDICATOR_DATA); 
   PlotIndexSetInteger(0,PLOT_ARROW,code2); 
   PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,SHIFT); 
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); 
-- нумерация -- один буфер 0, второй 1
 
Andrey F. Zelinsky:

-- нумерация -- один буфер 0, второй 1
Заработало как нужно, осталось только подставить своё условие. Спасибо за быстрые а главное дельные советы.