Exchange working time
Atom
9/22/2010


У меня неправильно время окончания первой свечки считает вот этим
методом:
_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