← Zurück

ContiniousSecurity не рисует свечки

При тестировании на истории, в 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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

pehas
pehas Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

PavelAd
PavelAd

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

akoz
akoz

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

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

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

Moadip
Moadip

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

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

akoz
akoz

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

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

akoz
akoz

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

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