Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1038

psyman:

Как изменить цвет линии ордера или открытой позиции?

Сейчас они все одинаково зеленые, что вызывает путаницу, а найти их перебором не получается

Доступны только те объекты что были созданы пользователем.

Нужно делать перебор всех ордеров и позиций, и на каждый тип рисовать по цене горизонтальную линию нужного цвета и стиля.

Vitaly Muzichenko:

Нужно делать перебор всех ордеров и позиций, и на каждый тип рисовать по цене горизонтальную линию нужного цвета и стиля.

Фигово что две линии получается вместо одной.

Я иногда ордера мышью перетаскиваю, с таким костылем сильно не попляшешь :-)

psyman:

Фигово что две линии получается вместо одной.

Я иногда ордера мышью перетаскиваю, с таким костылем сильно не попляшешь :-)

Всё будет перетаскиваться и работать

Вопрос по реакции функции OnChartEvent()
Кручу колёсико мыши от себя, получаю:     event = 9    lparam = 0    dparam = 0.0    sparam =
Кручу на себя - ничего не получаю.

Прошу высказать Ваши комментарии.

User_mt5:

Вопрос по реакции функции OnChartEvent()
Кручу колёсико мыши от себя, получаю:     event = 9    lparam = 0    dparam = 0.0    sparam =
Кручу на себя - ничего не получаю.

Прошу высказать Ваши комментарии.

Потому, что ID = 9 независимо от направления вращения колёсика.

User_mt5:

Прошу высказать Ваши комментарии.

а где Ваш код который не работает?

вот из справки код проверил - работает: https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents#chartevent_mouse_wheel

Вы разрешили принимать сообщения о прокрутке колесика в свой код?

init OnInit() 
  { 
//--- включение сообщений о прокрутке колесика мышки 
   ChartSetInteger(0,CHART_EVENT_MOUSE_WHEEL,1); 
//--- принудительное обновление свойств графика гарантирует готовность к обработке событий 
   ChartRedraw(); 
//--- 
   return(INIT_SUCCEEDED); 
  } 
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
Alexey Viktorov:

Потому, что ID = 9 независимо от направления вращения колёсика.

Думаю, МТ далёк от совершенства, но не настолько же.

Спасибо.

Igor Makanu:

а где Ваш код который не работает?

вот из справки код проверил - работает: https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents#chartevent_mouse_wheel

Вы разрешили принимать сообщения о прокрутке колесика в свой код?

Да, мне следовало бы представить код. Но он простой: в функции OnChartEvent() в первой строке стоит принт:
void OnChartEvent(const int     event, 
                  const long&   lparam,
                  const double& dparam,
                  const string& sparam 
                  )
   {
   Print(" event = ", event, "    lparam = ", lparam, "    dparam = ", dparam , "    sparam = ", sparam  ); 

Наверное, этого недостаточно..

Вы представили программные строки, содержание которых я посмотрю подробно и поэкспериментирую. Может быть, это и решит вопрос.

Спасибо большое!

User_mt5:
Да, мне следовало бы представить код. Но он простой: в функции OnChartEvent() в первой строке стоит принт:

Наверное, этого недостаточно..

Вы представили программные строки, содержание которых я посмотрю подробно и поэкспериментирую. Может быть, это и решит вопрос.

Спасибо большое!

код из справки рабочий, я в логе получил на прокрутку колесика значения delta = +120 и delta = - 120 

что соответствует прокрутке в одну сторону и в другую

ЗЫ: учтите, что Printы терминал иногда может "проглотить" если будет частый вывод в лог

Igor Makanu:

код из справки рабочий, я в логе получил на прокрутку колесика значения delta = +120 и delta = - 120 

что соответствует прокрутке в одну сторону и в другую

ЗЫ: учтите, что Printы терминал иногда может "проглотить" если будет частый вывод в лог

MQL для меня во многом остаётся загадочным. В данном случае после активации мыши событие 9 не ушло из логов. Теперь в одну сторону - 9 и 11, а в другую -  только 11. Я этого не понимаю, хоть убейте.

И не поняно почему одни события надо включать, а для других это не требуется.  (я теперь понимаю почему прошляпил включение мыши - потому, что не ждал этого, а справку мы же не читаем всю подряд без исключения)

120 я тоже получил и тоже мне пока не понятно что это такое. Буду разбираться.

Вам ещё раз спасибо, Вы очень помогли!