Получение котировок по DDE (вопросы)

 

В корне папки терминала есть файлик DDE-Sample.xls В нем показывается как можно получать котировки (для примера - в Excel) через DDE-сервер терминала.

Если в экселе в ячейке написать формулу =MT4|BID!USDCHF - то в этой ячейке будет обновляться BID по USDCHF.

В связи с этим возникает два вопроса:

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

2) Формула прописана текстом. попытки прописать символ как ссылку на соседнюю ячейку где сидят "буковки" собственно символа не получилось.
Можно ли собрать текст формулы в каком-то виде похожем на =MT4| & A2 & ! & A3 где в A2 - код цены а в А3 - символ?

 

Будете получать котировки только с того терминала который включите первым (проверял),

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

 
xrust:

...(проверял)

понял, спасибо


Либо если названия инструментов разнятся (с префиксом)

это тоже понятно, спасибо. но как быть в случае если все стандартно? :(

разработчиков просить добавить номер счета MT4!12345 к каждому запросу (с ним - получать от сервера с этого счета, нет - из любого) наверно бестолку?

 
f.t.:

понял, спасибо

это тоже понятно, спасибо. но как быть в случае если все стандартно? :(

разработчиков просить добавить номер счета MT4!12345 к каждому запросу (с ним - получать от сервера с этого счета, нет - из любого) наверно бестолку?

Ну это уже на грани фантастики - "я тАк думаю, толко ти не обижяйса"(с) :)
 

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

тогда можно будет одним индикатором/скриптом слать теми же месседжами свою информацию "наружу" ну и в нем уже сделать разделение по счетам/терминалам

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

правда я почти убежден что ответ "скорее всего никак нельзя" :(

Еще есть полубредовый вариант - проверять дату-время файлов историй (ведь при приходе нового тика должна произвестись запись нового Close[0])... но это уже совсем.....

 
f.t.:

Еще есть полубредовый вариант - проверять дату-время файлов историй (ведь при приходе нового тика должна произвестись запись нового Close[0])... но это уже совсем.....


Это навряд ли.
 
f.t.:
я конечно в курсе, поэтому и ищу альтернативные варианты. а с приходом тика на чужой график наверно может (я надеюсь) найтись лазейка - ведь терминал както опознает "там" приход тика и генерит InternalMessage своему графику о приходе тика. возможно это событие можно както(???) отловить именно в терминале (средствами Win32API) а не на конкретном графике средствами MQL?

правда я почти убежден что ответ "скорее всего никак нельзя" :(

Еще есть полубредовый вариант - проверять дату-время файлов историй (ведь при приходе нового тика должна произвестись запись нового Close[0])... но это уже совсем.....

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

Вот пишите в память и читайте где угодно.

 
Zhunko:

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

Вот пишите в память и читайте где угодно.


Спасибо Вадим, я прекрасно знаю ЭТУ твою библиотеку ;)

но вопрос в данном случае не "как передать", а "как узнать что данные изменились". Попытка использовать ДДЕ - это как раз попытка узнать что у нас появились новые цены, она работает для разных инструментов одного терминала, а мне надо - из разных

 
f.t.:

Спасибо Вадим, я прекрасно знаю ЭТУ твою библиотеку ;)

но вопрос в данном случае не "как передать", а "как узнать что данные изменились". Попытка использовать ДДЕ - это как раз попытка узнать что у нас появились новые цены, она работает для разных инструментов одного терминала, а мне надо - из разных

Назначте один МТ4 сервером и пусть читает и сравнивает котировки из других МТ4 с помощью этой библиотеки. Но лучше это вывести в отдельное приложение.
Причина обращения: