Понимаю, что для кого-то вопрос окажется глупым, а ответ очевидным, но…
Если нетрудно, прошу опытных алготрейдеров S# посоветовать каким образом лучше проходить через ночное время в моей ситуации. У кого, так сказать, какой опыт.
Суть в следующем: при торговле через Плаза (вероятно, на Квике та же ситуация) происходит дисконнект (сервера, видимо, выключаются) после окончания вечерней сессии - где-то в 0 - 0:30. Поэтому своего трейдера отключаю предварительно - по расписанию сразу в 23:50, чтобы не было проблем с реконнектом итд., а потом включаю в 9:50. Вопрос в том: если есть среднесрочная стратегия, которая к 23:50, предположим, находится в позиции и, соответственно, есть правила (например, правило полное исполнения ордера order.WhenMatched), заполненные соответствующие словари, коллекции и пр. Каким образом сделать так, чтобы стратегия на следующий день, как ни в чем не бывало, без кардинального изменения своего состояния на момент окончания предыдущего дня, продолжала работать, отрабатывать сформированные правила, подписи на события? Интересно, что произойдет и какие последствия могут быть, если просто ничего не предпринимать со стратегией типа Strategy.
Посоветуйте, пожалуйста. Спасибо. Буду благодарен за любые комментарии.
コメント (2)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Можно сохранять все что нужно в xml файл вот так.
В вашей стратегии создаем пару свойств
В конструкторе стратегии создаем файл
В метод "на старте" стратегии добавляем код
Хотя в в расширениях для стратегий, кажется есть такой метод, делаем свой, или как хотите) В моем есть немного мусора, плюс то что нужно мне. Вам стоит обратить внимание на "OrderByTransactionIds".
Ну и переопределяем метод сохранения.
Так стратегия будет восстанавливать orders, trades, positions,pnl и т.д. Но только в том случае, если из шлюза приходят зарегестрированные ранее заявки,сделки и т.д.
Если нет, то нужно наследоваться от шлюза Trader и нечто похожее на то, что делалось для стратегии проделать и там, сохраняя сделки, ордера, портфели, инструменты.
В стокшарпе есть как бы ORM для этого - EntityStorage. Но у меня ее как бы не особо получается заставить работать. После добавления недостающих полей в БД, без которых, естественно, ничего никуда не сохраняется, можно с горем пополам сохранять ордера, сделки, инструменты, портфели. Но отношения между таблицами нихрена не работают, подозреваю, что в Ecng.Data какая-то жопа.
Почему бы не мигрировать S# на EntityFramework и не сделать прекрасную модель данных для всего, что только можно. Понятно, что будут возникать проблемы при обновлении версий, но они ж и так возникают=))
И даже, видимо, не обязательно ковырять и перенаследовать все сущности, благодаря first code with POCO.
"Так стратегия будет восстанавливать orders, trades, positions,pnl и т.д. Но только в том случае, если из шлюза приходят зарегестрированные ранее заявки,сделки и т.д. " В Квике не сохраняются заявки и сделки за предыдущий день, данный метод для шлюза Квик не подходит?