Режим DDE "горячий", "теплый" или по явному запросу?

 

Здравствуйте. С наступившим всех.

В хелпе к МТ написано:

Котировки по DDE выдаются только по приходе новых тиков (режим ADVISE), а не сразу же по запросу (режим REQUEST) с выдачей последней известной цены. N/A выдается при первом запросе REQUEST, а после прихода новой цены появляются котировки.

Фраза: "Котировки по DDE выдаются..." что подразумевает. Выдаются по запросу, просто выдаются (типа броадкастинг) или еще как-то? Уточните, плз, в каком режиме все-таки работает DDE-сервер в MT4?

Чтобы не было различий в терминологиии:

Протокол DDE поддерживает три вида обмена данными между клиентом и сервером:

  • По явному запросу
  • "Теплый канал"
  • "Горячий канал"

В первом случае клиент явным образом посылает серверу запрос, указывая нужный элемент данных. Сервер, получив подобный запрос, предоставляет клиенту эти данные.

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

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

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

Или предложите свою, если приведенная терминология некорректна (а может ваабче неправильна :)

Спасибо

 
Неужели у разработчиков нет мнения на этот счет?
 
А хелп с техническими деталями - это не "мнение разработчиков"?

Использовать можно только режим ADVISE, который в Вашей терминологии является "горячим".
 
Renat:
А хелп с техническими деталями - это не "мнение разработчиков"?

Использовать можно только режим ADVISE, который в Вашей терминологии является "горячим".


А Вы сами-то его (хелп) читали незамыленным глазом? Вы мне прямо напоминаете старую историю про Маяковского и Инбер. Я ведь не случайно привел цитату из хелпа. Прочтите ее внимательно. Глазами человека, имеющего слабое понятие о DDE, и не имеющего ни какого понятия, как реализован DDE-канал в данном случае. Все выделения жирным - мои (сорри за каламбур).

"Терминал позволяет экспортировать текущие котировки в другие программы в режиме реального времени по протоколу "DDE" (Dynamic Data Exchange). "

Терминал не экспортирует, а позволяет экспортировать. Не выплевывает на клиента, а позволяет ему забрать. Какой это режим?

"Котировки по DDE выдаются только по приходе новых тиков (режим ADVISE), а не сразу же по запросу (режим REQUEST) с выдачей последней известной цены. "

Вроде бы обозначен пассивный (по явному запросу, если хотите) или полупассивный (теплый) режим.

"N/A выдается при первом запросе REQUEST, а после прихода новой цены появляются котировки."

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

"Для активизации режима экспорта котировок из клиентского терминала по протоколу DDE необходимо включить опцию "Разрешить DDE сервер""

Появляется еще один режим. Про который выше не было ни слова. Внимательно перечитав эту статью хелпа снова, и сделав поправку на степенью владения его авторами русским языком, а тем более русским техническим, понимаем, что речь идет или об активации собственно DDE-канала, или о разрешении его использования. Остаемся в неведении: до установки этой галке в окне настроек сервер DDE был активирован, но не разрешен к использованию, или не был активирован вообще. Это, кстати, еще один вопрос, на который я хотел бы получить ответ разработчиков.

Идем далее?

"исторические данные по протоколу DDE не транслируются. Передача текущих котировок производится только при работающем клиентском терминале."

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

Слив масла начинается дальше:

"Форматы DDE-запросов с их возможными ..." "запрос BID: = MT4|BID!USDCHF ..."

Так... Все эдвайзы побоку, остались только реквесты... Так какой же, в итоге, режим?!
При том, что Excel не уточняет механизм возникновения данных в ячейке, называя это просто связми и удаленными ссылками. Спасибо, конечно (без иронии) за приведенный пример реализации DDE в Excel, но понимая происходящего он не прибавил, а наоборот.

И Вы называете этот набор околотехнических фраз "хелп с техническими деталями"? Это - трабл при отсутствии последних.

 
Renat:
... в Вашей терминологии ...

Я в первом посте оговорился об используемой терминологии:

Или предложите свою, если приведенная терминология некорректна (а может ваабче неправильна :)

А первоисточник (к слову - MCAD, т.е. Microsoft Certified Application Developer) здесь. Так что Ваша ирония (в контексте упомянутой оговорки) просто неуместна :).

Хм... Прямо по Некрасову (это такой русский поэт, позапрошлый (!) век):

"Я не люблю иронии твоей
Оставь ее отжившим и не жившим..."

 

Не случайно вокруг поэзии тема крутится. Вначале Маяковский и Инбер. Теперь Нерасов. Так вот.

Маяковский и Инбер

Была в свое время поэтесса Вера Инбер и написала она как-то поэму, в которой, между прочим, были такие строчки:

"Ой, ты гой еси царь батюшка. Сруби лихую голову!"

Ну, Маяковский и спрашивает:
- А ты, Верочка, стихи-то свои вслух читала?
- А что такого? Ничего такого!

Тогда Маяковский написал такие стихи:
Ах, у Инбер! Ах, у Инбер!
Что за глазки, что за лоб!
Все глядел бы, все глядел бы,
Любовался на нее б!

Спасибо Старому Ворчуну

 
Chen:

    Ах, у Инбер! Ах, у Инбер!
    Что за глазки, что за лоб!
    Все глядел бы, все глядел бы,
    Любовался на нее б!

(с) Маяковский

=)
 

komposter, это же не мое авторство. Неудобно даже :)

 
Chen:

komposter, это же не мое авторство. Неудобно даже :)

Исправился )
 
Renat писал (а):
... в Вашей терминологии ...

Вот что говорит на эту тему Билли:

Permanent Data Links

Once a DDE conversation has begun, the client can establish one or more permanent data links with the server. A data link is a communications mechanism by which the server notifies the client whenever the value of a specified data item changes. The data link is permanent in the sense that this notification process continues until the data link or the DDE conversation itself is terminated.

There are two kinds of permanent DDE data links: warm and hot.

In a warm data link, the server notifies the client that the value of the data item has changed, but the server does not send the data value to the client until the client requests it.

In a hot data link, the server immediately sends the changed data value to the client.

Жирный курсив - мой.
 

И еще (там же):

Dynamic Data Exchange Message Flow

A typical DDE conversation consists of the following events:

  1. The client application initiates the conversation, and the server application responds.
  2. The applications exchange data by any or all of the following methods:
      • The server application sends data to the client at the client's request.
      • The client application sends unsolicited data to the server application.
      • The client application requests the server application to notify the client whenever a data item changes (warm data link).
      • The client application requests the server application to send data whenever the data changes (hot data link).
      • The server application carries out a command at the client's request.
  3. Either the client or server application terminates the conversation.

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

Опишите вкратце, пожалуйста. В удобных для Вас терминах.