New Transaq Samples
Atom Ответить
04.06.2014


Как показала практика моей почти 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).

Теги:


Спасибо:




12 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.06.2014
Ответить


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


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

JaguarFX

Фотография
Курсы
Дата: 04.06.2014
Ответить


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

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



Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.06.2014
Ответить


lebedevsrg Перейти


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

devruss

Фотография
Курсы
Дата: 04.06.2014
Ответить


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

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

JaguarFX

Фотография
Курсы
Дата: 05.06.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.
Автор топика
Спасибо:

devruss

Фотография
Курсы
Дата: 05.06.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х источников
Спасибо:

devruss

Фотография
Курсы
Дата: 05.06.2014
Ответить


вот тема, в которой обсуждалась проблема склейки:
https://stocksharp.ru/fo...na-kastomnykh-sviechakh/
Теперь этот метод больше не работает
Спасибо:

JaguarFX

Фотография
Курсы
Дата: 08.06.2014
Ответить


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

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

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

Автор топика
Спасибо:

devruss

Фотография
Курсы
Дата: 09.06.2014
Ответить


lebedevsrg Перейти

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


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

JaguarFX

Фотография
Курсы
Дата: 10.06.2014
Ответить


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

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

Прилагаю обновленные примеры.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.06.2014
Ответить


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


Про решение выше я писал в чате тех поддержки https://stocksharp.ru/fo...ype--Khoroshiie-novosti/ Чат создан давно.
Спасибо:

devruss

Фотография
Курсы
Дата: 10.06.2014
Ответить


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

Так пиши на форум. И тебе быстрее помогут и всем это потом пригодится. S# так просто не дается, к сожалению:(

lebedevsrg Перейти
Прилагаю обновленные примеры.


Удалось проверить вывод на график данных из Транзака и Гидры одновременно?

Спасибо:


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

loading
clippy