MetaTrader
Atom Ответить
24.03.2010


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

Теги:


Спасибо:




40 Ответов
1 2  >
denis

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


я не Михаил, но в главе Экспорт произвольных таблиц написано:
"QuikTrader поддерживает экспорт не только таких таблиц, как
Инструменты, Заявки и т.д., но и произвольных. Эта возможность
необходима тем торговых алгоритмам, которые используют особый набор
данных. "

Только придется стартовать экспорт в ручную.

Спасибо:

elcust

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


Экспорт произвольных таблиц относится только к QUIK, а тут Metatrader.
Это разные торговые платформы.

Автор топика
Спасибо:

denis

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


даа? 8-0 во дела-а-а... пойду учить мат. часть.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.03.2010
Ответить


Как сказал Денис, нет особой разницы. DDE - это универсальный
протокол. Так что можно попробовать... А как именно хотите
использовать МТ? 4-ка?

Спасибо:

elcust

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


Есть МТ4 который предоставляет компания broco в демонстрационном
доступе, оттуда можно получать фьюч S&P, Brand, EURUSD и все что
хотите в общем, там весь мир в реальном времени без задержек. Сейчас я
оттуда выкачиваю нужные мне данные при помощи SQL.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.03.2010
Ответить


Ок, а для чего Вам S#?

Спасибо:

elcust

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


Использую шлюз взаимодействия с QUIK.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.03.2010
Ответить


Понятно. А вы МТ используете как аналитический блок, или как простое
получение данных?

Спасибо:

elcust

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


Какие то вещи обсчитываю в MT4, чтобы не тянуть много информации,
большинство уже непосредственно в проекте.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.03.2010
Ответить


Ок, понятно. Ну тогда действительно, через ДДЕ. Я думал у Вас связка
чуть другая, когда МТ сам сигналы генерирует. Но раз у Вас логика с
своем роботе, то да, правильно идете. Пробовали уже пересылать данные?

Спасибо:

elcust

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


По DDE из MT4 нет еще. Но в самое ближайшее время послушаю DDE S#.
Если выйдет, вообще будет улетно!

Автор топика
Спасибо:

Ronin

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


elcust, держите нас в курсе :) Интерестная тема.

Спасибо:

elcust

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


Кому нужно могу выслать реализацию связки MT4 с SQL. На почту
скидывайте запрос обратным письмом верну

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.03.2010
Ответить


Мне больше интересно не столько реализация, сколько сам подход. Я вижу
у Вас как: MT -> данные по dde -> S# -> собственный робот на .NET с
торговой логикой -> сигналы через S# в Квик -> Квик. Павильно?

А почему решили не делать логику в рамках MT? Какие ограничения?

Спасибо:

XMbIPb

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


По какому имени произвольной таблицы S# находит данные передаваемые
MT ?
И вообще кому-нибудь удалось их подружить?

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.05.2010
Ответить


Процесс, насколько я понял, следующий. MT начинает экспортировать
данные по DDE. QuikTrader их успешно получает и выводит через событие
ProcessUnknownDdeData. Зачем S# находить таблицу (кстати, какую)?

Спасибо:

XMbIPb

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


Я про эту строчку:
// узнаем, что пришедшие данные отвечают за портфель
if (string.Compare(name, "portfolio", true) == 0)

S# распознаёт MTшные данные как "portfolio" ?

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.05.2010
Ответить


Нет конечно. Это пример экспорта произвольной таблицы portfolio. Можно
экспортировать clientposition, money, account, charts. Да все, что
экспортируется. Аналогично и с МТ.

Спасибо:

ustas

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


Привет!
Скинь плиз связку MT4 с SQL любопытно

shtirliz45 @ gmail.com (без пробелов)

спасибо!

Спасибо:

XMbIPb

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


clientposition, money, account - это же уже названия столбцов? как я
понял, вместо них нужно прописать те которые передаёт МТ (SYMBOL, BID,
ASK, DATE),
а вот что писать вместо "portfolio" ?
извиняюсь если туплю, просто DDE для меня ещё тёмный лес...

Спасибо:

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

Фотография
Дата: 11.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)...

Спасибо:
1 2  >

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

loading
clippy