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 (565)

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


то что ты пишешь это не ошибка, а фича библиотеки 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

Avatar
Date: 6/5/2014
Reply


вот тема, в которой обсуждалась проблема склейки: http://stocksharp.com/forum/3152/Nie-rabotaiet-sklieika-istorii-i-riealtaima-na-kastomnykh-sviechakh/ Теперь этот метод больше не работает

Thanks:

JaguarFX

Avatar
Date: 6/8/2014
Reply


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

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

candleManager = new CandleManager(Trader);

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

candleManager = new CandleManager(new TradeCandleBuilderSource(Trader));
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 (553)
Thanks:
1 2  >

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

loading
clippy