НЕ ВЕРЮ, ЧТО ЭТО НЕЛЬЗЯ СДЕЛАТЬ!

 

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

МТ - обычная программа, которая "управляется" событиями и сообщениями. Нажатие кнопки M15 и связанный с этим процесс переключения таймфрейма - это посылка МТ сообщения с определенным кодом и параметрами. И ему все равно кто пошлет это сообщение: он сам (от нажатия мышки) или снова он же сам же ж, но уже от выполнения кода советника, который вызывает системные функции Win32 API. Смена пары немного сложнее - то тоже должна быт доступна (Drag & Drop из навигатора рынка на график).

Я не имею достаточной подготовки в системном программировании, чтобы самому отловить эти коды/сообщения и написать соответствующие MQL-обращения к Win32 API. Надеюсь что этот форум читают люди, которым это под силу ;) - отзовитесь!!! Нужны коды двух функций

SetTimeFrame(int Period)

и

Set Symbol (string Symbol)

При вызове первой - должен установится новый период на графике, при вызове второй - новый символ. Очень надеюсь что, кто-то (может сами разработчики ?) сможет написать такой работающий код.

 
SetTimeFrame(PERIOD_H4);//четырехчасовая
SetTimeFrame(PERIOD_D1);//дневная 
SetTimeFrame(0);//текущая цена закрытия 
 
double SetTimeFrame(int Period)
   {
      return(iClose(NULL,Period,1));
   }
Вызвать вот так,а как визуально из скрипта таймфрейм переключить я незнаю....
 
skywoker:
      return(iClose(NULL,Period,1));

Эта функция просто возвращает значение Close. Ее действительно можно вызвать где угодно и получить значение для любого символа и периода. Но...!!! она НЕ ПЕРЕКЛЮЧАЕТ тайм на графике :( Мне же нужны функции, которые "эмулируют" нажатие кнопочки другого тайма в окне терминала. Т.е. те, которые заставят терминал переключится на другой тайм/символ.

 


Здрово! Самое оно! Спасибо Itso. Действительно я плохо искал :( :(

Теперь осталось научиться переключать символы....

 

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


НО!!!


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

 
ForexTools:


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

 

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

Нет, для меня это не игрушка. Я написал для себя много "мультивалютных" индикаторов (кому интересно - заходите посмотрите). Они у меня целой кучкой друг под другом сидят и показывают (как я надеюсь объективное поведение) до 8 штук валют одновременно. Поэтому мне не нужно держать одновременно несколько графиков пар на которых я торгую. Торгую я на одном графике, а его валюту переключаю сбросом нужной мне пары из окна навигатора на график. (увидел что какаято пара по всем индикаторам показывает признаки разворота - переключился на нее и исследую ее подробнее). Мультивалютные индикаторы при этом пересчитывать/перерисовывать не надо (там и так все 8 нужных мне есть). Но к сожалению много графиков - много места на экране съедается. Поэтому я хочу их вынести в отдельное окно и автоматически синхронизировать его тайм с основным торговым окном (благодаря Itso - я теперь смогу это сделать).

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


советнику не нужно красиво мерцать, а хорошо торговать!

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


В прикрепленном файле - скрин моего рабочего терминала.


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

Вот собственно из за чего весь сыр-бор :)

Файлы:
 
ForexTools:

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

Нет, для меня это не игрушка. Я написал для себя много "мультивалютных" индикаторов (кому интересно - заходите посмотрите). Они у меня целой кучкой друг под другом сидят и показывают (как я надеюсь объективное поведение) до 8 штук валют одновременно. Поэтому мне не нужно держать одновременно несколько графиков пар на которых я торгую. Торгую я на одном графике, а его валюту переключаю сбросом нужной мне пары из окна навигатора на график. (увидел что какаято пара по всем индикаторам показывает признаки разворота - переключился на нее и исследую ее подробнее). Мультивалютные индикаторы при этом пересчитывать/перерисовывать не надо (там и так все 8 нужных мне есть). Но к сожалению много графиков - много места на экране съедается. Поэтому я хочу их вынести в отдельное окно и автоматически синхронизировать его тайм с основным торговым окном (благодаря Itso - я теперь смогу это сделать).

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


советнику не нужно красиво мерцать, а хорошо торговать!

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


В прикрепленном файле - скрин моего рабочего терминала.

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

Вот собственно из за чего весь сыр-бор :)

А может в таком случае проще использовать профили.

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

А может в таком случае проще использовать профили.

Можно наверно, но не хочется. Да и не получится скорее всего по нормальному профилями сделать все возможные комбинации валют и таймов :(