Понимаю, что для кого-то вопрос окажется глупым, а ответ очевидным, но…
Если нетрудно, прошу опытных алготрейдеров S# посоветовать каким образом лучше проходить через ночное время в моей ситуации. У кого, так сказать, какой опыт.
Суть в следующем: при торговле через Плаза (вероятно, на Квике та же ситуация) происходит дисконнект (сервера, видимо, выключаются) после окончания вечерней сессии - где-то в 0 - 0:30. Поэтому своего трейдера отключаю предварительно - по расписанию сразу в 23:50, чтобы не было проблем с реконнектом итд., а потом включаю в 9:50. Вопрос в том: если есть среднесрочная стратегия, которая к 23:50, предположим, находится в позиции и, соответственно, есть правила (например, правило полное исполнения ордера order.WhenMatched), заполненные соответствующие словари, коллекции и пр. Каким образом сделать так, чтобы стратегия на следующий день, как ни в чем не бывало, без кардинального изменения своего состояния на момент окончания предыдущего дня, продолжала работать, отрабатывать сформированные правила, подписи на события? Интересно, что произойдет и какие последствия могут быть, если просто ничего не предпринимать со стратегией типа Strategy.
Посоветуйте, пожалуйста. Спасибо. Буду благодарен за любые комментарии.
Comentarios (2)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
Можно сохранять все что нужно в xml файл вот так.
В вашей стратегии создаем пару свойств
В конструкторе стратегии создаем файл
В метод "на старте" стратегии добавляем код
Хотя в в расширениях для стратегий, кажется есть такой метод, делаем свой, или как хотите) В моем есть немного мусора, плюс то что нужно мне. Вам стоит обратить внимание на "OrderByTransactionIds".
Ну и переопределяем метод сохранения.
Так стратегия будет восстанавливать orders, trades, positions,pnl и т.д. Но только в том случае, если из шлюза приходят зарегестрированные ранее заявки,сделки и т.д.
Если нет, то нужно наследоваться от шлюза Trader и нечто похожее на то, что делалось для стратегии проделать и там, сохраняя сделки, ордера, портфели, инструменты.
В стокшарпе есть как бы ORM для этого - EntityStorage. Но у меня ее как бы не особо получается заставить работать. После добавления недостающих полей в БД, без которых, естественно, ничего никуда не сохраняется, можно с горем пополам сохранять ордера, сделки, инструменты, портфели. Но отношения между таблицами нихрена не работают, подозреваю, что в Ecng.Data какая-то жопа.
Почему бы не мигрировать S# на EntityFramework и не сделать прекрасную модель данных для всего, что только можно. Понятно, что будут возникать проблемы при обновлении версий, но они ж и так возникают=))
И даже, видимо, не обязательно ковырять и перенаследовать все сущности, благодаря first code with POCO.
"Так стратегия будет восстанавливать orders, trades, positions,pnl и т.д. Но только в том случае, если из шлюза приходят зарегестрированные ранее заявки,сделки и т.д. " В Квике не сохраняются заявки и сделки за предыдущий день, данный метод для шлюза Квик не подходит?