Mikhail Sukhov
|
Date: 6/4/2014
lebedevsrg:
Как показала практика моей почти 6ти месячной возни с TransaqConnector, который периодически отваливается и не работает
Я может быть что-то пропустил. Но про транзак коннектору за последние пол года не слышал нареканий. По крайней мере от вас точно нет. Можете сказать об ошибках? Вот сейчас запустил пример - данные тикают, заявки ставяться и снимаются. Что не работает?
|
|
|
|
Thanks:
|
|
|
|
|
|
JaguarFX
|
Date: 6/4/2014
Тут я имею ввиду "возился" = "разбирался".
Ранее замечания так же были, например Ссылка, и они были вами успешно устранены.
Сейчас по итогам исправлений в API 4.2.3.4 осталось два замечания, указанные выше.
Так же более подробно писал о проблеме с формированием свечей в посте Ссылка.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 6/5/2014
lebedevsrg:
Ссылка.
Я по ссылке так и не понял. Речь о коннекторе, о свечках или эмуляторе. Все смешано в кучу, и не понятно о чем речь идет.
|
|
|
|
Thanks:
|
|
|
|
|
|
devruss
|
Date: 6/5/2014
У меня есть просьба, раз уж разобрался с Transaq Connector, можешь проверить одну вешь?
Надо смешать данные из 2х источников - Transaq Connector + Hydra, Transaq для живых real-time данных, а Гидру для "прогрева" стратегии
Пример: при запуске стратегии запускаешь робота и подгружаешь ему данные за весь предыдущий день, чтобы подгрузить данные для 200-периодной SMA например.
У меня получается вот какая проблема - данные дублируются: http://stocksharp.com/forum/4461/4-2-2-26/
|
|
|
|
Thanks:
|
|
|
|
|
|
JaguarFX
|
Date: 6/5/2014
Насколько я понимаю ситуацию, то что ты пишешь это не ошибка, а фича библиотеки TransaqConnector - после подключения коннектор заливает почти 10 тыс. исторических свечей (на 1-мин интервале).
К счастью StockSharp.API дает возможность управлять глубиной закачки истории с помощью вызова SubscribeCandles(series, StrFrom, StrNow) и последующей обработки их через NewCandles.
По крайней мере я историю заливаю из ТС именно так.
Если тебе нужно смешивать с историей, то можешь предварительно вызвать SubscribeCandles(series, DateTime.Now.AddMilliseconds(-1), DateTime.Now) и таким образом перекрыть закачку истории.
Там есть небольшой глюк - когда после SubscribeCandles вызывается CandleManager, то система выдает ошибку "Для серии TimeFrameCandle_SRM4@FORTS_00-01-00 уже была ранее произведена подписка.", но при этом все работает.
Кстати, тут пришла мысль - может вообще при работе с ТС стоит отказаться от CandleManager и работать только с парой SubscribeCandles/NewCandles.
|
|
|
|
Thanks:
|
|
|
|
|
|
devruss
|
Date: 6/5/2014
|
|
|
|
|
то что ты пишешь это не ошибка, а фича библиотеки TransaqConnector
нет, это именно ошибка.
Смотри - у тебя есть 2 источника данных, но это одни и те же данные. Надо по этим 2-м источникам построить график. НО теперь S# не понимает, что это 2 одинаковых источника данных, просто один более быстрый, а второй зато имеет больше данных и их надо склеить. Вместо этого, он думает, что это разные данные и выводит их последовательно. В этом то и вся проблема. На .2.16 этот код работал отлично, начиная с 2.18 он перестал работать:
candleManager = new CandleManager(new TradeCandleBuilderSource(connector)); //добавляем realtime data
var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
candleManager.Sources.OfType<TimeFrameCandleBuilder>().Single().Sources.Add(cbs); // добавляем историю из Гидры
candleSeries = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame);
candleSeries.ProcessCandle += Draw;
candleManager.Start(candleSeries, DateTime.Now - TimeSpan.FromDays(numHistDays), DateTime.MaxValue); // строим график из 2х источников
|
|
|
|
Thanks:
|
|
|
|
|
|
devruss
|
Date: 6/5/2014
|
|
|
|
Thanks:
|
|
|
|
|
|
JaguarFX
|
Date: 6/8/2014
Возвращаясь к проблемам, поднятым мной - мне удалось разгадать баг с отсутствием поступления реальных свечей, поэтому отписываюсь тем, у кого может быть аналогичная проблема.
В общем ранее CandleManager создавался мной так и все работало:
candleManager = new CandleManager(Trader);
Но с какой-то версии, по моим ощущениям с 4.2.3. стали приходят только исторические свечи, а из реальные перестали.
Если заменить на такой код на следующий, то нормально приходят и исторические и реальные свечи:
candleManager = new CandleManager(new TradeCandleBuilderSource(Trader));
|
|
|
|
Thanks:
|
|
|
|
|
|
devruss
|
Date: 6/9/2014
lebedevsrg:
candleManager = new CandleManager(new TradeCandleBuilderSource(Trader));
У меня так уже давно все настроено, не помню где была ветка, но это точно уже обсуждалось, что просто CandleManager(Trader) не работает
|
|
|
|
Thanks:
|
|
|
|
|
|
JaguarFX
|
Date: 6/10/2014
Вот это и печально - вместо того, чтобы развивать систему я месяц потратил на ковыряние с этой проблемой!
Это еще раз подчеркивает важность создания полноценных эталонных примеров, которые в случае изменений в S#.API можно посмотреть на предмет того как должен быть структурирован новый код.
Прилагаю обновленные примеры.
|
|
|
|
Thanks:
|
|
|
|
|