Вопросы от "чайника" - страница 29

 
Renat:
Визуализотор, как и вся платформа давно уже в релизе. Не путайте постоянный процесс выпуска новых версий со статусом беты.

Наш способ работы - это постоянное совершенствование частыми билдами.
Ренат, спорить не буду, но если говорить об визуализации - Да, релиз есть, но факту даже не все базовые вещи работают (или работаю как-то очень странно), об более сложных вещах приходится тока мечтать.
 
Interesting:

Логично предположить что возвращается 0 вместо количества пикселей :)

Поставьте проверку на результат этой строки и обработку деления на 0.

А по поводу возврата 0 вместо пикселей так это на прямую в СД...

Пока установил проверку с фиксированным значением в случае ошибки:

   if(width == 0) {  dbl_width = 1000;  } else {  dbl_width = width;  }

Убедился, что в тестере работают функции относящиеся к внешнему виду графика. Но обнаружил ещё один "баг?". Картинки .bmp на графике в режиме визуализации отображаются, как пустышки:

Кто-нибудь сталкивался с такой проблемой?  

 

 
tol64:

Пока установил проверку с фиксированным значением в случае ошибки:

Убедился, что в тестере работают функции относящиеся к внешнему виду графика. Но обнаружил ещё один "баг?". Картинки .bmp на графике в режиме визуализации отображаются, как пустышки:

Кто-нибудь сталкивался с такой проблемой?

Считайте что это не "баг", а такой "хитрый ход", согласно которому все будет этак в 500/600/1000 релизе...

Хотя нужно поверить как и откуда графика вешается на чарт, а телепаты говорят нынче отдыхают. :)

 
Interesting:

Считайте что это не "баг", а такой "хитрый ход", согласно которому все будет этак в 500/600/1000 релизе...

Хотя нужно поверить как и откуда графика вешается на чарт, а телепаты говорят нынче отдыхают. :)

В режиме реального времени всё работает. А в режиме визуализации такие пустышки отображаются. 

Вот так указываю откуда брать файлы:

#resource "\\Images\\IP_MQ5_TI.bmp"
#resource "\\Images\\IP_MQ5_MM.bmp"
#resource "\\Images\\IP_MQ5_TS.bmp"

#resource "\\Images\\IP_MQ5_TI_Hide.bmp"
#resource "\\Images\\IP_MQ5_MM_Hide.bmp"
#resource "\\Images\\IP_MQ5_TS_Hide.bmp"

Вот так присваиваю их глобальным переменным:

string TI_bmp_nm  = "TI";
string TI_bmp_pth = "::Images\\IP_MQ5_TI.bmp";
string MM_bmp_nm  = "MM";
string MM_bmp_pth = "::Images\\IP_MQ5_MM.bmp";
string TS_bmp_nm  = "TS";
string TS_bmp_pth = "::Images\\IP_MQ5_TS.bmp";

string hd_TI_bmp_nm  = "TI_hide";
string hd_TI_bmp_pth = "::Images\\IP_MQ5_TI_Hide.bmp";
string hd_MM_bmp_nm  = "MM_hide";
string hd_MM_bmp_pth = "::Images\\IP_MQ5_MM_Hide.bmp";
string hd_TS_bmp_nm  = "TS_hide";
string hd_TS_bmp_pth = "::Images\\IP_MQ5_TS_Hide.bmp";

Вот так у меня реализована функция создания объекта:

void Create_BMP_Label(long   chart_id,  // id графика
                      string bmp_nm,    // имя объекта
                      string bmp_path,  // путь к обекту
                      long   anchor,    // точка привязки
                      long   corner,    // угол привязки
                      int    x_dist,    // координата по шкале X
                      int    y_dist)    // координата по шкале Y
  {
   ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0);          // создание объекта
   ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path);   // BMP файл
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor);       // установка точки привязки
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner);       // установка угола привязки
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist);    // установка координаты X
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist);    // установка координаты Y
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false);    // нельзя выделить объект, если FALSE
   ObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n");         // нет всплывающей подсказки, если "\n"
  }

В OnInit() функция вызывается и в OnTick() при условии, если объект не найден.

В OnTick() сейчас поставил проверку на ошибку и тестер мне показал ошибку:

 

 А это означает, что Ордер не найден - ERR_TRADE_ORDER_NOT_FOUND. Я пока даже не использовал торговые функции в эксперте и ордеров не может быть.)))

Объекты типа OBJ_LABEL отображаются правильно. "Баг" относится только к картинкам .bmp в режиме визуализации в тестере.

В режиме реального времени всё ОК:

 

А в режиме визуализации вот так:

 

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

 

tol64:

Объекты типа OBJ_LABEL отображаются правильно. "Баг" относится только к картинкам .bmp в режиме визуализации в тестере.

В режиме реального времени всё ОК:

Некоторые объекты не отображаются в режиме визуализации, либо отображаются не корректно.

Это касается и картинок, видимо у разработчиков до этого функционала еще руки не дошли (у них ведь есть и другие проблемы, причем не только с тестером).

Кстати, шаблон с именем эксперта "пытается повторить" все то что имеется в реальном режиме, это можно использовать для выявления тех объектов которые пока не отображаются в режиме визуализации.

 
tol64:

В режиме реального времени всё работает. А в режиме визуализации такие пустышки отображаются. 

Непонятно, почему вообще работает.

void Create_BMP_Label(long   chart_id,  // id графика 0 если текущий
                      string bmp_nm,    // имя объекта
                      string bmp_path,  // путь к обекту
                      long   anchor,    // точка привязки          от
                      long   corner,    // угол привязки
                      int    x_dist,    // координата по шкале X
                      int    y_dist)    // координата по шкале Y   до - значение не присвоено
  {
   ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0);          // создание объекта
   ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path);   // BMP файл
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor);       // установка точки привязки
   //ObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner);       // установка угола привязки зачем?
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist);    // установка координаты X
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist);    // установка координаты Y
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false);    // нельзя выделить объект, если FALSE
   ObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n");         // нет всплывающей подсказки, если "\n"
  }

Правильный пример внизу страницы

Там еще поиск сначала идет, и перерисовка - где то попадалось, что лучше подстраховаться.

// Сильно не бить, сам учусь. 

 
MetaDriver:
А когда следующий?

В ближайшие день-два.

Сейчас в тестировании 480 билд, после внутренних тестов выпустим публично.

 
Renat:

В ближайшие день-два.

Сейчас в тестировании 480 билд, после внутренних тестов выпустим публично.

Спасибо!
 
Silent:

Непонятно, почему вообще работает.

Правильный пример внизу страницы

Там еще поиск сначала идет, и перерисовка - где то попадалось, что лучше подстраховаться.

// Сильно не бить, сам учусь. 

Я ничего не понял, что Вы хотели сказать. Красным что-то выделили... )) Вам удалось заставить отображаться объекты BMP (OBJ_BITMAP_LABEL) в тестере в режиме визуализации?
 
tol64:
Я ничего не понял, что Вы хотели сказать. Красным что-то выделили... )) Вам удалось заставить отображаться объекты BMP (OBJ_BITMAP_LABEL) в тестере в режиме визуализации?

Не пробовал, не до них пока.

Выделил ошибки, из-за которых код работать, вроде бы, не должен. Сравните свой код с тем, который в примере по ссылке.

Причина обращения: