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

 
Evgeny Dyuka:
Есть возможность в MT5 отключить логи тестера стратегий? Лишних Print не имею, но за ночь набежало 20Гб, VPS заклинило. У меня стратегия работает на 7ми парах и по каждой до 10 сделок в сутки...

Чисто мысли в слух.
Если программно отслеживать директорию логов и удалять от туда лишний хлам. Или попробовать запретить терминалу писать в данную директорию.
Признаюсь честно не пробовал, но по идеи один из вариантов должен помочь. Запрет на запись конечно может не пройти, т.к. есть вероятность получения ошибки работы терминала. А вот сторония чистка директории вполне безобидный вариант.

 
Konstantin Nikitin:

А вот сторония чистка директории вполне безобидный вариант.

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

 
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  ); 

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

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

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

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