можно ли с помощью скрипта в одном из открытых графиков менять финансовый инструмент (валютную пару) ?? - страница 2

 

концепция графического интерфейса который я хочу закодить такова:

на экране несколько мелких окошек (28 штук) с разными фин.инструментами типа как в качестве предварительного просмотра

и есть еще 8 крупных окон только для одного фин.инструмента но с разными ТФ

разрешение 1600х1200 позволяет разместить 36 окон но если будут торчать всякие там: Обзоры рынка, Навигаторы, Панели инструментов, Терминалы, статусные строки.. то бридется обломаца

да кстате забыл сказать что МТ4 юзаю только для индикаторов, а работаю совсем на другой платформе.. (на которой есть кнопки моментальной сделки)

я не успакоюсь пока не закодю задуманную концепцию ))

на основе этого кода https://www.mql5.com/ru/code/8135 можно возвращать название активного окна одним кликом на мелкое окошко, далее скрипт определяет выбраный фин.инструмент и устанавливает его в 8ми крупных окнах для детального анализа

на данный момент я застопорился на эмуляции клавиши Alt

сволочная клавиша эмулируеца на половину т е типа как нажалась но не отжалась сабака ((

 
ForexTools писал (а) Я этот путь прошел и вам советую, причем именно категорично советую ;)

Поделюсь своим опытом. Была сходная проблема, подвывая и шевеля губами  написал эмуляцию, потом WM_COMMAND, кое-как заработало. Ну и что?

Выяснилось, что задача поставлена неправильно, идея-фикс с треском лопнула. Умнее было бы обдумать заранее, а не лезть в дебри.

Это подсознательное давит: вот я сделаю крутую вещь, и все будет супер!

Ну, пробьешь ты головой стену и что ты будешь делать в соседней камере? ©

 
sabluk писал (а) >>

концепция графического интерфейса который я хочу закодить такова:

на экране несколько мелких окошек (28 штук) с разными фин.инструментами типа как в качестве предварительного просмотра

и есть еще 8 крупных окон только для одного фин.инструмента но с разными ТФ

разрешение 1600х1200 позволяет разместить 36 окон но если будут торчать всякие там: Обзоры рынка, Навигаторы, Панели инструментов, Терминалы, статусные строки.. то бридется обломаца

да кстате забыл сказать что МТ4 юзаю только для индикаторов, а работаю совсем на другой платформе.. (на которой есть кнопки моментальной сделки)

я не успакоюсь пока не закодю задуманную концепцию ))

на основе этого кода https://www.mql5.com/ru/code/8135 можно возвращать название активного окна одним кликом на мелкое окошко, далее скрипт определяет выбраный фин.инструмент и устанавливает его в 8ми крупных окнах для детального анализа

на данный момент я застопорился на эмуляции клавиши Alt

сволочная клавиша эмулируеца на половину т е типа как нажалась но не отжалась сабака ((

Чем не устраивает вариант сохранения профилей для каждого символа? Смена профиля - два клика мышкой.

 
Integer писал (а) >>

Чем не устраивает вариант сохранения профилей для каждого символа? Смена профиля - два клика мышкой.

так и было изначально но меня это быстро стало утомллять

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

когда на рынке идут конские скачки каждая секунда дорога

а по выподашкам лазить можно только если когда на рынке ползают тюлени ))

 
sabluk писал (а) >>

когда на рынке идут конские скачки каждая секунда дорога

а по выподашкам лазить можно только если когда на рынке ползают тюлени ))

если дорога каждая секунда то

на экране несколько мелких окошек (28 штук) с разными фин.инструментами типа как в качестве предварительного просмотра

и есть еще 8 крупных окон только для одного фин.инструмента но с разными ТФ

это непозволительная роскошь (ИМХО). Пока эта вся байда пересчитается, пока отрисуется.... я както понавешивал всяких индюков чтобы видеть ВСЕ :) - а потом случайно (для других целей) запустил диспетчер задач да в трей его сбросил. Смотрю а у меня проц ниже 80% не падает. Все остальное ворочается достаточно резво, а терминал - подтормаживает конкретно. Какая уже там торговля да еще на каждой секунде :(

Баловство это (ИМХО). Только нервы свои тратить да по клаве со злостью стучать пытаясь подогнать тормозящий терминал...

 
ForexTools писал (а) >>

если дорога каждая секунда то

это непозволительная роскошь (ИМХО). Пока эта вся байда пересчитается, пока отрисуется.... я както понавешивал всяких индюков чтобы видеть ВСЕ :) - а потом случайно (для других целей) запустил диспетчер задач да в трей его сбросил. Смотрю а у меня проц ниже 80% не падает. Все остальное ворочается достаточно резво, а терминал - подтормаживает конкретно. Какая уже там торговля да еще на каждой секунде :(

Баловство это (ИМХО). Только нервы свои тратить да по клаве со злостью стучать пытаясь подогнать тормозящий терминал...

ну не знаю коллега что у Вас за индюки такие тяжелые и какое железо

щас проверил на 36ти окнах запущено по 2-3 индюка, при смене профиля терминал на мгновение напрягает проц до 15%, потом остается плавать на 0-2% иногда 5% (Коре Дуо 6320 на 965ом чипсете)

МТ4 сам по себе резвый софт, такое ащущение как на асме написан, респект разработчикам

для сравнения платформа от одного из американских ДЦ намного тормознее

поэтому в планах потом преобрести 30" моник и разместить на нем порядка сотни окошек )

 

скрипт выбирает окно и меняет в нем символ, при этом ниразу не используется клавиша Enter.. чтобы случайно не акцептовать формат диска Цэ

//+------------------------------------------------------------------+
//| keys.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
//не запускать скрипт в целевом окне!
//раскладка клавы естессно должна быть EN
#include <WinUser32.mqh>
void KeyScript()
{
keybd_event(18,0,0,0);Sleep(1);//нажали ALt
keybd_event(18,0,2,0);Sleep(1);//отжали ALt
keybd_event(37,0,0,0);Sleep(1);//блуждаем по панели..
keybd_event(37,0,0,0);Sleep(1);
keybd_event(37,0,0,0);Sleep(1);
keybd_event(37,0,0,0);Sleep(1);
keybd_event(40,0,0,0);Sleep(1);
keybd_event(49,0,0,0);Sleep(1);//единица выбирает первое окно
keybd_event(32,0,0,0);Sleep(1);//Space открывает строку быстрой навигации
keybd_event(8,0,0,0);Sleep(10);//Backspace очищает старые значения
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(69,0,0,0);Sleep(1);//пишем символ EURUSD
keybd_event(85,0,0,0);Sleep(1);
keybd_event(82,0,0,0);Sleep(1);
keybd_event(85,0,0,0);Sleep(1);
keybd_event(83,0,0,0);Sleep(1);
keybd_event(68,0,0,0);Sleep(1);
keybd_event(9,0,0,0);Sleep(1);// Tab - подтверждает и закрывает панель строки
Comment(" ПРЕВЕД МЕДВЕД");
}
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
KeyScript();
}


 
sabluk писал (а) >>


keybd_event(8,0,0,0);Sleep(10);//Backspace очищает старые значения
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(8,0,0,0);Sleep(10);
keybd_event(69,0,0,0);Sleep(1);//пишем символ EURUSD

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

Еще будет глюк если ручками туда зайти и набрать не валюту а дату/время для перехода. В них будет больше 6 символов.


Чтобы все гарантировано почистить нужно после захода в поле "нажать" HOME, потом SHIFT+END, потом DEL.

 
ForexTools писал (а) >>

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

Еще будет глюк если ручками туда зайти и набрать не валюту а дату/время для перехода. В них будет больше 6 символов.


Чтобы все гарантировано почистить нужно после захода в поле "нажать" HOME, потом SHIFT+END, потом DEL.


согласен, об этом я тоже думал.. Shift+Home не получается у меня эмулировать ((

но радует то, что в моем случае нет никакой необходимости лазить руками менять символ и таймфрейм

для того и создаю профиль со множеством мелких окон чтобы уже были открыты все символы в предварительном просмотре и в крупных окнах все таймфреймы

ЗЫ. в то время когда спутники бороздять космическое пространство нафик нужно руками кудато лазить )))  пора уже подумать как замутить управление платформы ГОЛОСОМ )))

 
sabluk писал (а) >>

Shift+Home не получается у меня эмулировать ((

сначала эмулируем нажатие и отжатие клавиши HOME

keybd_event(HOME,0,0,0); ... keybd_event(HOME,0,0,2);

потом нажатие SHIFT

keybd_event(SHIFT,0,0,0);

потом нажатие и отжатие END

keybd_event(END,0,0,0); ... keybd_event( END,0,0,2);

потом отжатие SHIFT

keybd_event(SHIFT,0,0,2);

потом нажатие и отжатие DEL

keybd_event(DEL,0,0,0); ... keybd_event(DEL,0,0,2);


Писал по памяти, в отжатиях может быть чтото не так - я не помню точно где там двоечка стоит, ну и коды клавиш тоже

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