WorkingTime в CandleSeries

WorkingTime в CandleSeries
Atom
10/5/2015
pafnuty


Добрый день.

Столкнулся сейчас с ситуацией, когда в CandleSeries ставлю свой WorkingTime, но CandleSeries все равно поставляет свечки по расписанию площадки по-умолчанию (в частности, до 18:45, а я ставил до 23:50) (свечки получаю через событие CandleManager.Processing):
Code
m_CandleSeries = new CandleSeries(typeof(TimeFrameCandle), s, m_Timeframe) { WorkingTime = m_WorkingTime };


При этом - чудо чудесное! - работает такой способ:
Code
m_CandleSeries = new CandleSeries(typeof(TimeFrameCandle), s, m_Timeframe);
m_CandleSeries.WorkingTime.Periods[0].Times[0].Min = m_WorkingTime.Periods[0].Times[0].Min;
m_CandleSeries.WorkingTime.Periods[0].Times[0].Max = m_WorkingTime.Periods[0].Times[0].Max;


В связи с чем, хотел уточнить, что я делаю не так? Как положено обращаться с WorkingTime? Или у него разная логика для разных объектов?

И в связи с таким непонятным поведением на всякий случай вопрос: Clone() ведь не обязательно вызывать, если я один и тот же WorkingTime использую в разных местах только для чтения? Хотя, я с Clone() тоже на всякий случай попробовал, не помогает. :)

UPD. Еще попутный вопрос: обратил внимание, что RealTimeEmulationTrader<T>.ReConnectionSettings.WorkingTime, который я использую, также влияет на расписание поставки свечей (с ним проблем нет, но связь этого расписания с расписанием поставки свечек для меня не очевидна). И я хотел узнать, в каких еще объектах и свойствах WorkingTime оказывает влияние на поставку свечек? (Или куда хотя бы копать в исходниках?)

Tags:


Thanks:


Валентин Лебедев

Avatar
Date: 10/5/2015
Reply


Code
m_CandleSeries.WorkingTime.Periods[0].Times[0].Min = m_WorkingTime.Periods[0].Times[0].Min;
m_CandleSeries.WorkingTime.Periods[0].Times[0].Max = m_WorkingTime.Periods[0].Times[0].Max;

Таким образом ты скорее всего просто меняешь расписание площадки, которое используется и в других местах.
А то что такой код не работает
Code
m_CandleSeries = new CandleSeries(typeof(TimeFrameCandle), s, m_Timeframe) { WorkingTime = m_WorkingTime };

может означать что CandleSeries для расчетов берет его не из своего свойства WorkingTime.
Подробнее нужно смотреть на гитхабе.
Thanks:

pafnuty

Avatar
Date: 10/6/2015
Reply


"скорее всего..." и "может означать..." - это все понятно. :) Я хотел узнать, это ошибка в реализации или так и должно быть? Т.е. как подразумевает сам автор логику работы с WorkingTime? Чтобы в исходники лезть, мне надо понимать, что исправлять (и надо ли это вообще делать).
Thanks:


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

loading
clippy