[major] хранение и восстановление сделок стратегии
Atom Ответить
14.02.2011


Вопрос: как восстановить инфу к какой стратегии относится сделка?

Имеется робот с несколькими стратегиями. Эти стратегии генерируют сделки на одной бумаге. Для работы стратегий требуется история сделок, которые они совершили и информация, есть ли открытие позиции.
Хочется после остановки и повторного запуска восстанавливать состояние стратегий. В S# есть механизм хранения данных, но в его API есть только сохранение сделок с привязкой к бумаге. Нет информации о стратегиях.

Хорошо, я могу сохранять инфу о трейдах в своем собственном хранилище, восстанавливать состояние при старте стратегии, но в S# этой инфы не будет и весь механизм подсчета статистики S# не будет работать. Можно ли как-нибудь при загрузке стратегии указывать ей, какие сделки ее?

Теги:


Спасибо:




4 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.02.2011
Ответить


Хранилище данных пока не доработано, и работает только в случае с Гидрой. Как вариант, реализуйте своего наследника от StrategyPositionManager и передайте в стратегию.
Спасибо:

Greene-nsk

Фотография
Дата: 10.03.2011
Ответить


Михаил, я подменяю PositionManager на свой, работает хорошо. Можно ли как-нибудь подменить PositionManager у PnLManager, чтобы в нем учитывались подгруженные сделки?

base.PositionManager = newPositionManager;
base.PnLManager.PositionManager = newPositionManager; <-- здесь ошибка, что поле readonly

Код

public class MyStrategyPositionManager : StrategyPositionManager
{
public MyStrategyPositionManager(Strategy strategy, IEnumerable<MyTrade> myTradesPreloaded)
: base(strategy)
{
base.Strategy.MyTrades.AddRange(myTradesPreloaded);
}
}
Автор топика
Спасибо:

Alexander

Фотография
Дата: 10.03.2011
Ответить


Greene-nsk Перейти
Михаил, я подменяю PositionManager на свой, работает хорошо. Можно ли как-нибудь подменить PositionManager у PnLManager, чтобы в нем учитывались подгруженные сделки?

base.PositionManager = newPositionManager;
base.PnLManager.PositionManager = newPositionManager; <-- здесь ошибка, что поле readonly

Код

public class MyStrategyPositionManager : StrategyPositionManager
{
public MyStrategyPositionManager(Strategy strategy, IEnumerable<MyTrade> myTradesPreloaded)
: base(strategy)
{
base.Strategy.MyTrades.AddRange(myTradesPreloaded);
}
}



Также подмени и PnLManager.
Спасибо:

Greene-nsk

Фотография
Дата: 10.03.2011
Ответить


Alexander Перейти

Также подмени и PnLManager.


Гениально )
Спасибо!
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy