Нет события NewCandles

11 views
Skip to first unread message

artemox

unread,
May 26, 2010, 2:00:09 PM5/26/10
to Stock#
Михаил,
почему может не генериться событие СandleManager.NewCandles?
Делал на двух тестовых терминалах разных брокеров в своем проекте и
SampleSMA.
И там и там одна ошибка: По LKOH свечи идут, по RIM0 свечей нет.
Ошибка возникла именно сегодня, до этого все было нормально.
Уж не знаю одновременный глюк тестовых серверов, или что то в
библиотеке? Версия 2.0.

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

Mikhail Sukhov

unread,
May 26, 2010, 4:29:01 PM5/26/10
to Stock#
А RegisterCandles вызывается у CandleManager?

artemox

unread,
May 27, 2010, 12:33:09 AM5/27/10
to Stock#
Вызывается

Mikhail Sukhov

unread,
May 27, 2010, 7:04:49 AM5/27/10
to Stock#
А ITrader.NewTrades для RIM0 приходит? Как проверяете, что события не
вызываются?

artemox

unread,
May 27, 2010, 3:16:15 PM5/27/10
to Stock#
Сделал такую отладку:

_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 или своем проекте.

Message has been deleted

Mikhail Sukhov

unread,
May 28, 2010, 4:35:12 AM5/28/10
to Stock#
Хочу сразу задать вопрос. Вы понимаете, что trades, передающийся в
событие trader.NewTrades - это не все сделки, которые вообще
накопились (то получается через ITrader.Trades), а то, что было
получено в текущий момент?

artemox

unread,
May 28, 2010, 10:22:20 AM5/28/10
to Stock#
Насколько я понимал - сделки вычитывались из таблицы всех сделок,
при этом свежевычитанная партия передавалась в 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

artemox

unread,
May 30, 2010, 12:14:58 PM5/30/10
to Stock#
Открываю проект 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)

artemox

unread,
May 30, 2010, 12:59:56 PM5/30/10
to Stock#
Насчет отсутствия свечей при тестировании в воскресенье и версии 1.8
погорячился.
Т.к. тестировал на третьем терминале (у "открытия" сервер доступен в
выходные)
В колонке код бумаги у них "RTS-6.10", а у меня есть завязка на
получение истории по RIM0 - поэтому я просто поменял 2 и 3 колонки
местами.
При этом не сделал соответствующие изменения в таблице всех сделок.

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

Mikhail Sukhov

unread,
May 31, 2010, 4:10:50 AM5/31/10
to Stock#
Правильно, поэтому код

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

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

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

On 28 май, 18:22, artemox <arte...@gmail.com> wrote:

Alexander

unread,
Jul 4, 2010, 6:40:48 PM7/4/10
to Stock#
Михаил, я правильно понял, что одному CandleManager можно
зарегистрировать несколько различных таймфреймов и потом с ними
параллельно работать?

Mikhail Sukhov

unread,
Jul 5, 2010, 5:57:50 AM7/5/10
to Stock#
Конечно, именно так и нужно.
Reply all
Reply to author
Forward
0 new messages