[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 127

 
Нет.
 

Такой вопрос: в стандартном индикаторы ОА используются 2 дополнительных индексных буфера, которые не участвуют в отрисовке индикатора:

//+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];
double     ExtBuffer3[];
double     ExtBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+2);
   SetIndexDrawBegin(0,38);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0,ExtBuffer0);
   SetIndexBuffer(1,ExtBuffer1);
   SetIndexBuffer(2,ExtBuffer2);
   SetIndexBuffer(3,ExtBuffer3);
   SetIndexBuffer(4,ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("AC");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev,current;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i=0; i<limit; i++)
      ExtBuffer3[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-
                    iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);
//---- signal line counted in the 2-nd additional buffer
   for(i=0; i<limit; i++)
      ExtBuffer4[i]=iMAOnArray(ExtBuffer3,Bars,5,0,MODE_SMA,i);
//---- dispatch values between 2 buffers
   bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer3[i]-ExtBuffer4[i];
      prev=ExtBuffer3[i+1]-ExtBuffer4[i+1];
      if(current>prev) up=true;
      if(current&lt;prev) up=false;
      if(!up)
        {
         ExtBuffer2[i]=current;
         ExtBuffer1[i]=0.0;
        }
      else
        {
         ExtBuffer1[i]=current;
         ExtBuffer2[i]=0.0;
        }
       ExtBuffer0[i]=current;
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

Как видно в этих массивах производятся только рассчеты. Я не понимаю, для чего нужно присвоение этим массивам статуса индексных буферов?

 
neoclassic писал(а) >>

Такой вопрос: в стандартном индикаторы ОА используются 2 дополнительных индексных буфера, которые не участвуют в отрисовке индикатора:

Как видно в этих массивах производятся только рассчеты. Я не понимаю, для чего нужно присвоение этим массивам статуса индексных буферов?

что бы размер массива установить!

 

Здравствуте, форумчане!

Я полный ламер в MQL. Но хотелось бы иметь вот такой простой советник. Открывается поза каким-либо лотом. Выставляется сразу фиксированный стоп (20-30п.). После достижения определенного профита (20-30п.) происходит закрытие части позиции (50%), а на оставшуюся позу стоп переносится в безубыток. На остаток позы ставится профит-ордер или мониторится вручную. Вот такая идейка. Буду очень признателен за ответы.

 
vvavva >>:

что бы размер массива установить!

а что делать если нужно задействовать большое количество массивов? (больше 8)

 

использовать обычные массивы, а не буферные

вместо

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

использовать

ArrayResize(ExtBuffer3, Bars); ArrayResize(ExtBuffer4, Bars);

 
keekkenen >>:

использовать обычные массивы, а не буферные

вместо

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

использовать

ArrayResize(ExtBuffer3, Bars); ArrayResize(ExtBuffer4, Bars);


Спасибо!!

 
neoclassic писал(а) >>

а что делать если нужно задействовать большое количество массивов? (больше 8)

массивы для рисования в индюке больше установленного огранечения (кажись 8) незя!

обычные массивы для расчётов тоже имеют огранечения но цифра больше!

чтоб обойти огранечения по обычным массивам придётся задействовать библиотеки!

 
У меня вопрос. Можно ли сделать ожидатель новостей. Допустим сегодня будет новость точное время не известно известен примерный текст одно слово, нужен звуковой сигнал длинней и погромче можно это сделать.
 
Здравствуйте, подскажите plz как можно больше вариантов из-за чего переменная k=Bars может измениться в момент, когда новый бар еще не начал формироваться (любые возможные ситуации), допустим изменил валютную пару, таймфрейм, какое нибудь обновление mt4 или в д.ц.
Причина обращения: