ContiniousSecurity не рисует свечки
Atom
19.11.2012
pehas


При тестировании на истории, в CandleManager не приходят новые свечки по ContinuousSecurity

Код


            var cFuture = new ContinuousSecurity();
            cFuture.ExpirationJumps.AddRange(
                Securities
                    .Where(s => s.Type == SecurityTypes.Future)
                    .Select(f => { return new KeyValuePair<Security, DateTime>(f, (DateTime)f.ExpiryDate); })
            );

            Trader = new EmulationTrader(
                new[] { cFuture },
                new[] { Portfolio },
                storage
            );

            Trader.Connect();
            Trader.StartExport();

            CM = new CandleManager(Trader);
            CM.Processing += (series, candle) => { Trader.AddInfoLog("new candle value"); };

            CM.Start(new CandleSeries(typeof(TimeFrameCandle), cFuture, timeFrame));

            Trader.Start(stDate, enDate);

Если в CM передавать не ContinuousSecurity, а фьючерсы на основании которых он построен, то свечки приходят нормально


            Securities.Where(s => s.Type == SecurityTypes.Future).ForEach(fut =>
            {
                CM.Start(new CandleSeries(typeof(TimeFrameCandle), fut, timeFrame));
            });

Это баг при тестировании на истории, или не так что-то делаю?

При этом лог для ContinuousSecurity

EmulationTrader | 01.01.0001 00:00:00.000 | | Экспорт запущен. EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 01.01.2012 0:00:00 Events: 0 EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 02.01.2012 0:00:00 Events: 1 EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 03.01.2012 0:00:00 Events: 2 EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 04.01.2012 0:00:00 Events: 169 EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 05.01.2012 0:00:00 Events: 336

и по отдельным фьючерсам

EmulationTrader | 01.01.0001 00:00:00.000 | | Экспорт запущен. EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 01.01.2012 0:00:00 Events: 0 EmulationTrader | 01.01.2012 00:00:00.000 | | Loading 02.01.2012 0:00:00 Events: 1798 EmulationTrader | 01.01.2012 18:45:00.000 | | Loading 03.01.2012 0:00:00 Events: 3596 EmulationTrader | 03.01.2012 21:19:16.107 | | Loading 04.01.2012 0:00:00 Events: 197041 EmulationTrader | 04.01.2012 20:52:25.887 | | Loading 05.01.2012 0:00:00 Events: 435865

показывает разное к-во загруженных сделок




Спасибо:


pehas

Фотография
Дата: 27.11.2012
Ответить


Кхем.. Спрошу проще. Кто-то вообще пользуется ContinuousSecurity? :)

Спасибо:

Mikhail Sukhov

Фотография
Дата: 27.11.2012
Ответить


pehas: Кхем.. Спрошу проще. Кто-то вообще пользуется ContinuousSecurity? :)

С историей пока CS не дружит.

Спасибо:

PavelAd

Фотография
Дата: 26.02.2013
Ответить


CS не научился работать с историей на последней версии?

Спасибо:

akoz

Фотография
Дата: 03.04.2013
Ответить


Похоже не научился. Вообще классы WeightedIndexSecurity и ContiniousSecurity практически не рабочие. Они не умеют ни с CandleSeries работать, ни в стратегию их не передать (ошибка "Инструмент не имеет информацию о шлюзе", хотя бумага к стратегии прикрепляется). Танцевал с бубном несколько дней. Так и забросил это дело.

Трейды по ним еще можно получать, но толком использовать невозможно.

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

Спасибо:

Moadip

Фотография
Дата: 03.04.2013
Ответить


Вообще классы WeightedIndexSecurity и ContiniousSecurity практически не рабочие. Ну по крайней мере с помощью WeightedIndexSecurityсвечки можно рисовать.

ни в стратегию их не передать (ошибка "Инструмент не имеет информацию о шлюзе", хотя бумага к стратегии прикрепляется). А у самого инструмента св-во Trader пробовали выставлять?

Спасибо:

akoz

Фотография
Дата: 04.04.2013
Ответить


А у самого инструмента св-во Trader пробовали выставлять?

Да, так сработало. Спасибо за совет. Я что-то так брутально не решился приколотить Trader к бумаге. Вообще, думал, что это свойство readonly. Интересно, выходит так можно бумагу между трейдерами перетаскивать?

Спасибо:

akoz

Фотография
Дата: 05.04.2013
Ответить


Еще интересно, кто-нибудь строил свечки со своей реализацией метода Calculate?

Я из исходников взял код WeightedIndexSecurity, поменял формулу расчета значения в методе Calculate, но свечки все равно формируются в прежней логике: сумма произведений значений свечек вложенных бумаг и их весов. Т.е. где-то в CandleManager'е все равно берется метод из WeightedIndexSecurity, а мой для расчета не цепляется.

Спасибо:


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

loading
clippy