Нет события NewCandles

Нет события NewCandles
Atom
5/27/2010
artemox


Михаил, почему может не генериться событие СandleManager.NewCandles? Делал на двух тестовых терминалах разных брокеров в своем проекте и SampleSMA. И там и там одна ошибка: По LKOH свечи идут, по RIM0 свечей нет. Ошибка возникла именно сегодня, до этого все было нормально. Уж не знаю одновременный глюк тестовых серверов, или что то в библиотеке? Версия 2.0.

В окне все сделки по RIM0 операции идут. Стакан шевелится.


Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 5/27/2010
Reply


А RegisterCandles вызывается у CandleManager?

Thanks:

artemox

Avatar
Date: 5/27/2010
Reply


Вызывается

Thanks:

Mikhail Sukhov

Avatar
Date: 5/27/2010
Reply


А ITrader.NewTrades для RIM0 приходит? Как проверяете, что события не вызываются?

Thanks:

artemox

Avatar
Date: 5/28/2010
Reply


Сделал такую отладку:

           _trader.NewTrades += trades =>
            {
                Log("NewTrades.MaxTim=" + trades.Max(c =>

c.Time).ToString()); };

          _candleManager.NewCandles += (token, candles) =>
           {
                DateTime _lastCandle = candles.Keys.Max(c =>

c.Time); OnLog("_lastCandle: " + _lastCandle.ToString());

При этом сделки пришли до 18:44:59 27.05.2010 22:30:19 NewTrades.MaxTim=27.05.2010 18:44:59

А свечи минутки до 11:08 (одним пакетом) Несколько запусков и перезагрузок компьютера с одним результатом 27.05.2010 22:28:52 _lastCandle: 27.05.2010 11:08:00

В другом терминале вообще свечи не пришли ни разу, хотя также сделки шли бесперебойно.

Честно говоря не понимаю откуда проблема, до этого все было отлично :( Проблема и в SampleSMA или своем проекте.

Thanks:

Mikhail Sukhov

Avatar
Date: 5/28/2010
Reply


Хочу сразу задать вопрос. Вы понимаете, что trades, передающийся в событие trader.NewTrades - это не все сделки, которые вообще накопились (то получается через ITrader.Trades), а то, что было получено в текущий момент?

Thanks:

artemox

Avatar
Date: 5/28/2010
Reply


Насколько я понимал - сделки вычитывались из таблицы всех сделок, при этом свежевычитанная партия передавалась в NewTrades. Если вычитанных сделок достаточно для формирования новой свечи - генерится NewCandles.

Сегодня запускаю терминал с начала сессии и свечи рисуются нормально но до 12:18, дальше NewCandles не приходит, хотя NewTrades идут исправно.

Перезапускаю терминал и проект, теперь сделки и свечи приходят большими кусками, но свечи опять же до 12:18 (то же время, что и в онлайн режиме) 28.05.2010 18:02:01NewTrades.MaxTime=28.05.2010 10:34:11 28.05.2010 18:02:03NewTrades.MaxTime=28.05.2010 10:41:25 28.05.2010 18:02:06NewTrades.MaxTime=28.05.2010 10:47:14 28.05.2010 18:02:07NewTrades.MaxTime=28.05.2010 10:58:08 28.05.2010 18:02:09NewTrades.MaxTime=28.05.2010 11:05:00 28.05.2010 18:02:11NewTrades.MaxTime=28.05.2010 11:12:23 28.05.2010 18:02:13NewTrades.MaxTime=28.05.2010 11:22:26 28.05.2010 18:02:15NewTrades.MaxTime=28.05.2010 11:34:12 28.05.2010 18:02:17NewTrades.MaxTime=28.05.2010 11:51:38 28.05.2010 18:02:19 _lastCandle: 28.05.2010 11:58:00 28.05.2010 18:02:19 _lastCandle: 28.05.2010 12:02:00 28.05.2010 18:02:19 NewTrades.MaxTime=28.05.2010 12:02:22 28.05.2010 18:02:21 _lastCandle: 28.05.2010 12:18:00 28.05.2010 18:02:21 NewTrades.MaxTime=28.05.2010 12:18:02 28.05.2010 18:02:23 NewTrades.MaxTime=28.05.2010 12:33:35 28.05.2010 18:02:25 NewTrades.MaxTime=28.05.2010 12:47:11 28.05.2010 18:02:27 NewTrades.MaxTime=28.05.2010 13:08:56 28.05.2010 18:02:29 NewTrades.MaxTime=28.05.2010 13:31:17 дальше идут только NewTrades.MaxTimе, и ни одного _lastCandle

Thanks:

artemox

Avatar
Date: 5/31/2010
Reply


Открываю проект SampleSMA (свежераспакованный из архива солюшн)

Запускаю, по LKOH последняя cвеча 18:40 (пятиминутки)

меняю строку var lkoh = securities.FirstOrDefault(s => s.Code == "GAZP"); Запускаю, по GAZP последняя cвеча 18:40, по SBER03 - 18:40, по SiM0 - 12:15, RIM0 - 12:15 (проверял в пятницу) В воскресенье LKOH, GAZP, SBER03 - последняя cвеча 18:40, а по SiM0, RIM0 ни одной свечи.

Но самое интересное, что таже проблема с ФОРТСом и на 1.8. Получается проблема в компьютере, но в чем именно... :( Единственное, что менялось - автообновление винды (Vista)

Thanks:

artemox

Avatar
Date: 5/31/2010
Reply


Насчет отсутствия свечей при тестировании в воскресенье и версии 1.8 погорячился. Т.к. тестировал на третьем терминале (у "открытия" сервер доступен в выходные) В колонке код бумаги у них "RTS-6.10", а у меня есть завязка на получение истории по RIM0 - поэтому я просто поменял 2 и 3 колонки местами. При этом не сделал соответствующие изменения в таблице всех сделок.

Вернул колонки назад, переопределил MarketDepthDelimiter, и на терминале "открытия" пришли все свечи ФОРТСа!! Ура! Хотя это не отменяет проблему с частичным появлением свечей, все равно уже не так тоскливо :)

Thanks:

Mikhail Sukhov

Avatar
Date: 5/31/2010
Reply


Правильно, поэтому код

_trader.NewTrades += trades => { Log("NewTrades.MaxTim=" + trades.Max(c => c.Time).ToString()); };

покажет лишь самую большую дату для новой партии сделок.

Еще такая заметка. Попробуйте RegisterTimeFrameCandles вызвать, когда начнут появляться уже текущие сделки (текущей минуты к примеру), а не архивные.

Thanks:

Alexander

Avatar
Date: 7/5/2010
Reply


Михаил, я правильно понял, что одному CandleManager можно зарегистрировать несколько различных таймфреймов и потом с ними параллельно работать?

Thanks:
1 2  >

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

loading
clippy