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

 
lihn:

Почему стёрли автора функций Игоря Кима?! Из-за неуважения к автору, но публиковать обязаны с указанием на авторство!

И свой вопрос лучше адресовать к автору в его ветке! Найдёте в поиске или в гугле! 

 

Подскажите, есть ли возможность рисовать разноцветные индикаторы в MQL4? Где взять пример?


В документации на MQL4 присутствует INDICATOR_COLOR_INDEX, но тема совершенно не раскрыта. Нашел пример на MQL5 - https://www.mql5.com/ru/articles/135 .

Компилируется успешно, но работает не так, как надо. Используемая в примере функция PlotIndexSetInteger успешно скомпилировалась, хотя в документации на MQL4 она отсутствует.


И еще одна нестыковка: в доке на MQL4 в описании функции ArrayCopy есть похожий пример, и в нем также применена функция PlotIndexSetInteger.


Разработчики в своем же лесу заблудились, или я что-то не понимаю?

 
Dubovik:

Подскажите, есть ли возможность рисовать разноцветные индикаторы в MQL4? Где взять пример?


В документации на MQL4 присутствует INDICATOR_COLOR_INDEX, но тема совершенно не раскрыта. Нашел пример на MQL5 - https://www.mql5.com/ru/articles/135 .

Компилируется успешно, но работает не так, как надо. Используемая в примере функция PlotIndexSetInteger успешно скомпилировалась, хотя в документации на MQL4 она отсутствует.


И еще одна нестыковка: в доке на MQL4 в описании функции ArrayCopy есть похожий пример, и в нем также применена функция PlotIndexSetInteger.


Разработчики в своем же лесу заблудились, или я что-то не понимаю?

Сколько цветов, столько и буфферов, ищите в Документации, Кодобазе, Статьях и на Форуме! И Гугль в помощь!
 
borilunad:
Сколько цветов, столько и буфферов, ищите в Документации, Кодобазе, Статьях и на Форуме! И Гугль в помощь!

Да я не то имею в виду, а индикаторы, у которых есть буфер, добавленный вот таким образом:

 SetIndexBuffer(4,buffer_color_line,INDICATOR_COLOR_INDEX);
 
Dubovik:

Да я не то имею в виду, а индикаторы, у которых есть буфер, добавленный вот таким образом:

В четверке данный параметр не работает. Сколько буферов, столько цветов
 
Это в мкл4?!
 
Ага, в MQL4. В документации что-то урывками описано, а по факту не работает.
 
Dubovik:
Ага, в MQL4. В документации что-то урывками описано, а по факту не работает.
Странно, обычно запаздывают в Доку вносить, а сейчас наоборот! Значит, будет! Только когда?!
 

Не пойму, в чем проблема? 

 

int start() 

{

bool i;

int ticket;

double Pricem;

datetime Timen; 

string Symb=Symbol();

ticket=OrderSend(Symb,OP_SELL,0.1,Bid,3,Ask+4*Point,Ask-12*Point);

i=OrderSelect(0,SELECT_BY_POS);

while(true)

{

RefreshRates();

Timen=OrderCloseTime();

  if(Timen>0)

   {

     Pricem=OrderClosePrice();

     Alert(Pricem);

     Alert("ордер закрылся");

     Sleep(30000);

 }

 Sleep(10);

 }

return;                              

}


Должно появиться сообщение о закрытии. Ордер открывается, добирается до стопа, закрывается и все! Где ошибка?
 

Решаю задачу закрытия всех открытых графиков средствами MQL4. Есть 3 открытых графика с разными валютными парами и такой код скрипта:

   for (int i=1;i<=3;i++) {
      long current=ChartID();
      Print("итерация цикла: ",i,", идентификатор текущего графика ",current);
      bool result=ChartClose(current);
      if(result)Print("окно успешно закрыто");
      else Print("не удалось закрыть окно с идентификатором: ", current);
   }

 При запуске скрипта закрывается лишь один из трех графиков и вот принты из лога:

AUDUSD,H1: итерация цикла: 1, идентификатор текущего графика 130627565403660021
AUDUSD,H1: окно успешно закрыто
AUDUSD,H1: итерация цикла: 2, идентификатор текущего графика 130627565403660021
AUDUSD,H1: окно успешно закрыто
AUDUSD,H1: итерация цикла: 3, идентификатор текущего графика 130627565403660021
AUDUSD,H1: окно успешно закрыто

 То есть при закрытии одного графика текущим вроде бы должен стать другой, но:

1. После закрытия первого графика функция ChartID возвращает идентификатор не текущего, а закрытого графика

2. Функция ChartClose() во 2 и 3 итерациях возвращает true, то есть она как бы успешно закрывает уже закрытое окно...

Кто-нить подскажет где баг и как решить эту задачу?