Strategy
Базовый класс для всех торговых стратегий.
Наследует: BaseLogReceiver
Реализует: IStrategyHost, IPositionProvider, INotifyPropertyChangedEx, INotifyPropertyChanged, ITimeProvider, IStrategy, IMarketRuleContainer, ILogReceiver, ILogSource, IDisposable, IMarketDataProvider, ISubscriptionProvider, ISecurityProvider, ISecurityMessageProvider, ITransactionProvider, IPortfolioProvider, IReportSource, ICustomTypeDescriptor, IScheduledTask
Конструкторы
public Strategy(IPnLManager pnlManager, IStatisticManager stats)
strategy = Strategy(pnlManager, stats)
Initializes a new instance Strategy.
- pnlManager
- PnL manager.
- stats
- Statistic manager.
Свойства
public TimeSpan AggregationInterval { get; set; }
value = strategy.AggregationInterval
strategy.AggregationInterval = value
Временной интервал для агрегации. Заказы/торговли в пределах одного интервала группируются вместе. По умолчанию 1 час. Устанавливается до нуля для отключения временной группировки.
public bool CancelOrdersWhenStopping { get; set; }
value = strategy.CancelOrdersWhenStopping
strategy.CancelOrdersWhenStopping = value
Отменить активные заказы на остановке.
public INotifyList<Strategy> ChildStrategies { get; }
value = strategy.ChildStrategies
Стратегии субсидиарной торговли.
public StrategyCommentModes CommentMode { get; set; }
value = strategy.CommentMode
strategy.CommentMode = value
Комментарий по имени или Id.
public virtual IConnector Connector { get; set; }
value = strategy.Connector
strategy.Connector = value
Подключение к торговой системе.
public override DateTime CurrentTime { get; }
value = strategy.CurrentTime
Текущее время UTC.
public bool DisposeOnStop { get; set; }
value = strategy.DisposeOnStop
strategy.DisposeOnStop = value
Автоматически очищать ресурсы, используемые стратегией, когда она останавливается (state ProcessState становится равным Stopped).
public StrategyEngine Engine { get; }
value = strategy.Engine
State machine + message routing.
public SettingsStorage Environment { get; }
value = strategy.Environment
Параметры стратегической среды.
public LogLevels ErrorState { get; set; }
value = strategy.ErrorState
strategy.ErrorState = value
Состояние ошибки.
public static bool HideSecurityAndPortfolioParameters { get; set; }
value = Strategy.HideSecurityAndPortfolioParameters
Strategy.HideSecurityAndPortfolioParameters = value
Сделайте финансовый инструмент и портфель недоступными для просмотра.
protected virtual TimeSpan? HistoryCalculated { get; }
value = strategy.HistoryCalculated
Рассчитывается из кодовой версии HistorySize.
protected virtual TimeSpan? HistoryCalculatedForSubscribe { get; }
value = strategy.HistoryCalculatedForSubscribe
Code-calculated warm-up history span, if any.
public TimeSpan? HistorySize { get; set; }
value = strategy.HistorySize
strategy.HistorySize = value
История для инициализации стратегии на Live-трейдинге.
protected virtual TimeSpan? HistorySizeForSubscribe { get; }
value = strategy.HistorySizeForSubscribe
Configured live-trading warm-up history span, if any.
public override Guid Id { get; set; }
value = strategy.Id
strategy.Id = value
Идентификатор стратегии.
public INotifyList<IIndicator> Indicators { get; }
value = strategy.Indicators
Все показатели, используемые в стратегии. Используется при реализации по умолчанию IsFormed.
public Level1Fields? IndicatorSource { get; set; }
value = strategy.IndicatorSource
strategy.IndicatorSource = value
Источник по умолчанию для индикаторов, когда источник не установлен.
public bool IsBacktesting { get; }
value = strategy.IsBacktesting
Определяет Connector is HistoryEmulationConnector.
protected virtual bool IsBacktestingForSubscribe { get; }
value = strategy.IsBacktestingForSubscribe
Whether the strategy currently runs in backtesting (history emulation) mode.
public virtual bool IsFormed { get; }
value = strategy.IsFormed
Стратегия полностью сформирована.
public bool IsOnline { get; private set; }
value = strategy.IsOnline
strategy.IsOnline = value
Это означает, что стратегия запущена, и все подписки находятся в онлайн-состоянии.
public bool IsRulesSuspended { get; }
value = strategy.IsRulesSuspended
Is rules execution suspended.
public bool KeepStatistics { get; set; }
value = strategy.KeepStatistics
strategy.KeepStatistics = value
Сохраняйте торговую статистику (заказы, сделки, прибыль и т.д.) после перезапуска.
public Exception LastError { get; private set; }
value = strategy.LastError
strategy.LastError = value
Последняя ошибка, которая заставила стратегию остановиться.
public TimeSpan? Latency { get; set; }
value = strategy.Latency
strategy.Latency = value
Полная задержка.
public override LogLevels LogLevel { get; set; }
value = strategy.LogLevel
strategy.LogLevel = value
Уровень для выполнения этого правила логарифмирования.
public int MaxOrdersBeforeAggregation { get; set; }
value = strategy.MaxOrdersBeforeAggregation
strategy.MaxOrdersBeforeAggregation = value
Максимальное количество ордеров до запуска автоматической агрегации. Дефолт 10000. Устанавливается до 0 для отключения автоматической агрегации.
public int MaxTradesBeforeAggregation { get; set; }
value = strategy.MaxTradesBeforeAggregation
strategy.MaxTradesBeforeAggregation = value
Максимальное количество сделок до запуска автоматической агрегации. Дефолт 10000. Устанавливается до 0 для отключения автоматической агрегации.
public IEnumerable<MyTrade> MyTrades { get; }
value = strategy.MyTrades
Торговля, сопоставленная во время операции стратегии.
public override string Name { get; set; }
value = strategy.Name
strategy.Name = value
Название стратегии.
public StrategyNameGenerator NameGenerator { get; }
value = strategy.NameGenerator
Генератор названий стратегий.
public virtual IEnumerable<IOrderBookSource> OrderBookSources { get; }
value = strategy.OrderBookSources
Все возможные источники IOrderBookMessage, которые могут быть получены по адресу OrderBookDrawing.
public Subscription OrderLookup { get; }
value = strategy.OrderLookup
Получить глобальную подписку на поиск заказа.
public OrderPipeline OrderProcessor { get; }
value = strategy.OrderProcessor
Order tracking and processing pipeline.
public IEnumerable<Order> Orders { get; }
value = strategy.Orders
Заказы, зарегистрированные в рамках стратегии.
public TimeSpan OrdersKeepTime { get; set; }
value = strategy.OrdersKeepTime
strategy.OrdersKeepTime = value
Время хранения Заказов в памяти. По умолчанию оно равно 2 дня. Если значение установлено в нуле, заказы не будут удалены.
public StrategyParameterDictionary Parameters { get; }
value = strategy.Parameters
Параметры стратегии.
public decimal PnL { get; }
value = strategy.PnL
Совокупная стоимость убытка без учета комиссии комиссии.
public IPnLManager PnLManager { get; set; }
value = strategy.PnLManager
strategy.PnLManager = value
Менеджер прибылей-убытков.
public Portfolio Portfolio { get; set; }
value = strategy.Portfolio
strategy.Portfolio = value
Портфолио.
public Subscription PortfolioLookup { get; }
value = strategy.PortfolioLookup
Получить глобальную подписку на поиск портфолио.
public IPortfolioProvider PortfolioProvider { get; set; }
value = strategy.PortfolioProvider
strategy.PortfolioProvider = value
IPortfolioProvider
public decimal Position { get; set; }
value = strategy.Position
strategy.Position = value
Позиция совокупная стоимость.
public IReadOnlyDictionary<ValueTuple<SecurityId, string>, decimal> PositionsList { get; }
value = strategy.PositionsList
All tracked positions.
public ProcessStates ProcessState { get; }
value = strategy.ProcessState
Операционное состояние.
public IRandomProvider RandomProvider { get; set; }
value = strategy.RandomProvider
strategy.RandomProvider = value
Where anything in the strategy that draws at random takes its draws from.
public ReportSource ReportSource { get; }
value = strategy.ReportSource
Источник данных с поддержкой агрегации.
public decimal RiskFreeRate { get; set; }
value = strategy.RiskFreeRate
strategy.RiskFreeRate = value
Годовая безрисковая ставка (e.g, 0,03 = 3%).
public IRiskManager RiskManager { get; set; }
value = strategy.RiskManager
strategy.RiskManager = value
Менеджер по контролю рисков.
public IEnumerable<IRiskRule> RiskRules { get; set; }
value = strategy.RiskRules
strategy.RiskRules = value
Правила риска.
public IMarketRuleList Rules { get; }
value = strategy.Rules
Перечень правил расчета комиссии.
public Security Security { get; set; }
value = strategy.Security
strategy.Security = value
финансовый инструмент.
public DateTime StartedTime { get; private set; }
value = strategy.StartedTime
strategy.StartedTime = value
Время начала стратегии.
public IStatisticManager StatisticManager { get; protected set; }
value = strategy.StatisticManager
strategy.StatisticManager = value
Менеджер статистики.
public SubscriptionRegistry Subscriptions { get; }
value = strategy.Subscriptions
Subscription management.
public Func<Sides, decimal, IPositionModifyAlgo> TargetAlgoFactory { get; set; }
value = strategy.TargetAlgoFactory
strategy.TargetAlgoFactory = value
Завод по созданию алгоритмов изменения позиции для TargetPositionManager. Default создает MarketOrderAlgo.
public PositionTargetManager TargetPositionManager { get; }
value = strategy.TargetPositionManager
Менеджер по позиционированию.
public TimeSpan TotalWorkingTime { get; private set; }
value = strategy.TotalWorkingTime
strategy.TotalWorkingTime = value
Общее время действия стратегии меньше периодов времени, когда стратегия была остановлена.
public StrategyTradingModes TradingMode { get; set; }
value = strategy.TradingMode
strategy.TradingMode = value
Разрешить торговлю.
public TimeSpan UnrealizedPnLInterval { get; set; }
value = strategy.UnrealizedPnLInterval
strategy.UnrealizedPnLInterval = value
Интервал для пересчета нереализованной прибыли. Значение по умолчанию 1 минута.
public bool UnsubscribeOnStop { get; set; }
value = strategy.UnsubscribeOnStop
strategy.UnsubscribeOnStop = value
Отмените подписку, пока стратегия прекращается.
public virtual decimal Volume { get; set; }
value = strategy.Volume
strategy.Volume = value
Операционный объем.
public bool WaitAllTrades { get; set; }
value = strategy.WaitAllTrades
strategy.WaitAllTrades = value
Остановить стратегию можно только после получения всех сделок по зарегистрированным заказам.
public bool WaitRulesOnStop { get; set; }
value = strategy.WaitRulesOnStop
strategy.WaitRulesOnStop = value
Правила ожидания должны закончиться, прежде чем стратегия перейдет в состояние остановки.
public WorkingTime WorkingTime { get; set; }
value = strategy.WorkingTime
strategy.WorkingTime = value
Граница времени, в пределах которой должны быть переведены свечи для дачи рядов.
Методы
protected void Alert(AlertNotifications type, string caption, string message)
strategy.Alert(type, caption, message)
Отправить уведомление о тревоге.
- type
- Тип оповещения.
- caption
- Заголовок сигнала.
- message
- Текст оповещения.
protected void Alert(AlertNotifications type, string message)
strategy.Alert(type, message)
Отправьте уведомление с названием стратегии в заголовке.
- type
- Тип оповещения.
- message
- Текст оповещения.
protected void AlertLog(string message)
strategy.AlertLog(message)
Отправить уведомление о предупреждении журнала.
- message
- Текст оповещения.
protected void AlertPopup(string message)
strategy.AlertPopup(message)
Отправить всплывающее уведомление.
- message
- Текст оповещения.
protected void AlertSound(string message)
strategy.AlertSound(message)
Отправить звуковое уведомление.
- message
- Текст оповещения.
public void ApplyCommand(CommandMessage cmdMsg)
strategy.ApplyCommand(cmdMsg)
Применить входящую команду.
- cmdMsg
- Сообщение содержит информацию о команде на изменение состояния.
public virtual ValueTask ApplyCommandAsync(CommandMessage cmdMsg, CancellationToken cancellationToken)
result = strategy.ApplyCommandAsync(cmdMsg, cancellationToken)
Apply an incoming remote command to the strategy.
- cmdMsg
- CommandMessage.
- cancellationToken
- CancellationToken
Возвращает: ValueTask
public Order BuyLimit(decimal price, decimal? volume, Security security)
result = strategy.BuyLimit(price, volume, security)
Создать инициализированный объект ордера на покупку.
- price
- Цена.
- volume
- Объем. Если значение передается, то используется значение объема.
- security
- Финансовый инструмент. Если передается значение, используется стоимость финансового инструмента.
Возвращает: Инициализированный объект заказа.
public Order BuyMarket(decimal? volume, Security security)
result = strategy.BuyMarket(volume, security)
Создать инициализированный объект ордера на покупку по рыночной цене.
- volume
- Объем. Если значение передается, то используется значение объема.
- security
- Финансовый инструмент. Если передается значение, используется стоимость финансового инструмента.
Возвращает: Инициализированный объект заказа.
protected virtual bool CanAttach(Order order)
result = strategy.CanAttach(order)
Определяет, что указанный ордер может принадлежать стратегии.
- order
- Заказ.
Возвращает: Проверьте результат.
public void CancelActiveOrders(bool? isStopOrder, Portfolio portfolio, Sides? direction, ExchangeBoard board, Security security, SecurityTypes? securityType, long? transactionId)
strategy.CancelActiveOrders(isStopOrder, portfolio, direction, board, security, securityType, transactionId)
Отменить все активные ордера (стоповые и обычные).
- isStopOrder
- , если отменить только стоп-ордеры, - если обычные ордера, - оба.
- portfolio
- Портфолио. Если значение равно , то портфель не соответствует фильтру отмены ордеров.
- direction
- Сторона заказа. Если значение равно , направление не используется.
- board
- Торговая доска. Если значение равно , то доска не соответствует фильтру отмены ордеров.
- security
- Инструмент. Если значение равно , то инструмент не соответствует фильтру отмены ордеров.
- securityType
- тип финансового инструмента. Если значение равно , тип не используется.
- transactionId
- Идентификатор транзакции отмены заказа.
private void CancelAllActiveOrders()
strategy.CancelAllActiveOrders()
Cancel all active orders unconditionally (used internally on stop and risk actions, where the public Int64}) would be skipped because the strategy is no longer in the Started state).
private void CancelOrderHandler(Order order)
strategy.CancelOrderHandler(order)
Dispatch a cancel without the public guards (stop-time teardown); the caller handles the IsCanceled dedup.
public void CancelTargetPosition()
strategy.CancelTargetPosition()
Отменить целевую позицию для финансового инструмента и портфеля стратегии.
public void CancelTargetPosition(Security security, Portfolio portfolio)
strategy.CancelTargetPosition(security, portfolio)
Отменить целевую позицию для указанного финансового инструмента и портфеля.
- security
- финансовый инструмент.
- portfolio
- Портфолио.
private bool CanFinalStop()
result = strategy.CanFinalStop()
Final-stop gate: deny the Stopping -> Stopped transition only while WaitRulesOnStop is set and there are outstanding rules to drain.
protected virtual bool CanTrade(Security security, Portfolio portfolio, Sides side, decimal volume, string noTradeReason)
result = strategy.CanTrade(security, portfolio, side, volume, noTradeReason)
Проверьте, можно ли торговать с информацией о заказе.
- security
- финансовый инструмент для торговли.
- portfolio
- Портфель для торговли.
- side
- Сторона заказа.
- volume
- Объем заказа.
- noTradeReason
- Причина, по которой торговля запрещена.
Возвращает: Верно, если торговля разрешена.
public Strategy Clone()
result = strategy.Clone()
Создает глубокую копию DataSeries.
Возвращает: Copy.
public virtual ValueTask<Strategy> CloneAsync(CancellationToken cancellationToken)
result = strategy.CloneAsync(cancellationToken)
Create a copy of the strategy.
- cancellationToken
- CancellationToken
Возвращает: Copy.
public Order ClosePosition(Security security, Portfolio portfolio)
result = strategy.ClosePosition(security, portfolio)
Закрыть открытую позицию по рынку (регистрировать ордер типа Market).
- security
- финансовый инструмент. В противном случае будет получена стоимость финансового инструмента.
- portfolio
- Портфолио. Если не передать, будет получено значение из Портфолио.
Возвращает: Инициализированный объект заказа.
protected virtual ValueTask CopyToAsync(Strategy copy, CancellationToken cancellationToken)
result = strategy.CopyToAsync(copy, cancellationToken)
Copy settings into .
- copy
- Strategy
- cancellationToken
- CancellationToken
Возвращает: ValueTask
protected IChartArea CreateChartArea()
result = strategy.CreateChartArea()
Создайте область диаграммы.
Возвращает: IChartArea
protected virtual Strategy CreateClone()
result = strategy.CreateClone()
Создать объект-клон (неинициализированный).
Возвращает: Стратегия
public Order CreateOrder(Sides side, decimal price, decimal? volume, Security security)
result = strategy.CreateOrder(side, price, volume, security)
Create an initialized order object.
- side
- Order side.
- price
- Price. 0 for market order.
- volume
- Volume. If null, Volume is used.
- security
- Security. If null, Security is used.
Возвращает: Order.
protected ITimerHandler CreateTimer(TimeSpan interval, Action callback)
result = strategy.CreateTimer(interval, callback)
Создайте таймер, который выполняет обратный вызов через заданные интервалы времени.
- interval
- Интервал таймера.
- callback
- Обратный вызов для выполнения.
Возвращает: ITimerHandler
protected override void DisposeManaged()
strategy.DisposeManaged()
Освободите ресурсы.
protected IChartCandleElement DrawCandles(IChartArea area, Subscription subscription)
result = strategy.DrawCandles(area, subscription)
Нарисуйте свечи на графике.
- area
- IChartArea
- subscription
- Подписка
Возвращает: IChartCandleElement
protected IChartCandleElement DrawCandles<T>(IChartArea area, ISubscriptionHandler<T> subscription)
result = strategy.DrawCandles(area, subscription)
Нарисуйте свечи на графике.
- area
- IChartArea
- subscription
- SubscriptionHandler
Возвращает: IChartCandleElement
protected IChartIndicatorElement DrawIndicator(IChartArea area, IIndicator indicator, Color? color, Color? additionalColor)
result = strategy.DrawIndicator(area, indicator, color, additionalColor)
Нарисуйте индикатор на графике.
- area
- IChartArea
- indicator
- IИндикатор
- color
- Цвет
- additionalColor
- AdditionalColor
Возвращает: IChartIndicatorElement
public void DrawOrderBook(Subscription subscription, IOrderBookSource source, IOrderBookMessage book)
strategy.DrawOrderBook(subscription, source, book)
Нарисуйте IOrderBookMessage.
- subscription
- Подписка
- source
- IOrderBookSource
- book
- IOrderBookMessage
public void DrawOrderBookOrder(Subscription subscription, IOrderBookSource source, Order order)
strategy.DrawOrderBookOrder(subscription, source, order)
Нарисуйте заказ книги заказов.
- subscription
- Подписка
- source
- IOrderBookSource
- order
- Заказ.
public void DrawOrderBookOrderFail(Subscription subscription, IOrderBookSource source, OrderFail fail)
strategy.DrawOrderBookOrderFail(subscription, source, fail)
Ошибка заказа книги заказов на розыгрыш.
- subscription
- Подписка
- source
- IOrderBookSource
- fail
- Заказ провалился.
protected IChartOrderElement DrawOrders(IChartArea area)
result = strategy.DrawOrders(area)
Нарисуйте ордера на графике.
- area
- IChartArea
Возвращает: IChartOrderElement
protected IChartTradeElement DrawOwnTrades(IChartArea area)
result = strategy.DrawOwnTrades(area)
Нарисуйте сделки на графике.
- area
- IChartArea
Возвращает: IChartTradeElement
public void EditOrder(Order order, Order changes)
strategy.EditOrder(order, changes)
Отредактируйте заказ.
- order
- Заказ.
- changes
- Изменения в заказе.
private void EnsureTxEventsHooked()
strategy.EnsureTxEventsHooked()
Ensure the internal pipeline hooks that feed the transaction-provider NewOrder/OrderChanged streams are installed exactly once. Wired lazily on first subscription so the cost is avoided for consumers that never listen to the obsolete order events.
public IAlertNotificationService GetAlertService()
result = strategy.GetAlertService()
Получить IAlertNotificationService, связанный с переданной стратегией.
Возвращает: Служба оповещений.
public IChart GetChart()
result = strategy.GetChart()
Получить IChart, связанный с переданной стратегией.
Возвращает: Диаграмма.
public IOptionDesk GetOptionDesk()
result = strategy.GetOptionDesk()
Чтобы получить IOptionDesk.
Возвращает: IOptionDesk.
public IOptionPositionChart GetOptionPositionChart()
result = strategy.GetOptionPositionChart()
Получить IOptionPositionChart, связанный с переданной стратегией.
Возвращает: Диаграмма.
public virtual IStrategyParam[] GetParameters()
result = strategy.GetParameters()
Получить параметры.
Возвращает: Параметры.
public Portfolio GetPortfolio()
result = strategy.GetPortfolio()
Получите портфолио или бросьте InvalidOperationException, если его нет.
Возвращает: Портфолио
public decimal? GetPositionValue(Security sec, Portfolio pf)
result = strategy.GetPositionValue(sec, pf)
Получите позицию.
Возвращает: Позиция.
public Security GetSecurity()
result = strategy.GetSecurity()
Получите финансовый инструмент или бросьте InvalidOperationException, если его нет.
Возвращает: финансовый инструмент
private TimeSpan GetSubscribeHistoryPreroll()
result = strategy.GetSubscribeHistoryPreroll()
Optional history pre-roll applied to market-data subscriptions during live trading, so the strategy is warmed up with the configured amount of history before "now". Returns Zero by default; subsystems that own a history setting (e.g. HistorySize / HistoryCalculated) and a backtesting flag override the wiring points below.
Возвращает: History span to subtract from CurrentTime, or zero to disable.
public decimal? GetTargetPosition(Security security, Portfolio portfolio)
result = strategy.GetTargetPosition(security, portfolio)
Получите целевую позицию для указанного финансового инструмента и портфеля.
- security
- финансовый инструмент.
- portfolio
- Портфолио.
Возвращает: Целевая позиция или нулевое значение, если не установлено.
public decimal? GetTargetPosition()
result = strategy.GetTargetPosition()
Получите целевую позицию по финансовому инструменту и портфелю стратегии.
Возвращает: Целевая позиция или нулевое значение, если не установлено.
public virtual IEnumerable<Portfolio> GetWorkingPortfolios()
result = strategy.GetWorkingPortfolios()
Получите все портфели, необходимые для стратегии.
Возвращает: Портфели.
public virtual IEnumerable<ValueTuple<Security, DataType>> GetWorkingSecurities()
result = strategy.GetWorkingSecurities()
Получите все финансовые инструменты, необходимые для стратегии.
Возвращает: финансовые инструменты.
public bool IsFormedAndOnline()
result = strategy.IsFormedAndOnline()
IsFormed и IsOnline.
Возвращает: Проверьте результат.
public bool IsFormedAndOnlineAndAllowTrading(StrategyTradingModes required)
result = strategy.IsFormedAndOnlineAndAllowTrading(required)
IsFormedAndOnline и TradingMode.
- required
- Обязательное действие.
Возвращает: Проверьте результат.
public bool? IsOrderEditable(Order order)
result = strategy.IsOrderEditable(order)
Определяет указанный заказ, можно редактировать с помощью Order).
- order
- Заказ.
Возвращает: если заказ доступен для редактирования, порядок не может быть изменен, что означает отсутствие информации.
public bool? IsOrderReplaceable(Order order)
result = strategy.IsOrderReplaceable(order)
Определяет указанный порядок, может быть заменен на Order).
- order
- Заказ.
Возвращает: если заказ сменный, заказ не может быть заменен, значит нет информации.
public override Task LoadAsync(SettingsStorage storage, CancellationToken cancellationToken)
result = strategy.LoadAsync(storage, cancellationToken)
Load settings.
- storage
- SettingsStorage
- cancellationToken
- CancellationToken
Возвращает: Task
public ValueTask<Security> LookupByIdAsync(SecurityId id, CancellationToken cancellationToken)
result = strategy.LookupByIdAsync(id, cancellationToken)
Получить инструмент по идентификатору.
- id
- идентификатор финансового инструмента.
- cancellationToken
- CancellationToken
Возвращает: Приобретенный инструмент. Если нет инструмента по заданным критериям, возвращается.
public void OnConnectorOrderReceived(Subscription sub, Order order)
strategy.OnConnectorOrderReceived(sub, order)
Handle order received from the connector. This is the pipeline callback wired to OrderReceived; the user-overridable hook is Order).
protected virtual void OnCurrentPriceUpdated(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
strategy.OnCurrentPriceUpdated(secId, price, serverTime, localTime)
Called when current price updated from market data.
protected virtual void OnError(Exception error)
strategy.OnError(error)
Processing of error, occurred as result of strategy operation.
- error
- Error.
public ValueTask OnNewMessage(Message msg, CancellationToken ct)
result = strategy.OnNewMessage(msg, ct)
Handle new outgoing message from connector.
protected virtual void OnNewPosition(Position position)
strategy.OnNewPosition(position)
Called when new position appears.
- position
- New position.
public void OnOrderCancelFailReceived(Subscription sub, OrderFail fail)
strategy.OnOrderCancelFailReceived(sub, fail)
Handle order cancellation failure from connector.
protected virtual void OnOrderChanged(Order order)
strategy.OnOrderChanged(order)
Called when order state changed. Driven by the order-tracking pipeline on every non-registration change of a tracked order (the obsolete OrderChanged counterpart). Distinct from Order), which fires for any update of one of the strategy's own orders arriving from the connector's order-lookup subscription.
- order
- Changed order.
public void OnOrderEditFailReceived(Subscription sub, OrderFail fail)
strategy.OnOrderEditFailReceived(sub, fail)
Handle order edit failure from connector.
protected virtual void OnOrderReceived(Order order)
strategy.OnOrderReceived(order)
Заказ получен.
- order
- Заказать
protected virtual void OnOrderRegistered(Order order)
strategy.OnOrderRegistered(order)
Чтобы вызвать событие OrderRegistered.
- order
- Заказ.
protected virtual void OnOrderRegisterFailed(OrderFail fail)
strategy.OnOrderRegisterFailed(fail)
Called when order registration fails.
- fail
- Order failure info.
public void OnOrderRegisterFailReceived(Subscription sub, OrderFail fail)
strategy.OnOrderRegisterFailReceived(sub, fail)
Handle order registration failure from connector.
protected virtual void OnOrderRegistering(Order order)
strategy.OnOrderRegistering(order)
Чтобы вызвать событие OrderRegistering.
- order
- Заказ.
protected virtual void OnOrderReRegistering(Order oldOrder, Order newOrder)
strategy.OnOrderReRegistering(oldOrder, newOrder)
Чтобы вызвать событие OrderReRegistering.
- oldOrder
- Отмена заказа.
- newOrder
- Новый порядок регистрации.
protected virtual void OnOwnTradeReceived(MyTrade trade)
strategy.OnOwnTradeReceived(trade)
Собственная торговля получена.
- trade
- MyTrade
protected virtual void OnPositionChanged(Position position)
strategy.OnPositionChanged(position)
Called when position changes.
- position
- Changed position.
protected virtual void OnPositionReceived(Position position)
strategy.OnPositionReceived(position)
Должность получена.
- position
- Позиция
public void OnPositionReceived(Subscription sub, Position pos)
strategy.OnPositionReceived(sub, pos)
Handle position received from connector.
protected virtual void OnStarted2(DateTime time)
strategy.OnStarted2(time)
Метод вызывается, когда был вызван метод Start и состояние ProcessState приняло значение Started.
- time
- The strategy start time.
protected virtual ValueTask OnStartedAsync(DateTime time, CancellationToken cancellationToken)
result = strategy.OnStartedAsync(time, cancellationToken)
The method is called when the strategy has entered the started state, before DateTime). An exception stops the strategy the same way as one thrown from DateTime).
- time
- The strategy start time.
- cancellationToken
- Cancellation token.
Возвращает: ValueTask
protected virtual void OnStateChanged(ProcessStates state)
strategy.OnStateChanged(state)
Called when process state changes.
- state
- New state.
protected virtual ValueTask OnStateChangedAsync(ProcessStates state, CancellationToken cancellationToken)
result = strategy.OnStateChangedAsync(state, cancellationToken)
Called asynchronously when process state changes.
- state
- New state.
- cancellationToken
- Cancellation token.
Возвращает: A task representing the state transition.
protected virtual void OnStopped()
strategy.OnStopped()
Метод вызывается, когда состояние процесса ProcessState принимает значение Остановлено.
protected virtual void OnStopping()
strategy.OnStopping()
Метод вызывается, когда состояние процесса ProcessState принимает значение Остановка.
public void OnTradeReceived(Subscription sub, MyTrade trade)
strategy.OnTradeReceived(sub, trade)
Handle trade received from connector.
public StrategyParam<T> Param<T>(string id, T initialValue)
result = strategy.Param(id, initialValue)
Инициализирует новый экземпляр StrategyParam.
- id
- Идентификатор параметра.
- initialValue
- Начальное значение.
Возвращает: Параметр стратегии.
public void Prepare()
strategy.Prepare()
Подготовьте данные для формирования отчета. Вызовите это перед доступом к каким-либо данным, чтобы убедиться, что все значения актуальны.
protected override void RaiseLog(LogMessage message)
strategy.RaiseLog(message)
To call the event Log.
- message
- A debug message.
public void RaiseParametersChanged(string name)
strategy.RaiseParametersChanged(name)
Для вызова событий ParametersChanged и PropertyChanged.
- name
- Имя параметра.
public void RegisterOrder(Order order)
strategy.RegisterOrder(order)
Зарегистрируйте новый заказ.
protected void RequestStop()
strategy.RequestStop()
Ask the strategy to stop from code that cannot wait for CancellationToken), such as a handler of market data. New orders are refused from this call on; the strategy is stopped when it handles the next message of the connector.
protected void RequestStop(Exception error)
strategy.RequestStop(error)
Ask the strategy to stop because of the error, from code that cannot wait for CancellationToken). The error is reported at once.
- error
- The error that caused the stop.
public void ReRegisterOrder(Order oldOrder, Order newOrder)
strategy.ReRegisterOrder(oldOrder, newOrder)
Перерегистрируйте заказ.
- oldOrder
- Отмена заказа.
- newOrder
- Новый порядок регистрации.
public void Reset()
strategy.Reset()
Повторно инициализировать торговый алгоритм. Он вызывается после инициализации объекта стратегии и загрузки сохраненных параметров.
public IConnector SafeGetConnector()
result = strategy.SafeGetConnector()
Чтобы получить стратегию, получим Connector. Если оно не инициализировано, исключение будет отброшено.
Возвращает: Connector.
public void Save(SettingsStorage storage, bool saveStatistics, bool saveSystemParameters)
strategy.Save(storage, saveStatistics, saveSystemParameters)
Сохраните настройки.
- storage
- SettingsStorage
- saveStatistics
- KeepStatistics
- saveSystemParameters
- Сохраните параметры системы.
public Task SaveAsync(SettingsStorage storage, bool saveStatistics, bool saveSystemParameters, CancellationToken cancellationToken)
result = strategy.SaveAsync(storage, saveStatistics, saveSystemParameters, cancellationToken)
Save settings.
- storage
- SettingsStorage
- saveStatistics
- KeepStatistics
- saveSystemParameters
- Save system parameters.
- cancellationToken
- CancellationToken
Возвращает: Task
public override Task SaveAsync(SettingsStorage storage, CancellationToken cancellationToken)
result = strategy.SaveAsync(storage, cancellationToken)
Save settings.
- storage
- SettingsStorage
- cancellationToken
- CancellationToken
Возвращает: Task
public Order SellLimit(decimal price, decimal? volume, Security security)
result = strategy.SellLimit(price, volume, security)
Создать инициализированный объект ордера на продажу.
- price
- Цена.
- volume
- Объем. Если значение передается, то используется значение объема.
- security
- Финансовый инструмент. Если передается значение, используется стоимость финансового инструмента.
Возвращает: Инициализированный объект заказа.
public Order SellMarket(decimal? volume, Security security)
result = strategy.SellMarket(volume, security)
Создать инициализированный объект ордера на продажу по рыночной цене.
- volume
- Объем. Если значение передается, то используется значение объема.
- security
- Финансовый инструмент. Если передается значение, используется стоимость финансового инструмента.
Возвращает: Инициализированный объект заказа.
public void SetAlertService(IAlertNotificationService service)
strategy.SetAlertService(service)
Установить IAlertNotificationService для стратегии.
- service
- Служба оповещений.
public void SetChart(IChart chart)
strategy.SetChart(chart)
Чтобы установить IChart для стратегии.
- chart
- Диаграмма.
public void SetOptionDesk(IOptionDesk desk)
strategy.SetOptionDesk(desk)
Чтобы установить IOptionDesk.
- desk
- IOptionDesk.
public void SetOptionPositionChart(IOptionPositionChart chart)
strategy.SetOptionPositionChart(chart)
Чтобы установить IChart для стратегии.
- chart
- Диаграмма.
public void SetPositionValue(Security security, Portfolio portfolio, decimal value, DateTime time)
strategy.SetPositionValue(security, portfolio, value, time)
Установите положение.
- security
- финансовый инструмент.
- portfolio
- Портфолио.
- value
- Позиция.
- time
- Временная метка, которая будет присвоена LocalTime и ServerTime, если позиция создается заново.
public void SetTargetPosition(decimal target)
strategy.SetTargetPosition(target)
Установите целевую позицию для финансового инструмента и портфеля стратегии.
- target
- Значение целевой позиции.
public void SetTargetPosition(Security security, Portfolio portfolio, decimal target)
strategy.SetTargetPosition(security, portfolio, target)
Установите целевую позицию для указанного финансового инструмента и портфеля.
- security
- финансовый инструмент.
- portfolio
- Портфолио.
- target
- Значение целевой позиции.
public ValueTask StartAsync(CancellationToken cancellationToken)
result = strategy.StartAsync(cancellationToken)
Start the strategy.
public void StartProtection(Unit takeProfit, Unit stopLoss, bool isStopTrailing, TimeSpan? takeTimeout, TimeSpan? stopTimeout, bool useMarketOrders, bool isLocalStop)
strategy.StartProtection(takeProfit, stopLoss, isStopTrailing, takeTimeout, stopTimeout, useMarketOrders, isLocalStop)
Защита стартового положения.
- takeProfit
- Возьмите зачет.
- stopLoss
- Стоп-смещение.
- isStopTrailing
- Использовать ли метод трейлинга.
- takeTimeout
- Ограничение по времени. Если к этому моменту защита не сработала, позиция на рынке будет закрыта.
- stopTimeout
- Ограничение по времени. Если к этому моменту защита не сработала, позиция на рынке будет закрыта.
- useMarketOrders
- Использовать ли рыночные ордера.
- isLocalStop
- Принудительно остановить локальную обработку независимо от возможностей адаптера.
protected ITimerHandler StartTimer(TimeSpan interval, Action callback)
result = strategy.StartTimer(interval, callback)
Создайте таймер, который выполняет обратный вызов через заданные интервалы времени и запускает его немедленно.
- interval
- Интервал таймера.
- callback
- Обратный вызов для выполнения.
Возвращает: ITimerHandler
public void Stop(Exception error)
strategy.Stop(error)
Остановить торговый алгоритм по причине ошибки.
- error
- Ошибка.
public ValueTask StopAsync(CancellationToken cancellationToken)
result = strategy.StopAsync(cancellationToken)
Stop the strategy.
public ValueTask StopAsync(Exception error, CancellationToken cancellationToken)
result = strategy.StopAsync(error, cancellationToken)
Stop the strategy with error.
- error
- The error that caused the stop.
- cancellationToken
- Cancellation token.
public void Subscribe(Subscription subscription)
strategy.Subscribe(subscription)
Подпишитесь.
- subscription
- Подписка.
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(Subscription subscription)
result = strategy.SubscribeCandles(subscription)
Подпишитесь на свечи.
- subscription
- Подписка
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(DataType dt, bool isFinishedOnly, Security security)
result = strategy.SubscribeCandles(dt, isFinishedOnly, security)
Подпишитесь на свечи.
- dt
- DataType
- isFinishedOnly
- IsFinishedOnly
- security
- финансовый инструмент. Если финансовый инструмент не передан, то используется стоимость финансового инструмента.
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(TimeSpan tf, bool isFinishedOnly, Security security)
result = strategy.SubscribeCandles(tf, isFinishedOnly, security)
Подпишитесь на свечи.
- tf
- Сроки.
- isFinishedOnly
- IsFinishedOnly
- security
- финансовый инструмент. Если финансовый инструмент не передан, то используется стоимость финансового инструмента.
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<Level1ChangeMessage> SubscribeLevel1(Subscription subscription)
result = strategy.SubscribeLevel1(subscription)
Подпишитесь на Level1.
- subscription
- Подписка
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<Level1ChangeMessage> SubscribeLevel1(Security security)
result = strategy.SubscribeLevel1(security)
Подпишитесь на Level1.
- security
- финансовый инструмент. Если финансовый инструмент не передан, то используется стоимость финансового инструмента.
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<IOrderBookMessage> SubscribeOrderBook(Security security)
result = strategy.SubscribeOrderBook(security)
Подпишитесь на MarketDepth.
- security
- финансовый инструмент. Если финансовый инструмент не передан, то используется стоимость финансового инструмента.
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<IOrderBookMessage> SubscribeOrderBook(Subscription subscription)
result = strategy.SubscribeOrderBook(subscription)
Подпишитесь на MarketDepth.
- subscription
- Подписка
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<ITickTradeMessage> SubscribeTicks(Subscription subscription)
result = strategy.SubscribeTicks(subscription)
Подпишитесь на Тикс.
- subscription
- Подписка
Возвращает: SubscriptionHandler
protected ISubscriptionHandler<ITickTradeMessage> SubscribeTicks(Security security)
result = strategy.SubscribeTicks(security)
Подпишитесь на Тикс.
- security
- финансовый инструмент. Если финансовый инструмент не передан, то используется стоимость финансового инструмента.
Возвращает: SubscriptionHandler
protected virtual object ToReportValue(object value)
result = strategy.ToReportValue(value)
Чтобы преобразовать значение параметра в значение отчета.
- value
- Значение параметра.
Возвращает: Значение отчета.
private Subscription ToSubscription<TLookupMessage>()
result = strategy.ToSubscription()
Build a global lookup subscription stamped with this strategy's identifier.
Возвращает: Subscription.
public bool TryAddMyTrade(MyTrade trade)
result = strategy.TryAddMyTrade(trade)
Попробуйте добавить собственную торговлю.
- trade
- MyTrade
Возвращает: Результат операции.
public void UnSubscribe(Subscription subscription)
strategy.UnSubscribe(subscription)
Отписаться.
- subscription
- Подписка.
События
public event Action<Subscription, ExchangeBoard> BoardReceived
strategy.BoardReceived += handler
ExchangeBoard получено.
public event Action<Subscription, ICandleMessage> CandleReceived
strategy.CandleReceived += handler
ICandleMessage получено.
public event Action CommissionChanged
strategy.CommissionChanged += handler
Событие смены комиссии.
public event Action ConnectorChanged
strategy.ConnectorChanged += handler
Событие изменения подключения стратегии.
public event Action<Subscription, DataType> DataTypeReceived
strategy.DataTypeReceived += handler
DataType получено.
public event Action<IStrategy, Exception> Error
strategy.Error += handler
Событие возникновения ошибки в стратегии.
public event Action<Strategy> IsOnlineChanged
strategy.IsOnlineChanged += handler
Событие изменения состояния стратегии онлайн.
public event Action LatencyChanged
strategy.LatencyChanged += handler
Событие изменения задержки.
public event Action<Subscription, Level1ChangeMessage> Level1Received
strategy.Level1Received += handler
Level1ChangeMessage получено.
public event Action<MyTrade> NewMyTrade
strategy.NewMyTrade += handler
Собственная торговля получена.
public event Action<Subscription, News> NewsReceived
strategy.NewsReceived += handler
Новости получены.
public event Action<Subscription, IOrderBookSource, IOrderBookMessage> OrderBookDrawing
strategy.OrderBookDrawing += handler
IOrderBookMessage).
public event Action<Subscription, IOrderBookSource, Order> OrderBookDrawingOrder
strategy.OrderBookDrawingOrder += handler
Заказ).
public event Action<Subscription, IOrderBookSource, OrderFail> OrderBookDrawingOrderFail
strategy.OrderBookDrawingOrderFail += handler
OrderFail).
public event Action<Subscription, IOrderBookMessage> OrderBookReceived
strategy.OrderBookReceived += handler
IOrderBookMessage получено.
public event Action<OrderFail> OrderCancelFailed
strategy.OrderCancelFailed += handler
Событие ошибки отмены заказа.
public event Action<Subscription, OrderFail> OrderCancelFailReceived
strategy.OrderCancelFailReceived += handler
OrderFail событие отмены.
public event Action<Order> OrderCanceling
strategy.OrderCanceling += handler
Событие отправки заказа на отмену.
public event Action<Order> OrderChanged
strategy.OrderChanged += handler
Заказ изменен (отменен, сопоставлен).
public event Action<long, Order> OrderEdited
strategy.OrderEdited += handler
Заказ) событие результата успеха.
public event Action<long, OrderFail> OrderEditFailed
strategy.OrderEditFailed += handler
Заказ) событие результата ошибки.
public event Action<Subscription, OrderFail> OrderEditFailReceived
strategy.OrderEditFailReceived += handler
OrderFail событие издания.
public event Action<Subscription, IOrderLogMessage> OrderLogReceived
strategy.OrderLogReceived += handler
IOrderLogMessage получено.
public event Action<Subscription, Order> OrderReceived
strategy.OrderReceived += handler
Заказ получен.
public event Action<Order> OrderRegistered
strategy.OrderRegistered += handler
Событие успешной регистрации заказа.
public event Action<OrderFail> OrderRegisterFailed
strategy.OrderRegisterFailed += handler
Событие ошибки регистрации заказа.
public event Action<Subscription, OrderFail> OrderRegisterFailReceived
strategy.OrderRegisterFailReceived += handler
OrderFail событие регистрации.
public event Action<Order> OrderRegistering
strategy.OrderRegistering += handler
Событие отправки заказа на регистрацию.
public event Action<Order, Order> OrderReRegistering
strategy.OrderReRegistering += handler
Событие отправки заказа на перерегистрацию.
public event Action<Subscription, MyTrade> OwnTradeReceived
strategy.OwnTradeReceived += handler
MyTrade получено.
public event Action ParametersChanged
strategy.ParametersChanged += handler
Событие изменения параметров.
public event Action<Subscription> PnLReceived
strategy.PnLReceived += handler
PnL событие изменения.
public event Action<Subscription, Portfolio, DateTime, decimal, decimal?, decimal?> PnLReceived2
strategy.PnLReceived2 += handler
PnL событие изменения.
public event Action<Subscription, Portfolio> PortfolioReceived
strategy.PortfolioReceived += handler
Портфолио получено.
public event Action PositionChanged
strategy.PositionChanged += handler
Событие смены позиции.
public event Action<Subscription, Position> PositionReceived
strategy.PositionReceived += handler
Должность получена.
public event Action<IStrategy> ProcessStateChanged
strategy.ProcessStateChanged += handler
ProcessState событие изменения.
public event PropertyChangedEventHandler PropertyChanged
strategy.PropertyChanged += handler
Событие изменения значения свойств элемента диаграммы.
public event Action Reseted
strategy.Reseted += handler
Событие повторной инициализации стратегии.
public event Action<Subscription, Security> SecurityReceived
strategy.SecurityReceived += handler
финансовый инструмент получен.
public event Action SlippageChanged
strategy.SlippageChanged += handler
Событие изменения проскальзывания.
public event Action<Subscription, Exception, bool> SubscriptionFailed
strategy.SubscriptionFailed += handler
Подписка не удалась.
public event Action<Subscription> SubscriptionOnline
strategy.SubscriptionOnline += handler
Подписка онлайн.
public event Action<Subscription, object> SubscriptionReceived
strategy.SubscriptionReceived += handler
Полученная ценность.
public event Action<Subscription> SubscriptionStarted
strategy.SubscriptionStarted += handler
Подписка запущена.
public event Action<Subscription, Exception> SubscriptionStopped
strategy.SubscriptionStopped += handler
Подписка остановлена.
public event Action<Subscription, ITickTradeMessage> TickTradeReceived
strategy.TickTradeReceived += handler
ITickTradeMessage получено.