DecomposedStrategy
Die Basisklasse für alle Handelsstrategien.
Erbt von: BaseLogReceiver
Implementiert: IStrategyHost, IPositionProvider, INotifyPropertyChangedEx, INotifyPropertyChanged, ITimeProvider
Konstruktoren
public DecomposedStrategy()
decomposedStrategy = DecomposedStrategy()
Initialisiert eine neue Instanz DecomposedStrategy.
public DecomposedStrategy(IPnLManager pnlManager, IStatisticManager stats)
decomposedStrategy = DecomposedStrategy(pnlManager, stats)
Initialisiert eine neue Instanz DecomposedStrategy.
- pnlManager
- PnL Manager.
- stats
- Statistikmanager.
Eigenschaften
public bool CancelOrdersWhenStopping { get; set; }
value = decomposedStrategy.CancelOrdersWhenStopping
decomposedStrategy.CancelOrdersWhenStopping = value
Stornieren Sie aktive Aufträge, wenn die Strategie aufhört.
public StrategyCommentModes CommentMode { get; set; }
value = decomposedStrategy.CommentMode
decomposedStrategy.CommentMode = value
Kommentarmodus.
public decimal? Commission { get; }
value = decomposedStrategy.Commission
Gesamtsumme der kumulierten Provision (aus Aufträgen + Trades).
public IConnector Connector { get; set; }
value = decomposedStrategy.Connector
decomposedStrategy.Connector = value
Connector (über die Schnittstelle für Testbarkeit).
public StrategyEngine Engine { get; }
value = decomposedStrategy.Engine
Zustandsmaschine + Nachrichten-Routing.
public LogLevels ErrorState { get; set; }
value = decomposedStrategy.ErrorState
decomposedStrategy.ErrorState = value
Fehlerzustand.
public virtual bool IsFormed { get; }
value = decomposedStrategy.IsFormed
Ob die Strategie gebildet wird.
public bool IsOnline { get; private set; }
value = decomposedStrategy.IsOnline
decomposedStrategy.IsOnline = value
Ist online.
public TimeSpan? Latency { get; set; }
value = decomposedStrategy.Latency
decomposedStrategy.Latency = value
Latenz.
public OrderPipeline Orders { get; }
value = decomposedStrategy.Orders
Auftragsverfolgung und -verarbeitung.
public TimeSpan OrdersKeepTime { get; set; }
value = decomposedStrategy.OrdersKeepTime
decomposedStrategy.OrdersKeepTime = value
Die Zeit für die Speicherung von Bestellungen im Speicher.
public IPnLManager PnLManager { get; }
value = decomposedStrategy.PnLManager
PnL Manager.
public Portfolio Portfolio { get; set; }
value = decomposedStrategy.Portfolio
decomposedStrategy.Portfolio = value
Portfolio.
public Subscription PortfolioLookup { get; }
value = decomposedStrategy.PortfolioLookup
Portfolio Lookup Abonnement.
public decimal Position { get; set; }
value = decomposedStrategy.Position
decomposedStrategy.Position = value
Aktuelle Position (primäres Finanzinstrument).
public PositionPipeline Positions { get; }
value = decomposedStrategy.Positions
Handhabung von Positionsereignissen.
public IReadOnlyDictionary<ValueTuple<SecurityId, string>, decimal> PositionsList { get; }
value = decomposedStrategy.PositionsList
Alle verfolgten Positionen.
public ProcessStates ProcessState { get; }
value = decomposedStrategy.ProcessState
Aktueller Prozesszustand.
public IRiskManager RiskManager { get; set; }
value = decomposedStrategy.RiskManager
decomposedStrategy.RiskManager = value
Risikomanager.
public Security Security { get; set; }
value = decomposedStrategy.Security
decomposedStrategy.Security = value
Finanzinstrument.
public decimal? Slippage { get; }
value = decomposedStrategy.Slippage
Gesamtsumme des kumulierten Schlupfs.
public DateTime StartedTime { get; private set; }
value = decomposedStrategy.StartedTime
decomposedStrategy.StartedTime = value
Strategiestartzeit.
public IStatisticManager StatisticManager { get; }
value = decomposedStrategy.StatisticManager
Statistikmanager.
public SubscriptionRegistry Subscriptions { get; }
value = decomposedStrategy.Subscriptions
Subscription Management.
public TimeSpan TotalWorkingTime { get; private set; }
value = decomposedStrategy.TotalWorkingTime
decomposedStrategy.TotalWorkingTime = value
Gesamtarbeitszeit.
public TradePipeline Trades { get; }
value = decomposedStrategy.Trades
Handelsverarbeitung und PnL.
public StrategyTradingModes TradingMode { get; set; }
value = decomposedStrategy.TradingMode
decomposedStrategy.TradingMode = value
Handelsmodus.
public bool UnsubscribeOnStop { get; set; }
value = decomposedStrategy.UnsubscribeOnStop
decomposedStrategy.UnsubscribeOnStop = value
Abmelden von Marktdaten, wenn die Strategie aufhört.
public decimal Volume { get; set; }
value = decomposedStrategy.Volume
decomposedStrategy.Volume = value
Standard-Auftragsvolumen.
public bool WaitAllTrades { get; set; }
value = decomposedStrategy.WaitAllTrades
decomposedStrategy.WaitAllTrades = value
Warten Sie auf alle Trades.
Methoden
public Order BuyLimit(decimal price, decimal? volume)
result = decomposedStrategy.BuyLimit(price, volume)
Kaufen Sie zum Limitpreis.
public Order BuyMarket(decimal? volume)
result = decomposedStrategy.BuyMarket(volume)
Kaufen Sie zum Marktpreis.
protected virtual bool CanAttach(Order order)
result = decomposedStrategy.CanAttach(order)
Ob der Auftrag durch diese Strategie angehängt (nachverfolgt) werden kann.
- order
- Befehl zur Überprüfung.
Rückgabe: wenn die Bestellung zu dieser Strategie gehört.
public void CancelActiveOrders()
decomposedStrategy.CancelActiveOrders()
Stornieren Sie alle aktiven Bestellungen.
public void CancelOrder(Order order)
decomposedStrategy.CancelOrder(order)
Stornieren Sie eine Bestellung über connector.
protected virtual bool CanTrade(Security security, Portfolio portfolio, Sides side, decimal volume, string noTradeReason)
result = decomposedStrategy.CanTrade(security, portfolio, side, volume, noTradeReason)
Überprüfen Sie, ob Sie mit Bestellinformationen handeln können.
- security
- Finanzinstrument für den Handel.
- portfolio
- Portfolio für den Handel.
- side
- Ordnungsseite.
- volume
- Auftragsvolumen.
- noTradeReason
- Grund, warum der Handel nicht erlaubt ist.
Rückgabe: Wahr, wenn der Handel erlaubt ist.
public Order ClosePosition()
result = decomposedStrategy.ClosePosition()
Stromposition schließen.
public Order CreateOrder(Sides side, decimal price, decimal? volume)
result = decomposedStrategy.CreateOrder(side, price, volume)
Erstellen Sie ein initialisiertes Orderobjekt.
- side
- Ordnungsseite.
- price
- Preis 0 für Market Order.
- volume
- Volume. Wenn null, wird Volume verwendet.
Rückgabe: Bestellung.
public void EditOrder(Order order, Order changes)
decomposedStrategy.EditOrder(order, changes)
Bearbeiten Sie eine Bestellung über connector.
- order
- Originalbestellung.
- changes
- Ordnungsänderungen.
public decimal GetPositionValue(Security sec, Portfolio pf)
result = decomposedStrategy.GetPositionValue(sec, pf)
Holen Sie sich Positionswert für bestimmte Finanzinstrumente und Portfolios.
protected virtual void OnCurrentPriceUpdated(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
decomposedStrategy.OnCurrentPriceUpdated(secId, price, serverTime, localTime)
Aufrufen, wenn der aktuelle Preis aus Marktdaten aktualisiert wird.
protected virtual void OnError(Exception error)
decomposedStrategy.OnError(error)
Verarbeitung von Fehlern, aufgetreten als Ergebnis der Strategieoperation.
- error
- Fehler.
public ValueTask OnNewMessage(Message msg, CancellationToken ct)
result = decomposedStrategy.OnNewMessage(msg, ct)
Behandeln Sie neue ausgehende Nachricht von connector.
protected virtual void OnNewMyTrade(MyTrade trade)
decomposedStrategy.OnNewMyTrade(trade)
Gerufen, wenn der neue Handel erhalten wurde.
- trade
- Neuhandel.
protected virtual void OnNewPosition(Position position)
decomposedStrategy.OnNewPosition(position)
Wird aufgerufen, wenn eine neue Position erscheint.
- position
- Neue Position.
public void OnOrderCancelFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderCancelFailReceived(sub, fail)
Behandeln Sie die fehlgeschlagene Auftragsstornierung von connector.
protected virtual void OnOrderChanged(Order order)
decomposedStrategy.OnOrderChanged(order)
Rufen Sie an, wenn sich der Ordnungszustand geändert hat.
- order
- Geänderte Reihenfolge.
public void OnOrderEditFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderEditFailReceived(sub, fail)
Behandeln Sie den Fehler bei der Auftragsbearbeitung von connector.
public void OnOrderReceived(Subscription sub, Order order)
decomposedStrategy.OnOrderReceived(sub, order)
Behandeln Sie die Bestellung von connector.
protected virtual void OnOrderRegistered(Order order)
decomposedStrategy.OnOrderRegistered(order)
Bei der Bestellung aufgerufen (Übergang von ausstehend zu Aktiv / Fertig).
- order
- Registrierte Bestellung.
protected virtual void OnOrderRegisterFailed(OrderFail fail)
decomposedStrategy.OnOrderRegisterFailed(fail)
Aufruf, wenn die Registrierung fehlschlägt.
- fail
- Bestellfehlerinfo.
public void OnOrderRegisterFailReceived(Subscription sub, OrderFail fail)
decomposedStrategy.OnOrderRegisterFailReceived(sub, fail)
Behandeln Sie die fehlgeschlagene Bestellregistrierung von connector.
protected virtual void OnPositionChanged(Position position)
decomposedStrategy.OnPositionChanged(position)
Wird aufgerufen, wenn sich die Position ändert.
- position
- Position geändert.
public void OnPositionReceived(Subscription sub, Position pos)
decomposedStrategy.OnPositionReceived(sub, pos)
Griff Position erhalten von connector.
protected virtual void OnStateChanged(ProcessStates state)
decomposedStrategy.OnStateChanged(state)
Wird aufgerufen, wenn sich der Prozesszustand ändert.
- state
- Neuer Staat.
public void OnTradeReceived(Subscription sub, MyTrade trade)
decomposedStrategy.OnTradeReceived(sub, trade)
Handle Handel erhalten von connector.
public void RegisterOrder(Order order)
decomposedStrategy.RegisterOrder(order)
Registrieren Sie eine Bestellung über connector.
public void ReRegisterOrder(Order oldOrder, Order newOrder)
decomposedStrategy.ReRegisterOrder(oldOrder, newOrder)
Registrieren Sie sich erneut (stornieren + registrieren Sie neu) eine Bestellung über connector.
- oldOrder
- Anweisung zur Stornierung.
- newOrder
- Neue Registrierungsanordnung.
public void Reset()
decomposedStrategy.Reset()
Setzen Sie alle Status (Orders, Trades, Positionen, PnL, Abonnements) zurück.
public Order SellLimit(decimal price, decimal? volume)
result = decomposedStrategy.SellLimit(price, volume)
Verkaufen zum Limitpreis.
public Order SellMarket(decimal? volume)
result = decomposedStrategy.SellMarket(volume)
Verkaufen zum Marktpreis.
public ValueTask StartAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StartAsync(cancellationToken)
Starten Sie die Strategie.
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)
Schutz der Startposition.
- takeProfit
- Nehmen Sie Offset.
- stopLoss
- Stop-Offset.
- isStopTrailing
- Ob man eine Trailing-Technik verwendet.
- takeTimeout
- Frist: Wenn der Schutz bis zu diesem Zeitpunkt nicht funktioniert hat, wird die Position auf dem Markt geschlossen.
- stopTimeout
- Frist: Wenn der Schutz bis zu diesem Zeitpunkt nicht funktioniert hat, wird die Position auf dem Markt geschlossen.
- useMarketOrders
- Ob Marktaufträge zu verwenden.
- isLocalStop
- Erzwingen Sie die lokale Stoppverarbeitung unabhängig von den Adapterfunktionen.
public ValueTask StopAsync(CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(cancellationToken)
Stoppt die Strategie.
public ValueTask StopAsync(Exception error, CancellationToken cancellationToken)
result = decomposedStrategy.StopAsync(error, cancellationToken)
Stoppen Sie die Strategie mit Fehler.
- error
- Der Fehler, der den Stopp verursacht hat.
- cancellationToken
- Löschungszeichen.
Ereignisse
public event Action<Subscription, ExchangeBoard> BoardReceived
decomposedStrategy.BoardReceived += handler
Board Value erhalten.
public event Action<Subscription, ICandleMessage> CandleReceived
decomposedStrategy.CandleReceived += handler
Kerzenwert erhalten.
public event Action CommissionChanged
decomposedStrategy.CommissionChanged += handler
Kommission änderte das Ereignis.
public event Action ConnectorChanged
decomposedStrategy.ConnectorChanged += handler
Connector geändertes Ereignis.
public event Action<Subscription, DataType> DataTypeReceived
decomposedStrategy.DataTypeReceived += handler
Empfangener Wert des Datentyps.
public event Action<DecomposedStrategy> IsOnlineChanged
decomposedStrategy.IsOnlineChanged += handler
Online-Zustand geändert.
public event Action LatencyChanged
decomposedStrategy.LatencyChanged += handler
Latenz änderte das Ereignis.
public event Action<Subscription, Level1ChangeMessage> Level1Received
decomposedStrategy.Level1Received += handler
Level1 Wert erhalten.
public event Action<Subscription, News> NewsReceived
decomposedStrategy.NewsReceived += handler
Nachrichten erhalten.
public event Action<Subscription, IOrderBookMessage> OrderBookReceived
decomposedStrategy.OrderBookReceived += handler
Auftragsbuchwert erhalten.
public event Action<OrderFail> OrderCancelFailed
decomposedStrategy.OrderCancelFailed += handler
Auftragsstornierung fehlgeschlagen.
public event Action<Subscription, OrderFail> OrderCancelFailReceived
decomposedStrategy.OrderCancelFailReceived += handler
Order Cancellation Failure
public event Action<Order> OrderCanceling
decomposedStrategy.OrderCanceling += handler
Die Bestellung steht kurz vor der Stornierung.
public event Action<long, Order> OrderEdited
decomposedStrategy.OrderEdited += handler
Auftrag bearbeitet.
public event Action<long, OrderFail> OrderEditFailed
decomposedStrategy.OrderEditFailed += handler
Order Edit ist fehlgeschlagen.
public event Action<Subscription, OrderFail> OrderEditFailReceived
decomposedStrategy.OrderEditFailReceived += handler
Order Edit Failure.
public event Action<Subscription, IOrderLogMessage> OrderLogReceived
decomposedStrategy.OrderLogReceived += handler
Auftragsprotokollwert erhalten.
public event Action<Subscription, Order> OrderReceived
decomposedStrategy.OrderReceived += handler
Auftragswert erhalten.
public event Action<OrderFail> OrderRegisterFailed
decomposedStrategy.OrderRegisterFailed += handler
Auftragsregistrierung fehlgeschlagen.
public event Action<Subscription, OrderFail> OrderRegisterFailReceived
decomposedStrategy.OrderRegisterFailReceived += handler
Auftragsregistrierung fehlgeschlagen.
public event Action<Order> OrderRegistering
decomposedStrategy.OrderRegistering += handler
Die Bestellung steht kurz vor der Registrierung.
public event Action<Order, Order> OrderReRegistering
decomposedStrategy.OrderReRegistering += handler
Die Ordnung wird bald wieder registriert.
public event Action<Subscription, MyTrade> OwnTradeReceived
decomposedStrategy.OwnTradeReceived += handler
Eigener Handelswert erhalten.
public event Action ParametersChanged
decomposedStrategy.ParametersChanged += handler
Strategieparameter veränderten das Ereignis.
public event Action PnLChanged
decomposedStrategy.PnLChanged += handler
PnL geändertes Ereignis.
public event Action<Subscription> PnLReceived
decomposedStrategy.PnLReceived += handler
PnL erhielt eine Veranstaltung.
public event Action<Subscription, Portfolio, DateTime, decimal, decimal?, decimal?> PnLReceived2
decomposedStrategy.PnLReceived2 += handler
PnL erhielt eine Veranstaltung.
public event Action<Subscription, Portfolio> PortfolioReceived
decomposedStrategy.PortfolioReceived += handler
Portfoliowert erhalten.
public event Action PositionChanged
decomposedStrategy.PositionChanged += handler
Position geändert.
public event Action<Subscription, Position> PositionReceived
decomposedStrategy.PositionReceived += handler
Positionswert erhalten.
public event PropertyChangedEventHandler PropertyChanged
decomposedStrategy.PropertyChanged += handler
Der Diagrammelementeigenschaftenwert Änderungsereignis.
public event Action<Subscription, Security> SecurityReceived
decomposedStrategy.SecurityReceived += handler
erhaltener Wert des Finanzinstruments.
public event Action SlippageChanged
decomposedStrategy.SlippageChanged += handler
Slippage verändertes Ereignis.
public event Action<Subscription, Exception, bool> SubscriptionFailed
decomposedStrategy.SubscriptionFailed += handler
Abonnement fehlgeschlagen.
public event Action<Subscription> SubscriptionOnline
decomposedStrategy.SubscriptionOnline += handler
Das Abonnement ist online.
public event Action<Subscription, object> SubscriptionReceived
decomposedStrategy.SubscriptionReceived += handler
Erhaltener Zeichnungswert.
public event Action<Subscription> SubscriptionStarted
decomposedStrategy.SubscriptionStarted += handler
Das Abonnement wird gestartet.
public event Action<Subscription, Exception> SubscriptionStopped
decomposedStrategy.SubscriptionStopped += handler
Das Abonnement wird gestoppt.
public event Action<Subscription, ITickTradeMessage> TickTradeReceived
decomposedStrategy.TickTradeReceived += handler
Tick Handelswert erhalten.