Mikhail Sukhov
|
Date: 4/28/2011
Как вы проверяете?
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 4/29/2011
Mikhail Sukhov Как вы проверяете? Данные записываются в базу SQL Compact, далее, после сессии, смотрю данные в ней. По прошествии двух сессии а базе нет последних свечек. Для работы с базой использую EF. Обработчик candleManager_CandlesFinished примерно следующий: Code void candleManager_CandlesFinished(CandleToken arg1, IEnumerable<Entities.Candle> arg2) { foreach (var c in arg2) { var candle = context.Candles.FirstOrDefault(e => e.Security.Code == c.Security.Code && e.Time == c.Time); if (candle == null) { candle = new Entities.TimeFrameCandle() { Security = c.Security, Time = c.Time, OpenPrice = c.OpenPrice, HighPrice = c.HighPrice, LowPrice = c.LowPrice, ClosePrice = c.ClosePrice, TotalVolume = c.TotalVolume, }; context.Add(candle); }
} context.SaveChanges(); }
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/29/2011
Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 4/29/2011
Mikhail Sukhov Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.
Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают...
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/29/2011
esper Mikhail Sukhov Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.
Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают... Дело в том, что свечка заканчивает формироваться не по таймеру, а по поступлению данных (чтобы избежать проблем с лагами в сети брокера, которые есть чуть ли не всегда). Поэтому свечка закончит формироваться тогда, когда появиться новая свечка.
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 4/29/2011
Mikhail Sukhov esper Mikhail Sukhov Увидел кажется проблему... Событие CandlesFinished. Оно только для сформированных свечек. Видимо последние находятся еще в стадии формирования.
Программу с роботом закрываю через пару часов после завершения торгов, данные уже давно не поступают... Дело в том, что свечка заканчивает формироваться не по таймеру, а по поступлению данных (чтобы избежать проблем с лагами в сети брокера, которые есть чуть ли не всегда). Поэтому свечка закончит формироваться тогда, когда появиться новая свечка. Т.е. придется обрабатывать не Finished, а New и Changed? Не хотелось бы слишком часто в базу писать.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/29/2011
esper Т.е. придется обрабатывать не Finished, а New и Changed? Не хотелось бы слишком часто в базу писать. Пишите по окончанию сессии все свечки один раз.
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 4/29/2011
Mikhail Sukhov Пишите по окончанию сессии все свечки один раз. Спасибо за ответы, буду думать дальше, хотя было бы классно, если для последней свечки это событие тоже вызывалось.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/29/2011
esper Mikhail Sukhov Пишите по окончанию сессии все свечки один раз. Спасибо за ответы, буду думать дальше, хотя было бы классно, если для последней свечки это событие тоже вызывалось. Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделать свой собственный CandleFactory.
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 4/29/2011
Mikhail Sukhov Оно и вызывается. Просто нужно понять схему алгоритма. Если он у вас другой, то можете всегда сделать свой собственный CandleFactory. Алгоритм простой, после "завершения" свечки мне необходимо ее сохранить. CandlesFinished же не вызывается для последней свечки, так как, если я правильно понял, после нее свечек в этой сессии не будет. Можно записывать все скопом после завершения сессии, но тогда усложнится момент запуска стратегии, так как сейчас я просто поднимаю нужное кол-во свечек из базы (там есть все сформировавшиеся свечки) и запускаю стратегию, а придется комбинировать получение данных из базы и CandleManager.
|
|
Thanks:
|
|
|
|