MetaTrader
Atom
24.03.2010


Михаил, добрый день. Можно ли с Вашей помощью реализовать получение
котировок из MetaTrader при помощи DDE??? MetaTrader с радостью их
посылает через DDE и в Exel можно их увидеть, я бы хотел так же через
DDE видеть их в .Net

Теги:


Спасибо:


< 1 2 3 4  >
Mikhail Sukhov

Фотография
Дата: 11.05.2010
Ответить


clientposition, money, account - это все название категории. При
экспорте через ДДЕ есть такое понятие. Оно однозначно идентифицирует
поток данных Скажем, чтобы отличить, какие данные были получены, по
сделкам или заявкам.

Спасибо:

XMbIPb

Фотография
Дата: 11.05.2010
Ответить


А что такое "portfolio" ?
и чем категории отличаются от столбцов, там разве не реляционная
модель данных?
и как мне всё-таки получить эти SYMBOL, BID,
ASK и DATE?

Спасибо:

Mikhail Sukhov

Фотография
Дата: 11.05.2010
Ответить


portfolio - это ДДЕ категория таблицы порфтелей... Я думал, лучше все
прочитать в Квике раздел про ДДЕ. А так же о том, как работает ДДЕ в
S#.

Спасибо:

XMbIPb

Фотография
Дата: 11.05.2010
Ответить


Хорошо, тогда так: Какое название категории идентифицирует поток
данных, отправляемых метатрейдером?

Спасибо:

XMbIPb

Фотография
Дата: 12.05.2010
Ответить


this.Trader.ProcessUnknownDdeData += (name, rows) =>
{
// узнаем, что пришедшие данные отвечают за портфель
if (string.Compare(name, "portfolio", true) == 0)
{
foreach (var row in rows)
{
var client = (string)row[0];
var portfolio = _portfolioWindow.Portfolios.FirstOrDefault(p =>
p.Client == client);

if (portfolio == null)
{
portfolio = new Portfolio { Client = client };
_portfolioWindow.Portfolios.Add(portfolio);
}

portfolio.Shorts = (double)row[1];
portfolio.Longs = (double)row[2];
portfolio.Collateral = (double)row[3];
portfolio.Margin = (double)row[4];
portfolio.Money = (double)row[5];
portfolio.PnL = (double)row[6];
}
}

Здесь "portfolio" - это ДДЕ категория таблицы портфелей, которую мы
указали в настройках ДДЕ сервера в квике, а
portfolio.Collateral,portfolio.Margin,portfolio.Money и portfolio.PnL
- это названия столбцов этой таблицы.. я прав?

Вся беда в том что у МТ нет настроек ДДЕ сервера, где бы я мог указать
нужную категорию, у меня есть только названия столбцов, указанные в
документации МТ ( SYMBOL, BID,
ASK и DATE)...

Спасибо:

Mikhail Sukhov

Фотография
Дата: 12.05.2010
Ответить


Я с МТ не работал. Но думаю, что так же, как и в Квике. Какой задается
в настройках - такой и приходит по ДДЕ... Вы умеете из МТ
экспортировать в Эксель?

Спасибо:

XMbIPb

Фотография
Дата: 12.05.2010
Ответить


В том то и беда, что там нет настроек...
В эксель тоже не умею..вот всё что есть в документации:

Экспорт котировок
Исходными данными, на базе которых строится вся аналитическая работа
пользователя терминала, являются данные о динамике цен финансовых
инструментов. Эту информацию поставляет брокерская компания. Ценовые
данные позволяют строить графики финансовых инструментов, исследовать
финансовые рынки, использовать различные торговые тактики и принимать
торговые решения. Котировки представляют собой файлы с записями в
формате "SYMBOL, BID, ASK, DATE" (финансовый инструмент, цена покупки,
цена продажи, дата и время) и поступают в терминал автоматически после
установки связи с сервером.

Терминал позволяет экспортировать текущие котировки в другие программы
в режиме реального времени по протоколу "DDE" (Dynamic Data Exchange).
Это -- протокол операционных систем MS Windows для динамической
передачи данных между различными приложениями. Котировки по DDE
выдаются только по приходе новых тиков (режим ADVISE), а не сразу же
по запросу (режим REQUEST) с выдачей последней известной цены. N/A
выдается при первом запросе REQUEST, а после прихода новой цены
появляются котировки.

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

Внимание: исторические данные по протоколу DDE не транслируются.
Передача текущих котировок производится только при работающем
клиентском терминале.
Форматы DDE-запросов с их возможными результатами на примере файла
"DDE-sample.xls":

запрос BID: = MT4|BID!USDCHF результат: 1.5773
запрос ASK: = MT4|ASK!USDCHF результат: 1.5778
запрос HIGH: = MT4|HIGH!USDCHF результат: 1.5801
запрос LOW: = MT4|LOW!USDCHF результат: 1.5741
запрос TIME: = MT4|TIME!USDCHF результат: 21.05.02 9:52
запрос QUOTE: = MT4|QUOTE!USDCHF результат: 21.05.02 9:52
1.5773 1.5778 1.5776

Внимание: для правильного отображения данных в MS Excel нужно включить
опцию в меню "Сервис -- Параметры -- Переход -- Преобразование формул в
формат Excel при вводе".

Спасибо:

Mikhail Sukhov

Фотография
Дата: 12.05.2010
Ответить


Из того, что Вы привели, я понял так. Название категорий - BID ASK
HIGH LOW TIME QUOTE.... Проще всего это узнать через
ITrader.ProcessUnknownDdeData. И, опять же, судя по тому, что Вы
привели, указывать название ddeServer нужно MT.

Спасибо:

XMbIPb

Фотография
Дата: 18.06.2010
Ответить


А как узнать названия категорий через trader.ProcessUnknownDdeData,
если это событие не срабатывает?
И где нужно указывать название MT?

Спасибо:

Mikhail Sukhov

Фотография
Дата: 18.06.2010
Ответить


http://stocksharp.com/doc/help/html/E_Ecng_Trading_Quik_QuikTrader_ProcessUnknownDdeData.htm

Первый параметр и есть название категории. Если событие не
срабатывает, значит по ДДЕ и не шлется... Вы добились экспорта в
Эксель? Потому что, по Вашему описанию решения, я понял, что проблема
явно не в обработке данных из МТ, а в самой настройке МТ.

Спасибо:
< 1 2 3 4  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy