Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сергей
712
Сергей 2011.06.15 14:16 

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

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

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

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

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

Rustamzhan Salidzhanov
7687
Rustamzhan Salidzhanov 2011.06.15 14:56  

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

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

Сергей
712
Сергей 2011.06.15 15:13  
xrust:

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

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


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

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

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

Rustamzhan Salidzhanov
7687
Rustamzhan Salidzhanov 2011.06.15 15:28  
f.t.:

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

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

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

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

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

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

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

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

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

PapaYozh
3768
PapaYozh 2011.06.16 11:43  
f.t.:

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


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

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

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

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

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

Сергей
712
Сергей 2011.06.16 15:54  
Zhunko:

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

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


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

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

Vadim Zhunko
5227
Vadim Zhunko 2011.06.17 00:54  
f.t.:

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

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

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