Как показала практика моей почти 6ти месячной возни с TransaqConnector, который периодически отваливается и не работает, указанное замечание касательно читабельности результатов тестирования ТС вполне резонное и связано с недостаточностью приведенных примеров в стандартной поставке StockSharp.API. Грубо говоря, нет эталонов.
Для решения данной проблемы, мной были подготовлены 3 дополнительных примера:
- TransaqCandles - простейший тест на приход свечек в CandleManager,
- TransaqSMA - запуск SampleSMA на основе ТС,
- TransaqRealTimeTesting - для тестирования работы ТС в режиме эмуляции.
Михаил, Esper, прошу провести приемочное тестирование и включить данные примеры в стандартный пакет StockSharp.API. И заодно исправить в новой версии API те ошибки, которые выявляются на основе данных примеров в работе StockSharp.Transaq.dll для версии 2.9:
- приходят только исторические свечи, реал-тайм не идет (TransaqCandles/TransaqSMA)
- в режиме эмуляции происходит двойной запуск коннектора, что порождает ошибку доступа к базовой библиотеке (http://yadi.sk/d/RM7lJB4tSHdGz).
评论 (12)
登录 或 创建账户, 登录或注册以发表评论
Я может быть что-то пропустил. Но про транзак коннектору за последние пол года не слышал нареканий. По крайней мере от вас точно нет. Можете сказать об ошибках? Вот сейчас запустил пример - данные тикают, заявки ставяться и снимаются. Что не работает?
Тут я имею ввиду "возился" = "разбирался". Ранее замечания так же были, например Ссылка, и они были вами успешно устранены.
Сейчас по итогам исправлений в API 4.2.3.4 осталось два замечания, указанные выше. Так же более подробно писал о проблеме с формированием свечей в посте Ссылка.
Я по ссылке так и не понял. Речь о коннекторе, о свечках или эмуляторе. Все смешано в кучу, и не понятно о чем речь идет.
У меня есть просьба, раз уж разобрался с Transaq Connector, можешь проверить одну вешь? Надо смешать данные из 2х источников - Transaq Connector + Hydra, Transaq для живых real-time данных, а Гидру для "прогрева" стратегии
Пример: при запуске стратегии запускаешь робота и подгружаешь ему данные за весь предыдущий день, чтобы подгрузить данные для 200-периодной SMA например. У меня получается вот какая проблема - данные дублируются: http://stocksharp.com/forum/4461/4-2-2-26/
Насколько я понимаю ситуацию, то что ты пишешь это не ошибка, а фича библиотеки 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.
вот тема, в которой обсуждалась проблема склейки: http://stocksharp.com/forum/3152/Nie-rabotaiet-sklieika-istorii-i-riealtaima-na-kastomnykh-sviechakh/ Теперь этот метод больше не работает
Возвращаясь к проблемам, поднятым мной - мне удалось разгадать баг с отсутствием поступления реальных свечей, поэтому отписываюсь тем, у кого может быть аналогичная проблема.
В общем ранее CandleManager создавался мной так и все работало:
candleManager = new CandleManager(Trader);
Но с какой-то версии, по моим ощущениям с 4.2.3. стали приходят только исторические свечи, а из реальные перестали. Если заменить на такой код на следующий, то нормально приходят и исторические и реальные свечи:
candleManager = new CandleManager(new TradeCandleBuilderSource(Trader));
У меня так уже давно все настроено, не помню где была ветка, но это точно уже обсуждалось, что просто CandleManager(Trader) не работает
Вот это и печально - вместо того, чтобы развивать систему я месяц потратил на ковыряние с этой проблемой!
Это еще раз подчеркивает важность создания полноценных эталонных примеров, которые в случае изменений в S#.API можно посмотреть на предмет того как должен быть структурирован новый код.
Прилагаю обновленные примеры.
Про решение выше я писал в чате тех поддержки http://stocksharp.com/forum/4390/Tiekhpoddierzhka-v-Skype--Khoroshiie-novosti/ Чат создан давно.
Удалось проверить вывод на график данных из Транзака и Гидры одновременно?