Exchange working time
Atom
9/22/2010
dart


У меня неправильно время окончания первой свечки считает вот этим методом: _nextTime = base.TimeFrame.GetCandleBounds(base.Trader).Max; Как можно узнать время начала работы биржи узнать? В блоге находил такое: var dateTime = DateTime.Today + exchange.WorkingTime.First().Min; Не работает. По-разному пробовал. А нельзя самому задавать время работы биржи, как это делается в прогах теханализа?


Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 9/22/2010
Reply


А что значит не работает? Можете описать подробнее?

Thanks:

dart

Avatar
Date: 9/22/2010
Reply


Просто VS не даёт прописать First к WorkingTime. Пишет - не содержит определения для First: var dateTime = DateTime.Today + Exchange.Rts.WorkingTime.First().Min;

Метод GetCandleBounds начинает считать для РТС с 10:00 если я правильно понимаю. То есть к примеру: свеча с ТФ 57 мин, должна заканчиваться в 10:57 по идее.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/22/2010
Reply


Потому что используется LINQ Надо прописать using System.Linq

Thanks:

dart

Avatar
Date: 9/23/2010
Reply


По этой команде: _nextTime = base.TimeFrame.GetCandleBounds(base.Trader).Max у меня свечки отсчитываются со времени 0:00:00. То есть например, первая свечка с ТФ 4 часа начнётся (имеется ввиду candle.Time) в 8:00, следующие в 12:00, затем в 16:00 и т.д. А начало торгов в РТС 10:00, здесь всё верно.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2010
Reply


А чему равен ITrader.MarketTime?

Thanks:

dart

Avatar
Date: 9/23/2010
Reply


Сейчас проверил для ТФ 3 часа. Время окончания текущей свечи _nextTime = 15:00. Соответственно предыдущие свечки начинались в 12:00. И candle.Time первой свечки этого дня = 9:00.

Thanks:

dart

Avatar
Date: 9/23/2010
Reply


base.Trader.MarketTime даёт текущее квиковское время, т.е. Москвы. Здесь всё время Московское указано. Сейчас для 3 часового ТФ я замерял _nexttime было равно 15:00. При этом MarketTime было равно 13:58:41. Всё в файле записано

Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2010
Reply


Так а где проблема то?

Thanks:

dart

Avatar
Date: 9/23/2010
Reply


Так свечки рисуются неправильно. Сейчас пытаюсь перенести стратегию из Омеги в S#. Там свечки строятся с начала работы биржи, как и в любой другой проге теханализа. То есть к примеру первая 4-часовая свеча заканчивается в 14:00 А в S# по- другому - в 12:00. Соответственно не получается перенести. Свечки должны строиться с момента начала работы биржи. Это будет правильно.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/23/2010
Reply


Переносите с поправками. Свечки в S# строяться не с какого то момента. Они имеют свое собственно время. CandleManager строит свечки по тикам. Выражение же base.TimeFrame.GetCandleBounds(base.Trader).Max к свечкам относиться постольку, поскольку. Они лишь говорит, что текущая свечка (понятие текущая берется из ITrader.MarketTime) с длинной base.TimeFrame имеет такое то начало и окончание. Если Вы пишите, что ITrader.MarketTime возвращает все ок, то значит проблема в base.TimeFrame. Не нулю ли он равен?

Thanks:
1 2  >

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

loading
clippy