Ошибки, баги, вопросы - страница 2039

 
Расскажите, плиз, как пользователи MacOS скачивают и ставят себе продукты из Маркета? В терминале, как известно, закладка Маркета не работает. А в браузере, как мне человек жалуется, по нажатию кнопки download идет запрос, установлен ли терминал (он отвечает "да", но как он там из-под Wine может определиться - у меня большое сомнение), и дальше ничего не происходит. В общем оба способа не работают - один, так сказать, из-за подтвержденной нерешаемой проблемы, второй - яко-бы рабочий.
 
Stanislav Korotky:

В МТ5 так плавно не получится - там, похоже, введено много новых сущностей/потоков, которые терминал синхронизирует в том числе при отрисовке.

Через события мыши плавно именно в MT5.

 
fxsaber:

Через события мыши плавно именно в MT5.

У меня на видео по событию мыши на двух платформах. Плавно до тех пор, пока нет никаких расчётов в коде, если есть расчёты как у меня, тогда плавность пропадает

 
Vitaly Muzichenko:

У меня на видео по событию мыши на двух платформах. Плавно до тех пор, пока нет никаких расчётов в коде, если есть расчёты как у меня, тогда плавность пропадает

Да, заметил подтормаживание MT5 на видео. Скорее всего, расчеты на MT5 тяжелее.

 
fxsaber:

Да, заметил подтормаживание MT5 на видео. Скорее всего, расчеты на MT5 тяжелее.

Нет, скорее всего немного не такой алгоритм обработки графики. На мт4 ни одна работа не тормозит, а вот с пятёркой проблемы возникают. Особенно заметно при работе с мультиоконной графикой.

 
A100:

 А чем в данном случае MouseMove принципиально отличается от миллисекундного таймера? При том что параметры MouseMove (x, y) не используются. Полагаю у Вас плавность за счет небольшого числа графических объектов. Я например в MetaTrader 4 в свое время зацикливал скрипт и как то оно даже пошустрее работало

Параметры MouseMove(x, y, key) используются. Определяется положение курсора и нажатие кнопки мышки, основная линия перемещается средствами mql, а не возможностями интерфейса терминала, т.е. программа следит не за перемещением линии, а за положением курсора относительно линии. Одновременное движение линий обеспечивается тем, что синхронно изменяются координаты основной и зависимых линий.

Stanislav Korotky:

Юрий, это наверно в МТ4? В МТ5 так плавно не получится - там, похоже, введено много новых сущностей/потоков, которые терминал синхронизирует в том числе при отрисовке.

Без разницы, в МТ4 и МТ5 работает одинаково. 

 

Не работает в подокне индикатора, что делаю не так?

  datetime dt =0; 
  double price =0; 
  int window= ChartWindowFind();
  ChartXYToTimePrice(0,5,34,window,dt,price);
  PrintFormat("Window=%d  =>  time=%s  Price=%G",window,TimeToString(dt),price);

2017.10.15 05:35:36.060	i-Stp EURCHF,M30: Window=0  =>  _Time=2017.09.29 22:00  _Price=0.904348
  datetime dt =0; 
  double price =0; 
  int window= ChartWindowFind();
// ChartXYToTimePrice(0,5,34,window,dt,price);
  PrintFormat("Window=%d  =>  _Time=%s  _Price=%G",window,TimeToString(dt),price); 

2017.10.15 05:37:13.997	i-Stp EURCHF,M30: Window=1  =>  _Time=1970.01.01 00:00  _Price=0
 
Yury Kulikov:

Параметры MouseMove(x, y, key) используются. Определяется положение курсора и нажатие кнопки мышки, основная линия перемещается средствами mql, а не возможностями интерфейса терминала, т.е. программа следит не за перемещением линии, а за положением курсора относительно линии. Одновременное движение линий обеспечивается тем, что синхронно изменяются координаты основной и зависимых линий.

Странно, я совсем не использую координаты мыши, лишь реагируют на id == CHARTEVENT_MOUSE_MOVE. И все отлично работает, что, собственно, и логично.

Для плавности кастомный DND не требуется. Если делать касмтоный DND, тогда и делать кастомные объекты через канвас. Уж там точно никакого лага быть не может, т.к. объект всегда один.

 
Vitaly Muzichenko:

Не работает в подокне индикатора, что делаю не так?

а что ожидалось и что именно не работает?
 
Kirill Belousov:
а что ожидалось и что именно не работает?

Ожидалось преобразовать координаты в подокне, и получить цену.

Работает в основном окне, в подокнах не работает, что и видно по принтам.

Так-же функция подменяет номер подокна на "0", то есть на главное:

Преобразует координаты  X и Y графика в значения время и цена.
bool  ChartXYToTimePrice(
   long           chart_id,     // идентификатор графика
   int            x,            // координата X на графике
   int            y,            // координата Y на графике
   int&           sub_window,   // номер подокна
   datetime&      time,         // время на графике
   double&        price         // цена на графике
   );