В этом вопросе (http://stocksharp.ru/forum/8263/poluchenie-svechnyh-dannyh-iz-soobshshenii/) был получен ответ, как работать со свечками из своей базы данных.
Теперь возникла ситуация, при которой в конце дня подается заявка на сделку и до ее исполнения (прихода всех сделок) наступает новый день. Есть ли возможность "запрашивать" новую свечу, после исполнения всех сделок по заявкам прошедшего дня? (считаем, что у нас супер-ликвидный рынок).
Пробовал каждую свечку в коллекции свечей из собственной базы первоначально пометить как формирующуюся, т.е.:
Код
...
while (reader.Read())
{
candles_sourse.Add(new TimeFrameCandle()
{
Security = security,
TimeFrame = TimeSpan.FromMinutes(period),
OpenTime = new DateTimeOffset((DateTime)reader["open_datetime"], ST.timezone_timespan_hours),
OpenPrice = (decimal)(double)reader["o"],
HighPrice = (decimal)(double)reader["h"],
LowPrice = (decimal)(double)reader["l"],
ClosePrice = (decimal)(double)reader["c"],
TotalVolume = (decimal)(double)reader["v"],
[b] State = CandleStates.Active[/b]
});
}
...
А после, когда ордер полностью исполнен, следующую свечу в коллекции помечать как сформированную, т.е.:
Код
...
State = CandleStates.Finished
...
Но в этой ситуации эмуляция просто зависает.
Пробовал также вызывать у коннектора метод Suspend(), но в этом случае и заявки перестают обрабатываться - из этого состояния коннектор уже не выйдет.
Т.е. еще раз, чтобы хотелось:
1) Закончился день
2) Если есть заявки - обработали их через события (<order>.WhenNewTrades(...)), новый день не начинается, пока все не обработаны.
3) Получили всех сделки, считая, что рынок крайне ликвиден и в конце дня успеет пройти любой объем
4) "Разрешили" начаться следующему дню (как?)