Синхронизация NewTrades() и CandlesFinished()


Синхронизация NewTrades() и CandlesFinished()
Atom
4/26/2012


обновился до 4.1, переписал тестер, но не пойму как синхронизировать эти события.

Code

 var storage = new TradingStorage(new InMemoryStorage())
            {
                BasePath = HistoryPath.Text
            };

            _trader = new EmulationTrader(
                new[] { security },
                new[] { portfolio })
            {
                MarketTimeChangedInterval = timeFrame,
                Storage = storage,
                WorkingTime = Exchange.Rts.WorkingTime,
                DaysInMemory = 1,
            };
            
            _trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security)
            {
                Interval = TimeSpan.FromSeconds(2),
            };

            var candleManager = new CandleManager();
            var cbs = new TradeStorageCandleBuilderSource { BasePath = HistoryPath.Text, Storage = storage };

             var _builder = new TimeFrameCandleBuilder();
            _builder.Sources.Add(cbs);

             candleManager.Sources.Add(_builder);
            
            candleseries = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame);
          
            candleManager.Start(candleseries, startTime, stopTime);




в стратегии 2 правила:

Code

this
                .When(Security.SecurityNewTrades())
                .Do(...);
            this
                      .When(_candleManager.Series.ElementAt(0).CandlesFinished())
                      .Do(...);




Thanks:


ra81

Avatar
Date: 4/26/2012
Reply


А в чем суть синхронизации то собственно? Не очень ясно
Thanks:

profts

Avatar
Date: 4/27/2012
Reply


при запуске тестера события по свечкам сразу начинают обгонять события по сделкам и это отставание быстро увеличивается.
к примеру, время последней CandlesFinished() уже 17.45 , а время Security.SecurityNewTrades() 12.15. в моем случае стратегия входит в сделки по свечкам, а тэйки и стопы мониторит по сделкам. т.е. вход в сделку произошел в 17.00, а тэйк проверяется на основе сделок, которые были 5 часов раньше )
Thanks:

ra81

Avatar
Date: 4/27/2012
Reply


profts Go to
при запуске тестера события по свечкам сразу начинают обгонять события по сделкам и это отставание быстро увеличивается.
к примеру, время последней CandlesFinished() уже 17.45 , а время Security.SecurityNewTrades() 12.15. в моем случае стратегия входит в сделки по свечкам, а тэйки и стопы мониторит по сделкам. т.е. вход в сделку произошел в 17.00, а тэйк проверяется на основе сделок, которые были 5 часов раньше )

Даже не знаю что и сказать. Это повод пожаловаться, если точно проблема не в своем коде.
Thanks:

Mikhail Sukhov

Avatar
Date: 4/27/2012
Reply


profts Go to


Выглядит как бага. Возможно, что такое есть. Будем чинить.
Thanks: profts

Mikhail Sukhov

Avatar
Date: 4/28/2012
Reply


Mikhail Sukhov Go to
profts Go to


Выглядит как бага. Возможно, что такое есть. Будем чинить.


Еще раз посмотрел код. Нет, бага у вас. У вас два источника истории. Исторический источник для свечек и исторический шлюз. Надо что-то одно выбрать.
Thanks:

ra81

Avatar
Date: 4/28/2012
Reply


Mikhail Sukhov Go to
Mikhail Sukhov Go to
profts Go to


Выглядит как бага. Возможно, что такое есть. Будем чинить.


Еще раз посмотрел код. Нет, бага у вас. У вас два источника истории. Исторический источник для свечек и исторический шлюз. Надо что-то одно выбрать.

Кстати да. Я вот тоже проглядел :).
Thanks:

profts

Avatar
Date: 5/2/2012
Reply


Совсем не обратил внимания. Помогло. Спасибо ))

а еще такой вопрос... как зарегистрировать серию тиковых свечек.

Code

candleseries = new CandleSeries(typeof(TickCandle), security, 200);
candleManager.Start(candleseries, startTime, stopTime);


пытаюсь сделать по аналогии с таймфреймовыми свечками, но получение свечек не запускается.
Thanks:


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

loading
clippy