MultiTrader, получение данных
Atom
23.08.2010
Alexander


В MultiTrader добавляются 7 квиков, экспорт запускается методом StartExport. Таблицы настроены везде правильно, ошибок никаких нет. Данные по всем сделкам (лента) идут только у 4х брокеров (почему-то не все брокеры её предоставляют сразу, надо звонить и дополнительно говорить чтоб включили), у 3х - не идут.

Вот если в MultiTrader в AggregatedTraders добавить первым QuikTrader из тех 3х, где данные по всем сделкам не идут, то и в MultiTrader все сделки идти не будут. Как можно этого избежать, т.е. как объединять приходящие данные?

И хочется чтоб при потери связи одного из квиков данные всё равно продолжали идти. Для этого я создал свой класс, наследуясь от QuikTrader и переопределил public override void ReStartExport() { if (!IsConnected) base.ReStartExport(); }

но сейчас есть сомнения, что всё будет работать так, как я предполагал...


Теги:


Спасибо:


Mikhail Sukhov

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


Быть такого не может. MultiTrader сделки проверяет на уникальность. Тоесть, если сделка с номер X уже была ранее экспортирована, то она не передается в событие NewTrades. Может быть у Вас MultiTrader уже содержит ранее добавленные сделки (например, до ошибки с экспортом)?

Спасибо:

Alexander

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


Нет, не содержал - экспорт по всем сделкам из одного из квиков не шёл с самого начала. Сегодня вечером или завтра с утра попробую воспроизвести, тогда отпишусь.

Ещё вот что заметил - в конце дня, при закрытии своей программы, я печатаю всю ленту в файл -

if (multiTrader.Trades.Count() > 0) { if (!Directory.Exists("MarketData")) { Directory.CreateDirectory("MarketData"); } var allTradesSw = new StreamWriter("MarketData\{0}{1:00}_{2:00} _AllTrades.log".Put(_multiTrader.Trades.Last().Time.Year, _multiTrader.Trades.Last().Time.Month, _multiTrader.Trades.Last().Time.Day), false); foreach (var trade in _multiTrader.Trades) { allTradesSw.WriteLine("{0} - {1} - {2} - {3}", trade.Time, trade.Price, trade.Volume, trade.OrderDirection); } allTradesSw.Close();

Так вот из моей копии робота (с 1м квиком) - получилась 328001 запись вчера, на сервере (где вчера было 7 квиков) - в 7 раз больше. Т.е. вначале идёт запись от 10:00:00 до 23:49:59, потом опять от 10:00:00 до 23:49:59, опять... и так 7 раз

И ещё - у некоторых из сделок на месте trade.OrderDirection было пусто, т.е. направление сделки не проставилось. Могу скинуть данный получившийся файл.

Спасибо:

Alexander

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


Вот сейчас опять - при записи из multiTrader.Trades создалось фактически 6 одинаковых копий всех сделок (было запущено 6 копий квиков). Одна запись - от 10:00:00 до 23:49:59, и так 6 раз. Выходит multiTrader.Trades объединяет Trades из каждого из добавленных Квиков? Или почему иначе так выходит?

Спасибо:

Mikhail Sukhov

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


Забыл отписать. Да, в MultiTrader.Trades возвращает сделки всех Aggregated traders, а не уникальные... Проблему нашел и уже пофиксил. По всей видимости, скоро будет 2.3.1, где Ваши с Таулером ошибки будут пофиксены.

Спасибо:

Alexander

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


Ура-ура =) Продолжим их находить на благо обществу. А почему порой не проставляется OrderDirection известно? В таблице Всех сделок квика заполнено всё...

Спасибо:

Mikhail Sukhov

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


=) начинается... Так, давайте по подробнее и в отдельной теме.

Спасибо:


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

loading
clippy