New Transaq Samples
Atom
6/4/2014
JaguarFX


Как показала практика моей почти 6ти месячной возни с TransaqConnector, который периодически отваливается и не работает, указанное замечание касательно читабельности результатов тестирования ТС вполне резонное и связано с недостаточностью приведенных примеров в стандартной поставке StockSharp.API.
Грубо говоря, нет эталонов.

Для решения данной проблемы, мной были подготовлены 3 дополнительных примера:
1) TransaqCandles - простейший тест на приход свечек в CandleManager,
2) TransaqSMA - запуск SampleSMA на основе ТС,
3) TransaqRealTimeTesting - для тестирования работы ТС в режиме эмуляции.

Михаил, Esper, прошу провести приемочное тестирование и включить данные примеры в стандартный пакет StockSharp.API.
И заодно исправить в новой версии API те ошибки, которые выявляются на основе данных примеров в работе StockSharp.Transaq.dll для версии 2.9:
- приходят только исторические свечи, реал-тайм не идет (TransaqCandles/TransaqSMA)
- в режиме эмуляции происходит двойной запуск коннектора, что порождает ошибку доступа к базовой библиотеке (http://yadi.sk/d/RM7lJB4tSHdGz).
TransaqNewSamples.rar 912 KB (334)

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 6/4/2014
Reply


lebedevsrg
Как показала практика моей почти 6ти месячной возни с TransaqConnector, который периодически отваливается и не работает


Я может быть что-то пропустил. Но про транзак коннектору за последние пол года не слышал нареканий. По крайней мере от вас точно нет. Можете сказать об ошибках? Вот сейчас запустил пример - данные тикают, заявки ставяться и снимаются. Что не работает?
Thanks:

JaguarFX

Avatar
Date: 6/4/2014
Reply


Тут я имею ввиду "возился" = "разбирался".
Ранее замечания так же были, например Ссылка, и они были вами успешно устранены.

Сейчас по итогам исправлений в API 4.2.3.4 осталось два замечания, указанные выше.
Так же более подробно писал о проблеме с формированием свечей в посте Ссылка.



Thanks:

Mikhail Sukhov

Avatar
Date: 6/5/2014
Reply


lebedevsrg


Я по ссылке так и не понял. Речь о коннекторе, о свечках или эмуляторе. Все смешано в кучу, и не понятно о чем речь идет.
Thanks:

devruss

Avatar
Date: 6/5/2014
Reply


У меня есть просьба, раз уж разобрался с Transaq Connector, можешь проверить одну вешь?
Надо смешать данные из 2х источников - Transaq Connector + Hydra, Transaq для живых real-time данных, а Гидру для "прогрева" стратегии

Пример: при запуске стратегии запускаешь робота и подгружаешь ему данные за весь предыдущий день, чтобы подгрузить данные для 200-периодной SMA например.
У меня получается вот какая проблема - данные дублируются: http://stocksharp.com/forum/4461/4-2-2-26/
Thanks:

JaguarFX

Avatar
Date: 6/5/2014
Reply


Насколько я понимаю ситуацию, то что ты пишешь это не ошибка, а фича библиотеки 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

Avatar
Date: 6/5/2014
Reply


Quote:
то что ты пишешь это не ошибка, а фича библиотеки TransaqConnector

нет, это именно ошибка.
Смотри - у тебя есть 2 источника данных, но это одни и те же данные. Надо по этим 2-м источникам построить график. НО теперь S# не понимает, что это 2 одинаковых источника данных, просто один более быстрый, а второй зато имеет больше данных и их надо склеить. Вместо этого, он думает, что это разные данные и выводит их последовательно. В этом то и вся проблема. На .2.16 этот код работал отлично, начиная с 2.18 он перестал работать:

Code

                        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

Avatar
Date: 6/5/2014
Reply


вот тема, в которой обсуждалась проблема склейки:
http://stocksharp.com/fo...a-kastomnykh-sviechakh/
Теперь этот метод больше не работает
Thanks:

JaguarFX

Avatar
Date: 6/8/2014
Reply


Возвращаясь к проблемам, поднятым мной - мне удалось разгадать баг с отсутствием поступления реальных свечей, поэтому отписываюсь тем, у кого может быть аналогичная проблема.

В общем ранее CandleManager создавался мной так и все работало:

Но с какой-то версии, по моим ощущениям с 4.2.3. стали приходят только исторические свечи, а из реальные перестали.
Если заменить на такой код на следующий, то нормально приходят и исторические и реальные свечи:

Thanks:

devruss

Avatar
Date: 6/9/2014
Reply


lebedevsrg

candleManager = new CandleManager(new TradeCandleBuilderSource(Trader));


У меня так уже давно все настроено, не помню где была ветка, но это точно уже обсуждалось, что просто CandleManager(Trader) не работает
Thanks:

JaguarFX

Avatar
Date: 6/10/2014
Reply


Вот это и печально - вместо того, чтобы развивать систему я месяц потратил на ковыряние с этой проблемой!

Это еще раз подчеркивает важность создания полноценных эталонных примеров, которые в случае изменений в S#.API можно посмотреть на предмет того как должен быть структурирован новый код.

Прилагаю обновленные примеры.
NewTransaqSamples.rar 909 KB (291)
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy