DecomposedStrategy
A classe base para todas as estratégias de comércio.
Herda de: BaseLogReceiver
Implementa: IStrategyHost, IPositionProvider, INotifyPropertyChangedEx, INotifyPropertyChanged, ITimeProvider
Construtores
public DecomposedStrategy()
decomposedStrategy = DecomposedStrategy()
Inicializa uma nova instância DecomposedStrategy.
public DecomposedStrategy(IPnLManager pnlManager, IStatisticManager stats)
decomposedStrategy = DecomposedStrategy(pnlManager, stats)
Inicializa uma nova instância DecomposedStrategy.
- pnlManager
- PnL manager.
- stats
- Gerente estatístico.
Propriedades
public bool CancelOrdersWhenStopping { get; set; }
value = decomposedStrategy.CancelOrdersWhenStopping
decomposedStrategy.CancelOrdersWhenStopping = value
Cancelar ordens activas quando a estratégia está a parar.
public StrategyCommentModes CommentMode { get; set; }
value = decomposedStrategy.CommentMode
decomposedStrategy.CommentMode = value
Modo de comentários.
public decimal? Commission { get; }
value = decomposedStrategy.Commission
Total da comissão acumulada (de encomendas + transações).
public IConnector Connector { get; set; }
value = decomposedStrategy.Connector
decomposedStrategy.Connector = value
Connector (via interface para testabilidade).
public StrategyEngine Engine { get; }
value = decomposedStrategy.Engine
Máquina de estado + roteamento de mensagens.
public LogLevels ErrorState { get; set; }
value = decomposedStrategy.ErrorState
decomposedStrategy.ErrorState = value
Estado de erro.
public virtual bool IsFormed { get; }
value = decomposedStrategy.IsFormed
Se a estratégia é formada.
public bool IsOnline { get; private set; }
value = decomposedStrategy.IsOnline
decomposedStrategy.IsOnline = value
Está online.
public TimeSpan? Latency { get; set; }
value = decomposedStrategy.Latency
decomposedStrategy.Latency = value
Latency.
public OrderPipeline Orders { get; }
value = decomposedStrategy.Orders
Ordens de acompanhamento e processamento.
public TimeSpan OrdersKeepTime { get; set; }
value = decomposedStrategy.OrdersKeepTime
decomposedStrategy.OrdersKeepTime = value
O tempo para guardar ordens na memória.
public IPnLManager PnLManager { get; }
value = decomposedStrategy.PnLManager
PnL manager.
public Portfolio Portfolio { get; set; }
value = decomposedStrategy.Portfolio
decomposedStrategy.Portfolio = value
Portfólio.
public Subscription PortfolioLookup { get; }
value = decomposedStrategy.PortfolioLookup
Assinatura de procura de carteira.
public decimal Position { get; set; }
value = decomposedStrategy.Position
decomposedStrategy.Position = value
Situação actual (instrumento financeiro primário).
public PositionPipeline Positions { get; }
value = decomposedStrategy.Positions
Posicionamento do evento.
public IReadOnlyDictionary<ValueTuple<SecurityId, string>, decimal> PositionsList { get; }
value = decomposedStrategy.PositionsList
Todas as posições.
public ProcessStates ProcessState { get; }
value = decomposedStrategy.ProcessState
Estado atual do processo.
public IRiskManager RiskManager { get; set; }
value = decomposedStrategy.RiskManager
decomposedStrategy.RiskManager = value
Gerente de risco.
public Security Security { get; set; }
value = decomposedStrategy.Security
decomposedStrategy.Security = value
Instrumento financeiro.
public decimal? Slippage { get; }
value = decomposedStrategy.Slippage
Total de deslizamento acumulado.
public DateTime StartedTime { get; private set; }
value = decomposedStrategy.StartedTime
decomposedStrategy.StartedTime = value
Hora de começar a estratégia.
public IStatisticManager StatisticManager { get; }
value = decomposedStrategy.StatisticManager
Gerente de estatísticas.
public SubscriptionRegistry Subscriptions { get; }
value = decomposedStrategy.Subscriptions
Gestão de assinaturas.
public TimeSpan TotalWorkingTime { get; private set; }
value = decomposedStrategy.TotalWorkingTime
decomposedStrategy.TotalWorkingTime = value
Tempo total de trabalho.
public TradePipeline Trades { get; }
value = decomposedStrategy.Trades
Processamento de comércio e PnL.
public StrategyTradingModes TradingMode { get; set; }
value = decomposedStrategy.TradingMode
decomposedStrategy.TradingMode = value
Modo de negociação.
public bool UnsubscribeOnStop { get; set; }
value = decomposedStrategy.UnsubscribeOnStop
decomposedStrategy.UnsubscribeOnStop = value
Describe dos dados do mercado quando a estratégia está parando.
public decimal Volume { get; set; }
value = decomposedStrategy.Volume
decomposedStrategy.Volume = value
Volume de ordem padrão.
public bool WaitAllTrades { get; set; }
value = decomposedStrategy.WaitAllTrades
decomposedStrategy.WaitAllTrades = value
Espera por todas as negociações.
Métodos
public Order BuyLimit(decimal price, decimal? volume)
result = decomposedStrategy.BuyLimit(price, volume)
Comprar ao preço limite.
public Order BuyMarket(decimal? volume)
result = decomposedStrategy.BuyMarket(volume)
Comprar a preço de mercado.
protected virtual bool CanAttach(Order order)
result = decomposedStrategy.CanAttach(order)
Se a ordem pode ser anexada (rastreada) por esta estratégia.
- order
- Ordem para verificar.
Retorna: Se a ordem pertence a esta estratégia.
public void CancelActiveOrders()
decomposedStrategy.CancelActiveOrders()
Cancele todas as ordens activas.
public void CancelOrder(Order order)
decomposedStrategy.CancelOrder(order)
Cancelar uma ordem através do connector.
protected virtual bool CanTrade(Security security, Portfolio portfolio, Sides side, decimal volume, string noTradeReason)
result = decomposedStrategy.CanTrade(security, portfolio, side, volume, noTradeReason)
Verifique se pode trocar com informações de ordem.
- security
- Instrumento financeiro para o comércio.
- portfolio
- Portfólio para o comércio.
- side
- Ordem.
- volume
- Volume de encomenda.
- noTradeReason
- Razão pela qual a negociação não é permitida.
Retorna: É verdade se for permitida a negociação.
public Order ClosePosition()
result = decomposedStrategy.ClosePosition()
Fechem a posição actual.
public Order CreateOrder(Sides side, decimal price, decimal? volume)
result = decomposedStrategy.CreateOrder(side, price, volume)
Criar um objeto de ordem inicializado.
- side
- Ordem.
- price
- Preço 0 para encomendas de mercado.
- volume
- Volume. Se nulo, Volume é usado.
Retorna: Ordem.
public void EditOrder(Order order, Order changes)
decomposedStrategy.EditOrder(order, changes)
Edite uma ordem através do connector.
- order
- Ordem original.
- changes
- Mudança de ordem.
public decimal GetPositionValue(Security sec, Portfolio pf)
result = decomposedStrategy.GetPositionValue(sec, pf)
Obter valor de posição para instrumento financeiro específico e carteira.
protected virtual void OnCurrentPriceUpdated(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
decomposedStrategy.OnCurrentPriceUpdated(secId, price, serverTime, localTime)
Chamado quando o preço atual atualizado a partir de dados do mercado.
protected virtual void OnError(Exception error)
decomposedStrategy.OnError(error)
O processamento de erros ocorreu como resultado da operação da estratégia.
- error
- Erro.
public ValueTask OnNewMessage(Message msg, CancellationToken ct)
result = decomposedStrategy.OnNewMessage(msg, ct)
Lidar com a nova mensagem de saída de connector.
protected virtual void OnNewMyTrade(MyTrade trade)
decomposedStrategy.OnNewMyTrade(trade)
Chamada quando o novo comércio recebeu.
- trade
- Novo comércio.
protected virtual void OnNewPosition(Position position)
decomposedStrategy.OnNewPosition(position)
Chamada quando nova posição aparecer.
- position
- Nova posição.
public void OnOrderCancelFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderCancelFailReceived(sub, fail)
Lidar com falha de cancelamento de ordem de connector.
protected virtual void OnOrderChanged(Order order)
decomposedStrategy.OnOrderChanged(order)
Liguei quando o estado da ordem mudou.
- order
- Mudança de ordem.
public void OnOrderEditFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderEditFailReceived(sub, fail)
Lidar com falha na edição de ordem de connector.
public void OnOrderReceived(Subscription sub, Order order)
decomposedStrategy.OnOrderReceived(sub, order)
Lidar com a ordem recebida de connector.
protected virtual void OnOrderRegistered(Order order)
decomposedStrategy.OnOrderRegistered(order)
Chamada quando a ordem foi registrada (transicionada da Pendente para Active/Feito).
- order
- Ordem registada.
protected virtual void OnOrderRegisterFailed(OrderFail fail)
decomposedStrategy.OnOrderRegisterFailed(fail)
Chamado quando o registo da ordem falhar.
- fail
- Pedido de informações de falha.
public void OnOrderRegisterFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderRegisterFailReceived(sub, fail)
Lidar com falha no registro de pedidos de connector.
protected virtual void OnPositionChanged(Position position)
decomposedStrategy.OnPositionChanged(position)
Chamado quando a posição muda.
- position
- Mudança de posição.
public void OnPositionReceived(Subscription sub, Position pos)
decomposedStrategy.OnPositionReceived(sub, pos)
Posição de manipulação recebida de connector.
protected virtual void OnStateChanged(ProcessStates state)
decomposedStrategy.OnStateChanged(state)
Chamado quando o estado do processo muda.
- state
- Novo estado.
public void OnTradeReceived(Subscription sub, MyTrade trade)
decomposedStrategy.OnTradeReceived(sub, trade)
Comércio de tratamento recebido de connector.
public void RegisterOrder(Order order)
decomposedStrategy.RegisterOrder(order)
Registre uma ordem através do connector.
public void ReRegisterOrder(Order oldOrder, Order newOrder)
decomposedStrategy.ReRegisterOrder(oldOrder, newOrder)
Re-registro (cancelar + registrar novo) uma ordem através do connector.
- oldOrder
- Ordem para cancelar.
- newOrder
- Nova ordem para se registar.
public void Reset()
decomposedStrategy.Reset()
Reinicie todo o estado (ordens, transações, posições, PnL, assinaturas).
public Order SellLimit(decimal price, decimal? volume)
result = decomposedStrategy.SellLimit(price, volume)
Venda a preço limite.
public Order SellMarket(decimal? volume)
result = decomposedStrategy.SellMarket(volume)
Venda a preço de mercado.
public ValueTask StartAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StartAsync(cancellationToken)
Comecem a estratégia.
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)
Iniciar protecção de posição.
- takeProfit
- Tirar offset.
- stopLoss
- Parar offset.
- isStopTrailing
- Se deve usar uma técnica de rastreamento.
- takeTimeout
- Se a protecção não tiver funcionado até esta data, a posição será encerrada no mercado.
- stopTimeout
- Se a protecção não tiver funcionado até esta data, a posição será encerrada no mercado.
- useMarketOrders
- Se deve utilizar as ordens de mercado.
- isLocalStop
- Forçar o processamento local a parar, independentemente dos recursos do adaptador.
public ValueTask StopAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(cancellationToken)
Parem com a estratégia.
public ValueTask StopAsync(Exception error, CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(error, cancellationToken)
Pare a estratégia com erro.
- error
- O erro que causou a parada.
- cancellationToken
- Inscrição de cancelamento.
Eventos
public event Action<Subscription, ExchangeBoard> BoardReceived
decomposedStrategy.BoardReceived += handler
Valor da placa recebido.
public event Action<Subscription, ICandleMessage> CandleReceived
decomposedStrategy.CandleReceived += handler
Valor da vela recebida.
public event Action CommissionChanged
decomposedStrategy.CommissionChanged += handler
A Comissão alterou o seu acontecimento.
public event Action ConnectorChanged
decomposedStrategy.ConnectorChanged += handler
Connector changed event.
public event Action<Subscription, DataType> DataTypeReceived
decomposedStrategy.DataTypeReceived += handler
Valor do tipo de dados recebido.
public event Action<DecomposedStrategy> IsOnlineChanged
decomposedStrategy.IsOnlineChanged += handler
O estado online mudou.
public event Action LatencyChanged
decomposedStrategy.LatencyChanged += handler
A latência mudou o evento.
public event Action<Subscription, Level1ChangeMessage> Level1Received
decomposedStrategy.Level1Received += handler
Valor de nível 1 recebido.
public event Action<Subscription, News> NewsReceived
decomposedStrategy.NewsReceived += handler
Valor das notícias recebidas.
public event Action<Subscription, IOrderBookMessage> OrderBookReceived
decomposedStrategy.OrderBookReceived += handler
Valor contabilístico da ordem recebido.
public event Action<OrderFail> OrderCancelFailed
decomposedStrategy.OrderCancelFailed += handler
O cancelamento da ordem falhou.
public event Action<Subscription, OrderFail> OrderCancelFailReceived
decomposedStrategy.OrderCancelFailReceived += handler
Ordem cancelar falha.
public event Action<Order> OrderCanceling
decomposedStrategy.OrderCanceling += handler
A ordem está prestes a ser cancelada.
public event Action<long, Order> OrderEdited
decomposedStrategy.OrderEdited += handler
Ordem editada.
public event Action<long, OrderFail> OrderEditFailed
decomposedStrategy.OrderEditFailed += handler
Falha na edição da ordem.
public event Action<Subscription, OrderFail> OrderEditFailReceived
decomposedStrategy.OrderEditFailReceived += handler
Falha na edição de pedidos.
public event Action<Subscription, IOrderLogMessage> OrderLogReceived
decomposedStrategy.OrderLogReceived += handler
Valor do registo de pedidos recebido.
public event Action<Subscription, Order> OrderReceived
decomposedStrategy.OrderReceived += handler
Valor da ordem recebida.
public event Action<OrderFail> OrderRegisterFailed
decomposedStrategy.OrderRegisterFailed += handler
O registo da encomenda falhou.
public event Action<Subscription, OrderFail> OrderRegisterFailReceived
decomposedStrategy.OrderRegisterFailReceived += handler
Falha no registo de pedidos.
public event Action<Order> OrderRegistering
decomposedStrategy.OrderRegistering += handler
A ordem está prestes a ser registada.
public event Action<Order, Order> OrderReRegistering
decomposedStrategy.OrderReRegistering += handler
A ordem está prestes a ser re-registrada.
public event Action<Subscription, MyTrade> OwnTradeReceived
decomposedStrategy.OwnTradeReceived += handler
Valor comercial próprio recebido.
public event Action ParametersChanged
decomposedStrategy.ParametersChanged += handler
Os parâmetros de estratégia mudaram o evento.
public event Action PnLChanged
decomposedStrategy.PnLChanged += handler
PnL changed event.
public event Action<Subscription> PnLReceived
decomposedStrategy.PnLReceived += handler
PnL recebeu evento.
public event Action<Subscription, Portfolio, DateTime, decimal, decimal?, decimal?> PnLReceived2
decomposedStrategy.PnLReceived2 += handler
PnL recebeu evento.
public event Action<Subscription, Portfolio> PortfolioReceived
decomposedStrategy.PortfolioReceived += handler
Valor da carteira recebida.
public event Action PositionChanged
decomposedStrategy.PositionChanged += handler
A posição mudou.
public event Action<Subscription, Position> PositionReceived
decomposedStrategy.PositionReceived += handler
Valor da posição recebida.
public event PropertyChangedEventHandler PropertyChanged
decomposedStrategy.PropertyChanged += handler
O elemento diagrama propriedades valor mudança evento.
public event Action Reseted
decomposedStrategy.Reseted += handler
Estratégia de reset evento.
public event Action<Subscription, Security> SecurityReceived
decomposedStrategy.SecurityReceived += handler
Valor do instrumento financeiro recebido.
public event Action SlippageChanged
decomposedStrategy.SlippageChanged += handler
O evento foi alterado por slippage.
public event Action<Subscription, Exception, bool> SubscriptionFailed
decomposedStrategy.SubscriptionFailed += handler
A assinatura falhou.
public event Action<Subscription> SubscriptionOnline
decomposedStrategy.SubscriptionOnline += handler
A assinatura está online.
public event Action<Subscription, object> SubscriptionReceived
decomposedStrategy.SubscriptionReceived += handler
Valor da assinatura recebido.
public event Action<Subscription> SubscriptionStarted
decomposedStrategy.SubscriptionStarted += handler
A assinatura está iniciada.
public event Action<Subscription, Exception> SubscriptionStopped
decomposedStrategy.SubscriptionStopped += handler
A assinatura está interrompida.
public event Action<Subscription, ITickTradeMessage> TickTradeReceived
decomposedStrategy.TickTradeReceived += handler
Valor comercial recebido.