Что скажут профи: Как получить значения скрола мышки в MQL? [репост с пятого форума] - страница 8

 

спасибо, немного запоздало, но все же.

 
Ihor Herasko:

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

Если исходить из того, что написание собственной DLL не рассматривается, то может тогда и от API отказаться? Если косвенный способ подходит, то:

Вешаем на график зацикленный скрипт, который проверяет индекс первого видимого бара в окне - WindowFirstVisibleBar (можно вместе с количеством баров в окне - WindowBarsPerChart). Если отличаются от предыдущего значения, то совершались действия с графиком. Правда, в этом случае не только колесико мыши могло быть причиной (изменение масштаба по времени - "+", "-", нажатие Home или End, прямой переход к нужной дате).

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

P.S. Ну а если нужен доступ к функции обработки окна, то это SetWindowLongPtr (см. msdn). Но без DLL тут не обойтись, т.к. нельзя назначить новую процедуру обработки сообщений, расположенную в MQL-коде.


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


P.S. Был рад помочь.)

 
Реter Konow:

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


P.S. Был рад помочь.)


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

 
Реter Konow:

Лучшим вариантом, будет передать тебе решение в общих чертах, но не с целью что либо доказать, а на основании дружбы.

Конечно, реализация является попыткой найти выход из безвыходного положения. При полном отсутствии возможности прокрутки колесиком, - это самое простое и "родное" решение. Для получения полноценного решения я уже обращался в сервисдеск. Ну а будет оно или нет, зависит он разработчиков.

Я так и понял, что реализация будет с прыгающим графиком. Согласен, что лучшее решение - это упасть в ноги разработчикам и попросить добавить событие прокрутки и нажатия колесика, а также возможность временного отключения скролинга графика колесиком мышки. Ведь для них это ну совсем не сложно - десяток строк кода. Не понятно, чего это они вдруг решили, что никому не понадобиться колёсико мышки... Но если очень приспичит, то решение от прыгающего графика, как вариант, может быть такое: отключение самого графика (  ChartSetInteger(0,CHART_SHOW,false);  ) и создание его дубля через CCanvas, но это, конечно же,  всё бубны, поход к соседу через Северный Полюс. 

Но все равно - зачёт и ты, Пётр - крутяшка и хороший программист. Это я всегда говорил, но и говорил так же, что свой творческий потенциал ты тратишь на "выращивание помидоров в Турции", где они нафиг никому не нужны. 

 
Nikolai Semko:

...но и говорил так же, что свой творческий потенциал ты тратишь на "выращивание помидоров в Турции", где они нафиг никому не нужны. 

Изложу свою точку зрения.

Сейчас у платформы МТ5 накопился огромный потенциал. Множество возможностей и библиотек. Но вместе с этим, развитие MQL-программ зашло в тупик. 

Преграда дальнейшему развитию - отсутствие возможности роста программ внутри платформы.

Пользователи не могут далее расширять свой программный функционал, не имея возможности вывести модули управления им в графический интерфейс.  

Отсутствие GUI у MQL-программ является глобальной преградой их дальнейшему развитию. Ренат говорил, что период "детских" программ в одну страницу должен закончится. Я с ним полностью согласен. Но как он может закончится, если у трейдеров нет физической возможности вылезти из "коротких штанишек"?

Перечислим последствия отсутствия GUI у MQL-программ:

  • Невозможность объединить большее количество программных блоков, которые бы расширили возможности пользователя.
  • Сжатые до предела рамки взаимодействия пользователя со своей программой.
  • Отсутствие серьезного полуавтоматического трейдинга как такогово. Многие предпочли бы именно полуавтоматический трейдинг полностью автоматическому. 
  • Неудобство проведения рыночных исследований, которое не позволяет профессионалам разгонуться в полный рост.
  • Нет собственного ведения статистики.
  • Необходимость работать через костыли со сторонними приложениями, предпосылкой которой является отсутствие GUI. Ведь если бы оно было, исследование можно проводить в MQL-программах.

Весь полезный материал МТ5 как бы "заперт" внутри и малодоступен.

Как только появится GUI, костыли отпадут, а возможности заложенные в МТ5 станут открыты. Также появится много новых возможностей.

//-----------------------------------------------------------------------------------------------------------

Моя аксиома: НЕ МОЖЕТ СЛОЖНАЯ ПРОГРАММА БЫТЬ ПОЛНОЦЕННОЙ, ЕСЛИ У НЕЕ НЕТ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА КАК СРЕДСТВА ВЗАИМОДЕЙСТВИЯ С ПОЛЬЗОВАТЕЛЕМ. Она будет оторванной и запертой внутри машины.  Работать с ней всегда неудобно. Если она изначально примитивна и проста, то GUI не нужен, но в такой сфере как торговля, программа должна постоянно развиваться и взаимодействовать с пользователем. Без этого, вся отросль алготрейдинга достигнет потолка и развиваться не будет.

 
Реter Konow:

Изложу свою точку зрения.

Сейчас у платформы МТ5 накопился огромный потенциал. Множество возможностей и библиотек. Но вместе с этим, развитие MQL-программ зашло в тупик. 

Преграда дальнейшему развитию - отсутствие возможности роста программ внутри платформы.

Пользователи не могут далее расширять свой программный функционал, не имея возможности вывести модули управления им в графический интерфейс.  

Отсутствие GUI у MQL-программ является глобальной преградой их дальнейшему развитию. Ренат говорил, что период "детских" программ в одну страницу должен закончится. Я с ним полностью согласен. Но как он может закончится, если у трейдеров нет физической возможности вылезти из "коротких штанишек"?

Перечислим последствия отсутствия GUI у MQL-программ:

  • Невозможность объединить большее количество программных блоков, которые бы расширили возможности пользователя.
  • Сжатые до предела рамки взаимодействия пользователя со своей программой.
  • Отсутствие серьезного полуавтоматического трейдинга как такогово. Многие предпочли бы именно полуавтоматический трейдинг полностью автоматическому. 
  • Неудобство проведения рыночных исследований, которое не позволяет профессионалам разгонуться в полный рост.
  • Нет собственного ведения статистики.
  • Необходимость работать через костыли со сторонними приложениями, предпосылкой которой является отсутствие GUI. Ведь если бы оно было, исследование можно проводить в MQL-программах.

Весь полезный материал МТ5 как бы "заперт" внутри и малодоступен.

Как только появится GUI, костыли отпадут, а возможности заложенные в МТ5 станут открыты. Также появится много новых возможностей.

//-----------------------------------------------------------------------------------------------------------

Моя аксиома: НЕ МОЖЕТ СЛОЖНАЯ ПРОГРАММА БЫТЬ ПОЛНОЦЕННОЙ, ЕСЛИ У НЕЕ НЕТ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА КАК СРЕДСТВА ВЗАИМОДЕЙСТВИЯ С ПОЛЬЗОВАТЕЛЕМ. Она будет оторванной и запертой внутри машины.  Работать с ней всегда неудобно. Если она изначально примитивна и проста, то GUI не нужен, но в такой сфере как торговля, программа должна постоянно развиваться и взаимодействовать с пользователем. Без этого, вся отросль алготрейдинга достигнет потолка и развиваться не будет.


Я прекрасно понимаю, что имел ввиду Ренат, т.к. я сам насоздавал раньше больше сотни индикаторов и десятки роботов, но понял в конце концов что все это пшик, но зато набрался какого-то опыта и понимания. Сейчас уже несколько лет тружусь над одним роботом, в котором интерфейс - это последнее дело, а искусственный интеллект - это всё. Ренат не имел ввиду, что нужен многостраничный интерфейс, речь шла о количестве страниц кода, а точнее о количестве вложенного труда и креативной мысли, тогда как на том же Маркете подавляющее количество продуктов - это детские бесполезные поделки. При чём здесь ГУИ? ГУИ может только сбить с толку потенциального покупателя, пустить пыль в глаза или испугать сложностью. Все над чем ты сейчас работаешь, и Анатолий, кстати, тоже, да простите вы меня, - это все аля виндоус 95. Люди нынче приучены и избалованы совершенно другой парадигмой интерфейса. Посмотри на интерфейс свого андроид телефона или айфона. Простота, минимализм, интуитивная понятность. Вот к чему надо стремиться.

Петр, ну возьми, например, сайт компании Гугл google.com.   Ну и какой ты там видишь интерфейс? А ведь капитализация этой компании пол триллиона USD. Они, наоборот, стремятся к минимизации интерфейса, ведь их интерфейс 15 лет назад был более навороченным и, думаю, лет через несколько их интерфейс станет еще скромнее. А ведь они главные законодатели тренда в моде ГУИ. Все твои перечисления необходимости ГУИ декларативны и очень преувеличены , а точнее ГУИ вообще тут ни причем (ну можно только оставить пункт для полуавтоматического трейдинга). Ну посмотри хоть эту свежую технологию той же компании Гугл - TensorFlow. Это технология машинного обучения, технология ИИ и распознания образов, которую нам программистам автотрейдинга освоить было бы очень даже полезно, но этой технологии ГУИ совсем не нужен. Правда - о чем я говорю?, если для тебя технология ООП - бесполезный инструмент!

 
Nikolai Semko:

Я прекрасно понимаю, что имел ввиду Ренат, т.к. я сам насоздавал раньше больше сотни индикаторов и десятки роботов, но понял в конце концов что все это пшик, но зато набрался какого-то опыта и понимания. Сейчас уже несколько лет тружусь над одним роботом, в котором интерфейс - это последнее дело, а искусственный интеллект - это всё. Ренат не имел ввиду, что нужен многостраничный интерфейс, речь шла о количестве страниц кода, а точнее о количестве вложенного труда и креативной мысли, тогда как на том же Маркете подавляющее количество продуктов - это детские бесполезные поделки. При чём здесь ГУИ? ГУИ может только сбить с толку потенциального покупателя, пустить пыль в глаза или испугать сложностью. Все над чем ты сейчас работаешь, и Анатолий, кстати, тоже, да простите вы меня, - это все аля виндоус 95. Люди нынче приучены и избалованы совершенно другой парадигмой интерфейса. Посмотри на интерфейс свого андроид телефона или айфона. Простота, минимализм, интуитивная понятность. Вот к чему надо стремиться.

Петр, ну возьми, например, сайт компании Гугл google.com.   Ну и какой ты там видишь интерфейс? А ведь капитализация этой компании пол триллиона USD. Они, наоборот, стремятся к минимизации интерфейса, ведь их интерфейс 15 лет назад был более навороченным и, думаю, лет через несколько их интерфейс станет еще скромнее. А ведь они главные законодатели тренда в моде ГУИ. Все твои перечисления необходимости ГУИ декларативны и очень преувеличены , а точнее ГУИ вообще тут ни причем (ну можно только оставить пункт для полуавтоматического трейдинга). Ну посмотри хоть эту свежую технологию той же компании Гугл - TensorFlow. Это технология машинного обучения, технология ИИ и распознания образов, которую нам программистам автотрейдинга освоить было бы очень даже полезно, но этой технологии ГУИ совсем не нужен. Правда - о чем я говорю?, если для тебя технология ООП - бесполезный инструмент!

Николай, мы друг друга не поймем.)

Лично для меня ООП действительно бесполезен, но я не отрицаю его полезность для других. Пусть пользуются на здоровье.

ГУИ - это практическая необходимость. ГУИ откроет пространство для усложнения программ. Обогатит скудную на сегодняшний день среду реализации творческих замыслов. Даст программам собственное лицо. 

МО (машинное обучение) наоборот заведет алготрейдинг в беспросветный тупик. Автоматизированная угадайка лишенная доли понимания рыночных процессов. Черный ящик перерабатывающий статистическую кашу. Он ампутирует стремление трейдеров к пониманию рынка и созиданию собственных стратегий. Обучение тех.анализу и статьи по нему будут неактуальны. Настанет время смерти трейдерской мысли. Черный ящик ее сотрет.

Николай, наша экосистема должна быть разообразной и богатой средой. Нам нужно расширяться. Алготрейдерам нужны новые программные возможности. Я просто хочу открыть им еще одну.)


Кстати, ты тоже должен наконец занятся масштабным проектом и начать реализовывать свои способности. Чуствую, что ты сам этого желаешь, но что то никак. Жаль, ведь творческий потенциал у тебя огромный. В общем, жду демонстрации твоих разработок. Надеюсь, их обязательно увижу.)

 

Реter Konow:

...Обогатит скудную на сегодняшний день среду реализации творческих замыслов. Даст программам собственное лицо.

Должен пояснить, что имел ввиду под "скудной средой реализации творческих замыслов". Боюсь, меня неправильно поймут. МТ5 - потенциально очень богатая среда реализации творческих замыслов в алготрейдинге. Но ее потенциал сейчас используется трейдерами, думаю, на 20 %- 30%.

Именно настоящее пространство области практического использования я назвал "скудной средой", а не потенциальное. Возможно, неточно выразился.

Есть выражение: "Бытие определяет сознание".

Наше текущее Бытие, - программы без ГУИ, создаваемые в условиях нагромаждения высоких интеллектуальных барьеров. Это Бытие, определило наше сознание и мы не хотим ГУИ и полуавтоматического трейдинга. Мы верим в смысл подгонки параметров под историю как средства оптимизации стратегий. То есть, не углублением понимания рынка пытаемся улучшать стратегию, а подгонкой под историю. Иначе, - самообманом. Так  было определено наше сознание за годы. И оптимизацию почему то, никто не считает откровенной пылью в глаза. А ведь только благодаря ей получаются тестерные граали.

Для гимнастики ума полезны любые барьеры, но для свободного творчества барьеров сейчас слишком много. Одни сущности  нам помогают в реализации идеи, другие мешают. Обрати внимание, - мне потребовалась лишь малая часть возможностей языка программирования, чтобы построить свою графическую "машину", с языком разметки. И дело здесь вовсе не в таланте программиста, а только в способности различать вещи по их сущности. Отметать лишнее и концентрироваться на главном.  Если у человека нет этой способности, он безнадежно запутается в разнообразных вещах и не реализует свой потенциал. Призма взгляда на вещи определяет КПД нашего труда и масштаб практической реализации таланта.   

Я всего лишь хочу собственной самореализацией помочь другим, и привести МТ5 к глобальному прорыву. А как еще можно этого добится? В общем, если такие талантливые люди как ты Николай, или Анатолий будут мне помогать, мы точно горы свернем!)

 
Реter Konow:

...если такие талантливые люди как ты Николай, или Анатолий будут мне помогать, мы точно горы свернем!) 

Нет, Петр, прости, но свои горы ворочай сам. А я буду ворочать свои горы. ))
 
Nikolai Semko:
Нет, Петр, прости, но свои горы ворочай сам. А я буду ворочать свои горы. ))

Я сказал "как ты", а нет ты.)) Свои "горы" на тебя взваливать не собирался.))