Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 108

 

Это у меня у одного так?

История вся по символу подгружена по F2. Запускаю тестирование по всем тикам. Недельку всего. От 2013.12.02 до 2013.12.10

Тестер начинает загружать М1 и всё ... туши свет, кидай гранату. 8 минут историю грузилась, потом ещё минут пять вся система висела. Потом ещё минуты три жал Прервать процесс на вылетевших окошках от Мозиллы, что у неё там сценарий не отвечает ... Приступил к тестированию только минут через 15 после нажатия на Пуск в тестере. И ведь так каждый раз при запуске по всем тикам. Раньше не наблюдалось такого.

 
MetaDriver:

Стараюсь вообще никогда не давать папкам русских названий. Во избежание подобных проблем.

// И патриотизм по ночам не мучит. :)


Только днем? :)
 
tara:

Только днем? :)
Ещё на закате иногда
 
artmedia70:
Ещё на закате иногда


Любите Родину, Вашу Мать!
 

Функция помещает в заданное окно графика текстовый объект:

//+----------------------------------------------------------------------------+
void SetArrowText(int ww, string text, color cl, string font="Arial", string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TEXT, ww, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSetText(nm, text,sz, font, cl);
}
//+----------------------------------------------------------------------------+

Вызываю так:

         if(DrawGraphics) {                           // если рисуем графические объекты
            nm=Prefix+"_RPBar_"+TimeToStr(Time[i]);
            SetTLine(RedPointLineColor,0,nm,Time[i],Low[i],Time[i],WindowPriceMin(0),false,redPointLineStile,redPointLineWidth);
            wnd=WindowFind("i_StdDev("+sdperiod+")"); // номер окна индикатора
            if(wnd>0) {                               // если индикатор на графике, нарисуем метку
               nm=Prefix+"_RedPoint"+TimeToStr(Time[i]);
               SetArrowText(wnd, "RP", RedPointArrowColor, RedPointFont, nm, Time[i], dev(i), redPointArrowSize);
               }
            }

Т.е., сначала рисуем трендовую на графике цены, затем. если есть окно индикатора, то в нём рисуем текстовый объект. Трендовая на графике цены отображается верно и стоит там, где и положено - на времени появления события. А вот текст в окне индикатора - о ужас ... он движется за нулевым баром. И тут начинается самое интересное. Что текст, что текстовая метка ведут себя совершенно одинаково - остаются на том месте, куда их поместили. Стоит только объект текст сделать выделенным и, о чудо! он становится на своё место. Проиллюстрирую. Так выглядит всё это безобразие при работе советника - все текстовые объекты сбились в кучку в районе нулевого бара (там два выделенных - они встали на свои места, там я график подвигал туда-сюда и объекты где стояли, там и стоят - потому и не на нулевом баре):


А вот сейчас я просто пощёлкаю по ним мышкой и они все разместятся по своим местам:


ЗЫ. Что убрали из имён объектов путь до них от каталога данных - спасибо.

 
 
artmedia70:



На vra работаешь?))
 
Patrol:

Да, я это уже понял. Хотел убедиться в том, что правильно понял новую структуру, для чего обратился к файлу MQL4\Samples\DLLSample\DLLSample.cpp в новом билде 555, но там по-прежнему значится:

А правильно, как я понимаю, должно быть так:

Прошу внести ясность.

Да, Вы правильно поняли

PS. Кстати, Вы можете решить проблему малой кровью.

Формируете массив структур прежнего формата и, как раньше, передаёте этот массив в DLL. Которую и переписывать не надо будет

 
Zhunko:
Замена структуры бара это не просто засада, а засадище!
Эта засада очень легко обходится. Формируете массив структур прежнего формата и, как раньше, передаёте в DLL
 
stringo:
Эта засада очень легко обходится. Формируете массив структур прежнего формата и, как раньше, передаёте в DLL

Это так, в шутку сказал. Работа прежней функции не меняется.

Года 4 назад начал писать комплект классов на все случаи жизни с историей котировок. 3 года делал вместе с тестами. Сначала хотел сделать шаблон структуры бара с тремя параметрами, но потом посмотрел, что никто такое разнообразие не использует. Решил сделать с двумя параметрами. Теперь придётся, всё же, дополнить.