DecomposedStrategy
Базовый класс для всех торговых стратегий.
Наследует: BaseLogReceiver
Реализует: IStrategyHost, IPositionProvider, INotifyPropertyChangedEx, INotifyPropertyChanged, ITimeProvider
Конструкторы
public DecomposedStrategy()
decomposedStrategy = DecomposedStrategy()
Инициализирует новый экземпляр DecomposedStrategy.
public DecomposedStrategy(IPnLManager pnlManager, IStatisticManager stats)
decomposedStrategy = DecomposedStrategy(pnlManager, stats)
Инициализирует новый экземпляр DecomposedStrategy.
- pnlManager
- PnL менеджер.
- stats
- Статистический менеджер.
Свойства
public bool CancelOrdersWhenStopping { get; set; }
value = decomposedStrategy.CancelOrdersWhenStopping
decomposedStrategy.CancelOrdersWhenStopping = value
Отменяйте активные заказы, когда стратегия прекращается.
public StrategyCommentModes CommentMode { get; set; }
value = decomposedStrategy.CommentMode
decomposedStrategy.CommentMode = value
Режим комментариев.
public decimal? Commission { get; }
value = decomposedStrategy.Commission
Общая накопленная комиссия (от заказов + сделок).
public IConnector Connector { get; set; }
value = decomposedStrategy.Connector
decomposedStrategy.Connector = value
Connector (через интерфейс для проверки).
public StrategyEngine Engine { get; }
value = decomposedStrategy.Engine
State Machine + маршрутизация сообщений.
public LogLevels ErrorState { get; set; }
value = decomposedStrategy.ErrorState
decomposedStrategy.ErrorState = value
Ошибочное состояние.
public virtual bool IsFormed { get; }
value = decomposedStrategy.IsFormed
Будет ли сформирована стратегия.
public bool IsOnline { get; private set; }
value = decomposedStrategy.IsOnline
decomposedStrategy.IsOnline = value
Онлайн.
public TimeSpan? Latency { get; set; }
value = decomposedStrategy.Latency
decomposedStrategy.Latency = value
Задержка.
public OrderPipeline Orders { get; }
value = decomposedStrategy.Orders
Отслеживание и обработка заказов.
public TimeSpan OrdersKeepTime { get; set; }
value = decomposedStrategy.OrdersKeepTime
decomposedStrategy.OrdersKeepTime = value
Время хранения заказов в памяти.
public IPnLManager PnLManager { get; }
value = decomposedStrategy.PnLManager
PnL менеджер.
public Portfolio Portfolio { get; set; }
value = decomposedStrategy.Portfolio
decomposedStrategy.Portfolio = value
Портфолио.
public Subscription PortfolioLookup { get; }
value = decomposedStrategy.PortfolioLookup
Подписка на поиск портфолио.
public decimal Position { get; set; }
value = decomposedStrategy.Position
decomposedStrategy.Position = value
Текущая позиция (основной финансовый инструмент).
public PositionPipeline Positions { get; }
value = decomposedStrategy.Positions
Обработка событий позиции.
public IReadOnlyDictionary<ValueTuple<SecurityId, string>, decimal> PositionsList { get; }
value = decomposedStrategy.PositionsList
Все отслеживаемые позиции.
public ProcessStates ProcessState { get; }
value = decomposedStrategy.ProcessState
Текущее состояние процесса.
public IRiskManager RiskManager { get; set; }
value = decomposedStrategy.RiskManager
decomposedStrategy.RiskManager = value
Риск-менеджер.
public Security Security { get; set; }
value = decomposedStrategy.Security
decomposedStrategy.Security = value
финансовый инструмент.
public decimal? Slippage { get; }
value = decomposedStrategy.Slippage
Полное накопленное проскальзывание.
public DateTime StartedTime { get; private set; }
value = decomposedStrategy.StartedTime
decomposedStrategy.StartedTime = value
Время начала стратегии.
public IStatisticManager StatisticManager { get; }
value = decomposedStrategy.StatisticManager
Статистический менеджер.
public SubscriptionRegistry Subscriptions { get; }
value = decomposedStrategy.Subscriptions
Управление подписками.
public TimeSpan TotalWorkingTime { get; private set; }
value = decomposedStrategy.TotalWorkingTime
decomposedStrategy.TotalWorkingTime = value
Общее рабочее время.
public TradePipeline Trades { get; }
value = decomposedStrategy.Trades
Торговая обработка и PnL.
public StrategyTradingModes TradingMode { get; set; }
value = decomposedStrategy.TradingMode
decomposedStrategy.TradingMode = value
Торговый режим.
public bool UnsubscribeOnStop { get; set; }
value = decomposedStrategy.UnsubscribeOnStop
decomposedStrategy.UnsubscribeOnStop = value
Отписаться от рыночных данных, когда стратегия прекращается.
public decimal Volume { get; set; }
value = decomposedStrategy.Volume
decomposedStrategy.Volume = value
Объем заказа по умолчанию.
public bool WaitAllTrades { get; set; }
value = decomposedStrategy.WaitAllTrades
decomposedStrategy.WaitAllTrades = value
Ждите всех сделок.
Методы
public Order BuyLimit(decimal price, decimal? volume)
result = decomposedStrategy.BuyLimit(price, volume)
Купить по лимитной цене.
public Order BuyMarket(decimal? volume)
result = decomposedStrategy.BuyMarket(volume)
Покупайте по рыночной цене.
protected virtual bool CanAttach(Order order)
result = decomposedStrategy.CanAttach(order)
Можно ли прикрепить (отследить) заказ по этой стратегии.
- order
- Прикажите проверить.
Возвращает: если ордер принадлежит этой стратегии.
public void CancelActiveOrders()
decomposedStrategy.CancelActiveOrders()
Отменить все активные заказы.
public void CancelOrder(Order order)
decomposedStrategy.CancelOrder(order)
Отмените заказ через connector.
protected virtual bool CanTrade(Security security, Portfolio portfolio, Sides side, decimal volume, string noTradeReason)
result = decomposedStrategy.CanTrade(security, portfolio, side, volume, noTradeReason)
Проверьте, можно ли торговать с информацией о заказе.
- security
- финансовый инструмент для торговли.
- portfolio
- Портфель для торговли.
- side
- Сторона заказа.
- volume
- Объем заказа.
- noTradeReason
- Причина, по которой торговля запрещена.
Возвращает: Верно, если торговля разрешена.
public Order ClosePosition()
result = decomposedStrategy.ClosePosition()
Закрыть текущую позицию.
public Order CreateOrder(Sides side, decimal price, decimal? volume)
result = decomposedStrategy.CreateOrder(side, price, volume)
Создайте инициализированный объект заказа.
- side
- Сторона заказа.
- price
- Цена. 0 для рыночного ордера.
- volume
- Объем. Если значение равно нулю, используется объем.
Возвращает: Заказ.
public void EditOrder(Order order, Order changes)
decomposedStrategy.EditOrder(order, changes)
Отредактируйте заказ через connector.
- order
- Оригинальный заказ.
- changes
- Изменения в заказе.
public decimal GetPositionValue(Security sec, Portfolio pf)
result = decomposedStrategy.GetPositionValue(sec, pf)
Получите стоимость позиции для конкретного финансового инструмента и портфеля.
protected virtual void OnCurrentPriceUpdated(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
decomposedStrategy.OnCurrentPriceUpdated(secId, price, serverTime, localTime)
Вызывается, когда текущая цена обновляется на основе рыночных данных.
protected virtual void OnError(Exception error)
decomposedStrategy.OnError(error)
Обработка ошибки, возникшей в результате работы стратегии.
- error
- Ошибка.
public ValueTask OnNewMessage(Message msg, CancellationToken ct)
result = decomposedStrategy.OnNewMessage(msg, ct)
Обработка нового исходящего сообщения от connector.
protected virtual void OnNewMyTrade(MyTrade trade)
decomposedStrategy.OnNewMyTrade(trade)
Вызывается при получении новой сделки.
- trade
- Новая торговля.
protected virtual void OnNewPosition(Position position)
decomposedStrategy.OnNewPosition(position)
Вызывается при появлении новой позиции.
- position
- Новая позиция.
public void OnOrderCancelFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderCancelFailReceived(sub, fail)
Обработка сбоя отмены заказа от connector.
protected virtual void OnOrderChanged(Order order)
decomposedStrategy.OnOrderChanged(order)
Вызывается при изменении состояния заказа.
- order
- Изменен порядок.
public void OnOrderEditFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderEditFailReceived(sub, fail)
Обработать ошибку редактирования заказа от connector.
public void OnOrderReceived(Subscription sub, Order order)
decomposedStrategy.OnOrderReceived(sub, order)
Обработка заказа, полученного от connector.
protected virtual void OnOrderRegistered(Order order)
decomposedStrategy.OnOrderRegistered(order)
Вызывается при регистрации заказа (переход из состояния «Ожидание» в состояние «Активный/Готово»).
- order
- Зарегистрированный заказ.
protected virtual void OnOrderRegisterFailed(OrderFail fail)
decomposedStrategy.OnOrderRegisterFailed(fail)
Вызывается, когда не удается зарегистрировать заказ.
- fail
- Информация о неудачном заказе.
public void OnOrderRegisterFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderRegisterFailReceived(sub, fail)
Обработать ошибку регистрации заказа от connector.
protected virtual void OnPositionChanged(Position position)
decomposedStrategy.OnPositionChanged(position)
Вызывается при изменении позиции.
- position
- Изменена позиция.
public void OnPositionReceived(Subscription sub, Position pos)
decomposedStrategy.OnPositionReceived(sub, pos)
Обработать позицию, полученную от connector.
protected virtual void OnStateChanged(ProcessStates state)
decomposedStrategy.OnStateChanged(state)
Вызывается при изменении состояния процесса.
- state
- Новое государство.
public void OnTradeReceived(Subscription sub, MyTrade trade)
decomposedStrategy.OnTradeReceived(sub, trade)
Обработка сделок, полученных от connector.
public void RegisterOrder(Order order)
decomposedStrategy.RegisterOrder(order)
Оформите заказ через connector.
public void ReRegisterOrder(Order oldOrder, Order newOrder)
decomposedStrategy.ReRegisterOrder(oldOrder, newOrder)
Переоформить (отменить + зарегистрировать новый) заказ через connector.
- oldOrder
- Приказ об отмене.
- newOrder
- Новый порядок регистрации.
public void Reset()
decomposedStrategy.Reset()
Сбросить все состояние (ордера, сделки, позиции, PnL, подписки).
public Order SellLimit(decimal price, decimal? volume)
result = decomposedStrategy.SellLimit(price, volume)
Продать по лимитной цене.
public Order SellMarket(decimal? volume)
result = decomposedStrategy.SellMarket(volume)
Продать по рыночной цене.
public ValueTask StartAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StartAsync(cancellationToken)
Запустите стратегию.
public void StartProtection(Unit takeProfit, Unit stopLoss, bool isStopTrailing, TimeSpan? takeTimeout, TimeSpan? stopTimeout, bool useMarketOrders, bool isLocalStop)
decomposedStrategy.StartProtection(takeProfit, stopLoss, isStopTrailing, takeTimeout, stopTimeout, useMarketOrders, isLocalStop)
Защита стартового положения.
- takeProfit
- Возьмите зачет.
- stopLoss
- Стоп-смещение.
- isStopTrailing
- Использовать ли метод трейлинга.
- takeTimeout
- Ограничение по времени. Если к этому моменту защита не сработала, позиция на рынке будет закрыта.
- stopTimeout
- Ограничение по времени. Если к этому моменту защита не сработала, позиция на рынке будет закрыта.
- useMarketOrders
- Использовать ли рыночные ордера.
- isLocalStop
- Принудительно остановить локальную обработку независимо от возможностей адаптера.
public ValueTask StopAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(cancellationToken)
Остановите стратегию.
public ValueTask StopAsync(Exception error, CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(error, cancellationToken)
Остановить стратегию с ошибкой.
- error
- Ошибка, вызвавшая остановку.
- cancellationToken
- Токен отмены.
События
public event Action<Subscription, ExchangeBoard> BoardReceived
decomposedStrategy.BoardReceived += handler
Стоимость платы получена.
public event Action<Subscription, ICandleMessage> CandleReceived
decomposedStrategy.CandleReceived += handler
Получено значение свечи.
public event Action CommissionChanged
decomposedStrategy.CommissionChanged += handler
Комиссия изменила мероприятие.
public event Action ConnectorChanged
decomposedStrategy.ConnectorChanged += handler
Connector изменено событие.
public event Action<Subscription, DataType> DataTypeReceived
decomposedStrategy.DataTypeReceived += handler
Получено значение типа данных.
public event Action<DecomposedStrategy> IsOnlineChanged
decomposedStrategy.IsOnlineChanged += handler
Состояние онлайн изменилось.
public event Action LatencyChanged
decomposedStrategy.LatencyChanged += handler
Событие изменения задержки.
public event Action<Subscription, Level1ChangeMessage> Level1Received
decomposedStrategy.Level1Received += handler
Получено значение Level1.
public event Action<Subscription, News> NewsReceived
decomposedStrategy.NewsReceived += handler
Значение новости получено.
public event Action<Subscription, IOrderBookMessage> OrderBookReceived
decomposedStrategy.OrderBookReceived += handler
Балансовая стоимость заказа получена.
public event Action<OrderFail> OrderCancelFailed
decomposedStrategy.OrderCancelFailed += handler
Отменить заказ не удалось.
public event Action<Subscription, OrderFail> OrderCancelFailReceived
decomposedStrategy.OrderCancelFailReceived += handler
Ошибка отмены заказа.
public event Action<Order> OrderCanceling
decomposedStrategy.OrderCanceling += handler
Заказ собираются отменить.
public event Action<long, Order> OrderEdited
decomposedStrategy.OrderEdited += handler
Заказ отредактирован.
public event Action<long, OrderFail> OrderEditFailed
decomposedStrategy.OrderEditFailed += handler
Не удалось изменить заказ.
public event Action<Subscription, OrderFail> OrderEditFailReceived
decomposedStrategy.OrderEditFailReceived += handler
Ошибка редактирования заказа.
public event Action<Subscription, IOrderLogMessage> OrderLogReceived
decomposedStrategy.OrderLogReceived += handler
Получено значение журнала заказов.
public event Action<Subscription, Order> OrderReceived
decomposedStrategy.OrderReceived += handler
Стоимость заказа получена.
public event Action<OrderFail> OrderRegisterFailed
decomposedStrategy.OrderRegisterFailed += handler
Регистрация заказа не удалась.
public event Action<Subscription, OrderFail> OrderRegisterFailReceived
decomposedStrategy.OrderRegisterFailReceived += handler
Ошибка регистрации заказа.
public event Action<Order> OrderRegistering
decomposedStrategy.OrderRegistering += handler
Заказ готовится к регистрации.
public event Action<Order, Order> OrderReRegistering
decomposedStrategy.OrderReRegistering += handler
Заказ готовится к перерегистрации.
public event Action<Subscription, MyTrade> OwnTradeReceived
decomposedStrategy.OwnTradeReceived += handler
Получена собственная торговая стоимость.
public event Action ParametersChanged
decomposedStrategy.ParametersChanged += handler
Событие изменения параметров стратегии.
public event Action PnLChanged
decomposedStrategy.PnLChanged += handler
PnL изменено событие.
public event Action<Subscription> PnLReceived
decomposedStrategy.PnLReceived += handler
PnL получил событие.
public event Action<Subscription, Portfolio, DateTime, decimal, decimal?, decimal?> PnLReceived2
decomposedStrategy.PnLReceived2 += handler
PnL получил событие.
public event Action<Subscription, Portfolio> PortfolioReceived
decomposedStrategy.PortfolioReceived += handler
Полученная стоимость портфеля.
public event Action PositionChanged
decomposedStrategy.PositionChanged += handler
Позиция изменилась.
public event Action<Subscription, Position> PositionReceived
decomposedStrategy.PositionReceived += handler
Значение позиции получено.
public event PropertyChangedEventHandler PropertyChanged
decomposedStrategy.PropertyChanged += handler
Событие изменения значения свойств элемента диаграммы.
public event Action<Subscription, Security> SecurityReceived
decomposedStrategy.SecurityReceived += handler
полученная стоимость финансового инструмента.
public event Action SlippageChanged
decomposedStrategy.SlippageChanged += handler
Проскальзывание изменило событие.
public event Action<Subscription, Exception, bool> SubscriptionFailed
decomposedStrategy.SubscriptionFailed += handler
Подписка не удалась.
public event Action<Subscription> SubscriptionOnline
decomposedStrategy.SubscriptionOnline += handler
Подписка онлайн.
public event Action<Subscription, object> SubscriptionReceived
decomposedStrategy.SubscriptionReceived += handler
Получена стоимость подписки.
public event Action<Subscription> SubscriptionStarted
decomposedStrategy.SubscriptionStarted += handler
Подписка запущена.
public event Action<Subscription, Exception> SubscriptionStopped
decomposedStrategy.SubscriptionStopped += handler
Подписка остановлена.
public event Action<Subscription, ITickTradeMessage> TickTradeReceived
decomposedStrategy.TickTradeReceived += handler
Отметьте полученную торговую стоимость.