Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1073

 
Всем доброго времени суток!!! Друзья, подскажите. предположим есть в индикаторе буфер, который мне нужно использовать в расчёте других индикаторов. Так вот этот буфер отображает значки на графике. Как сделать так чтобы буфер индикатора был, но при этом он не отображал бы никаких значков на графике пары??? Всем спасибо!!!!
 
nikelodeon:
Всем доброго времени суток!!! Друзья, подскажите. предположим есть в индикаторе буфер, который мне нужно использовать в расчёте других индикаторов. Так вот этот буфер отображает значки на графике. Как сделать так чтобы буфер индикатора был, но при этом он не отображал бы никаких значков на графике пары??? Всем спасибо!!!!
   Вот пример для 2-х рисуемых (b1, b2) и 2-х  расчётных буферов (b3, b4), расчётные в терминале не отображаются:
#property indicator_buffers       2
#property indicator_level1        0
#property indicator_levelcolor    Silver
#property indicator_type1         DRAW_LINE
#property indicator_color1        Crimson
#property indicator_width1        2
#property indicator_type2         DRAW_LINE
#property indicator_color2        SteelBlue
#property indicator_style2        STYLE_DOT
#property indicator_width2        1

double b1[];
double b2[];
double b3[];
double b4[];

int OnInit()
{
//--- indicator buffers mapping
  IndicatorBuffers(4);
  SetIndexBuffer(0,b1,INDICATOR_DATA);
  SetIndexBuffer(1,b2,INDICATOR_DATA);
  SetIndexBuffer(2,b3,INDICATOR_CALCULATIONS);
  SetIndexBuffer(3,b4,INDICATOR_CALCULATIONS);
  SetIndexLabel (0, "b1");
  SetIndexLabel (1, "b2");
////...
  return(INIT_SUCCEEDED);
}
 
nikelodeon:   ... сделать чтобы буфер индикатора ... не отображал бы никаких значков на графике

Посмотрите справку по функции  SetIndexStyle()   и там   стили отрисовки линии   и  DRAW_NONE

 
evillive:
   Вот пример для 2-х рисуемых (b1, b2) и 2-х  расчётных буферов (b3, b4), расчётные в терминале не отображаются:
Да вот и нифига, они у вас не отображаются потому что количество буферов указанно 2. И обратится к буферу 3 и 4 из другого индикатора нет возможности.... Что меня и удивляет......
 
LRA:

Посмотрите справку по функции  SetIndexStyle()   и там   стили отрисовки линии   и  DRAW_NONE

А вот это реально по делу. Спасибо большое.... А то такая чехарда парой на графике. Теперь всё в порядке...
 
nikelodeon:
Да вот и нифига, они у вас не отображаются потому что количество буферов указанно 2. И обратится к буферу 3 и 4 из другого индикатора нет возможности.... Что меня и удивляет......

Ну тогда только  DRAW_NONE.

Мне вот только непонятно, зачем на график кидать индикатор, который вызывается через iCustom... 

 
evillive:
Ну тогда только  DRAW_NONE.
От души душевно в душу :-)
 
Всем добрый день! Разместив своего робота на нескольких парах, столкнулся с небольшой проблемой, которую наверное уже все прошли: если открыто несколько ордеров на разных парах, то при срабатывании команды CloseAllBuy() на одной из них, закрываются все БАИ на всех парах. Как этого избежать, не соображу. Вставив проверку по магику (см. ниже), получаю сообщение о неправильном тикете. У кого есть решение, помогите. Спасибо.           void CloseAllBuy()
{
  bool   fc;
   for (int i=OrdersTotal()-1; i>=0; i--)
      {
      if(OrderMagicNumber()!=magic || OrderSymbol()!=Symbol())  continue;
      if (OrderType()==OP_BUY && OrderMagicNumber()==magic)
         {
         fc=OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slip);
         buycloseprice=0.0;
         tc=OrderCloseTime();
         }
      }
}
 
rapid_minusполучаю сообщение о неправильном тикете.        OrderTicket()

    Владимир! Добавьте OrderSelect() в начало цикла

 
Спасибо. Вставил, на тестере нормально. Запущу на демку.
Причина обращения: