Новая версия MetaTrader 4 Client Terminal build 427 - страница 5

 
TarasBY:

Согласен! Постановка вопроса требует уточнения и соответствующего усложнения кода (я уже молчу о других инструментах):

Для неверующих картинка с M1.

Этот код:

void start()
 {
  while (!IsStopped())
   {
    Alert(iBars(NULL, 0));
    Sleep(500);
   }
 }
у меня тоже работает. Из картинки понял, что тебе надо установить в настройках МТ4 хотя бы 5000 баров на графике. Тогда будешь знать какой минимум. История приходит слишком быстро, чтобы это на глаз заметить. Не успевает эксперт начальное значение отобразить. Может даже подгрузка истории сначала происходит и только потом эксперт начинает работать.
 
marker:
У меня все обновляет, перезапускается, но, когда обновленный терминал закрываешь и вновь открываешь, он опять требует обновления и так каждый раз, операционка XP.

Такая же беда. У одного броекра обновилось нормально, а у второго нет. Win 7, права администратора.
 
Zhunko:

Этот код:

у меня тоже работает. Из картинки понял, что тебе надо установить в настройках МТ4 хотя бы 5000 баров на графике. Тогда будешь знать какой минимум. История приходит слишком быстро, чтобы это на глаз заметить. Не успевает эксперт начальное значение отобразить. Может даже подгрузка истории сначала происходит и только потом эксперт начинает работать.

Вот (на картинке в архиве) тот параметр, про который ты упоминаешь, а вот более сложный код, который хотелось бы, чтобы работал (с рядом открытого графика):

void start()
{
    string lsa_SYM[] = {"EURUSD","EURGBP","USDJPY","EURJPY"};
    static int pre_Bars = 0;
    int li_cnt, li_Bars;
    for (int li_SYM = 0; li_SYM < ArraySize (lsa_SYM); li_SYM++)
    {
        li_cnt = 0;
        while (!IsStopped())
        {
           li_Bars = iBars (lsa_SYM[li_SYM], PERIOD_M1);
           if (pre_Bars != li_Bars)
           {
               li_cnt++;
               Alert (lsa_SYM[li_SYM], ": ", li_Bars);
               pre_Bars = li_Bars;
           }
           if (li_cnt > 2) break;
           Sleep (500);
        }
    }
}
Файлы:
ibars2.zip  20 kb
 
Это у него запись венгерская.
 
TarasBY:

Вот (на картинке в архиве) тот параметр, про который ты упоминаешь, а вот более сложный код, который хотелось бы, чтобы работал (с рядом открытого графика):

Проверил с соседнего графика. Не работает. Это ошибка МТ4 и MQL4.
 

Хотел исправить, а нажал удалить

 

А так?

void start()
{
    string lsa_SYM[] = {"EURUSD","EURGBP","USDJPY","EURJPY"};
    static int pre_Bars = 0;
    int li_cnt, li_Bars;
    for (int li_SYM = 0; li_SYM < ArraySize (lsa_SYM); li_SYM++)
    {
        li_cnt = 0;
        while (!IsStopped())
        {
           RefreshRates();
           li_Bars = iBars (lsa_SYM[li_SYM], PERIOD_M1);
           if (pre_Bars != li_Bars)
           {
               li_cnt++;
               Alert (lsa_SYM[li_SYM], ": ", li_Bars);
               pre_Bars = li_Bars;
           }
           if (li_cnt > 2) break;
           Sleep (500);
        }
    }
}
 
fiver:

Заменил terminal.exe на билд 416, проблема с OrderCloseBy() осталась!!!

Необходимо откатываться до 409 билда (там всё работало, НО! мой ДЦ с 1 июня прекращает поддержку ниже 416 !!!

Вы не привели ни единой строчки кода и устраиваете тут истерику. Ищите ошибки в своем коде.

Мы все проверили - ошибок нет, функция работает нормально.

 
api: А так?

Сюда ещё можно прикрутить
WindowRedraw();
НО результат и ныне там. Обновление котировок здесь вооче-то вообще ни при чём - мы получаем НОВЫЙ бар, а не текущую котировку. Причём, в более явном виде соседний график открывается с "отложенным спросом" новых баров в несколько дней. И RefreshRates() здесь совсем "не пилюля"...
 

MarketInfo(OrderSymbol(), MODE_TICKVALUE) = 0

OrderSymbol()
выдаёт пустую строку.... при работе с ордерами из истории...

жесть ребята, чем занимается у вас отдел тестеров если такой вообще есть....

простейший скрипт что не свистю :)

int start()
{
  if(OrderSelect(0, SELECT_BY_POS, MODE_HISTORY ) )
  {
    Alert(OrderSymbol());
    Alert(MarketInfo(OrderSymbol(), MODE_TICKVALUE));
  }
  return(0);
}
Причина обращения: