Неправильное формирование свечек, несколько ТФ, много стратегий

Неправильное формирование свечек, несколько ТФ, много стратегий
Atom
24.08.2010
Alexander


Запущено 10 стратегий, для CandleManager регистрируются 2 ТФ: 1- минутки и 5-минутки. Пытаюсь получать свечки внутри стратегии, вот их распечатка:

localCandle: time(10:45:00), open(139880), close(139800), high(139945), low(139775); TimeFrame: 00:05:00 localCandle: time(10:40:00), open(139965), close(139910), high(140145), low(139875); TimeFrame: 00:05:00 localCandle: time(10:35:00), open(140335), close(139985), high(140335), low(139950); TimeFrame: 00:05:00 localCandle: time(10:30:00), open(140250), close(140355), high(140395), low(140110); TimeFrame: 00:05:00 localCandle: time(10:25:00), open(140330), close(140250), high(140335), low(140235); TimeFrame: 00:05:00 localCandle: time(10:20:00), open(140240), close(140325), high(140340), low(140195); TimeFrame: 00:05:00 localCandle: time(10:15:00), open(140250), close(140185), high(140325), low(140110); TimeFrame: 00:05:00 localCandle: time(10:10:00), open(140150), close(140225), high(140385), low(140125); TimeFrame: 00:05:00 localCandle: time(10:05:00), open(140375), close(140150), high(140375), low(140140); TimeFrame: 00:05:00 localCandle: time(10:00:00), open(140770), close(140370), high(140770), low(140255); TimeFrame: 00:05:00

Стратегия запущена была в 10:18, до этого времени свечки как раз верные, после - совсем не то. Это фьючерс на индекс РТС - как видно свечки кривые как раз после запуска. Объём свечек тоже неверный, объём свечки в 10:45 - 474, в 10:40 - 217...

Свечки получаю через: var oldCandles = _candleManager.GetTimeFrameCandles(Security, TimeFrame, new Range(firstTime, marketTime)); //firstTime - 10.00, marketTime - текущее время, TimeFrame - 5 минут

Самое интересное - на локальном компьютере, где запущены всего 3 стратегии и 1 квик - всё нормально.


Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

Фотография
Дата: 24.08.2010
Ответить


Чем проще цикл, тем меньше ошибок... Так что насчет разницы между тачками?

Спасибо:

Alexander

Фотография
Дата: 24.08.2010
Ответить


Да, на сервере 6 квиков, на локальной машине - 1 квик. И там и там идёт работа через MultiTrader, программа-робот одна и таже.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 24.08.2010
Ответить


Ха, я кажется понял в чем фишка. Один Квик строит свечки последовательно, по сделкам. 6 квиков посылают сделки параллельно. Как следствие, неправильные свечки. Алго построения свечек основан на том, что как только появляется сделка из следующего ТФ, то текущая свечка помечается как сформированная и к ней более обращений не идет.

Спасибо:

Alexander

Фотография
Дата: 24.08.2010
Ответить


Понял, похоже на мои предположения. Буду ждать фикса тогда, сейчас с несколькими квиками не получается иначе работать :(

Спасибо:

Mikhail Sukhov

Фотография
Дата: 25.08.2010
Ответить


Хм, а вот тут не все так просто. Я пока даже предствить себе не могу, как это фиксить. Алгоритм свечной не поддерживает такое поведение... Может быть формировать свечки по конретным QuikTrader?

Спасибо:

Alexander

Фотография
Дата: 25.08.2010
Ответить


Я правильно понимаю что для каждого QuikTrader надо создать свой CandleManager и регистрировать необходимые ТФ? Если так, то не проблема, конечно сделаю.

Спасибо:

Alexander

Фотография
Дата: 25.08.2010
Ответить


Чтобы закрыть эту тему - реализовал именно таким образом сейчас, завтра протестирую

Спасибо:

Alexander

Фотография
Дата: 25.08.2010
Ответить


Михаил, задам вопрос тут, дабы не плодить множество тем - надо ли дополнительно проверять IsTimeFrameCandlesRegistered перед регистрацией таймфрейма или это уже запрятано внутрь RegisterTimeFrameCandles и повторной регистрации не произойдёт в любом случае?

Спасибо:

Mikhail Sukhov

Фотография
Дата: 25.08.2010
Ответить


Надо. Иначе будет исключение. Специально сделал чтобы ловили с своих роботах код, который норовит зарегистрировать лишнее.

Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy