Strategy
Die Basisklasse für alle Handelsstrategien.
Erbt von: BaseLogReceiver
Implementiert: IStrategyHost, IPositionProvider, INotifyPropertyChangedEx, INotifyPropertyChanged, ITimeProvider, IStrategy, IMarketRuleContainer, ILogReceiver, ILogSource, IDisposable, IMarketDataProvider, ISubscriptionProvider, ISecurityProvider, ISecurityMessageProvider, ITransactionProvider, IPortfolioProvider, IReportSource, ICustomTypeDescriptor, IScheduledTask
Konstruktoren
public Strategy(IPnLManager pnlManager, IStatisticManager stats)
strategy = Strategy(pnlManager, stats)
Initializes a new instance Strategy.
- pnlManager
- PnL manager.
- stats
- Statistic manager.
Eigenschaften
public TimeSpan AggregationInterval { get; set; }
value = strategy.AggregationInterval
strategy.AggregationInterval = value
Zeitintervall für die Aggregation. Aufträge/Trades innerhalb desselben Intervalls werden zusammengefasst. Standardmäßig ist 1 Stunde. Setzen Sie auf Null, um die zeitbasierte Gruppierung zu deaktivieren.
public bool CancelOrdersWhenStopping { get; set; }
value = strategy.CancelOrdersWhenStopping
strategy.CancelOrdersWhenStopping = value
Aktive Bestellungen anhalten stornieren. Ist standardmäßig eingeschaltet.
public INotifyList<Strategy> ChildStrategies { get; }
value = strategy.ChildStrategies
Subsidiäre Handelsstrategien.
public StrategyCommentModes CommentMode { get; set; }
value = strategy.CommentMode
strategy.CommentMode = value
Setzen Sie Kommentar nach Name oder Id.
public virtual IConnector Connector { get; set; }
value = strategy.Connector
strategy.Connector = value
Verbindung zum Handelssystem.
public override DateTime CurrentTime { get; }
value = strategy.CurrentTime
Aktuelle UTC-Zeit.
public bool DisposeOnStop { get; set; }
value = strategy.DisposeOnStop
strategy.DisposeOnStop = value
Automatisches Löschen von Ressourcen, die von der Strategie verwendet werden, wenn sie aufhört (Zustand ProcessState wird gleich Stopped).
public StrategyEngine Engine { get; }
value = strategy.Engine
State machine + message routing.
public SettingsStorage Environment { get; }
value = strategy.Environment
Parameter für die Strategieumgebung.
public LogLevels ErrorState { get; set; }
value = strategy.ErrorState
strategy.ErrorState = value
Der Zustand eines Fehlers.
public static bool HideSecurityAndPortfolioParameters { get; set; }
value = Strategy.HideSecurityAndPortfolioParameters
Strategy.HideSecurityAndPortfolioParameters = value
Machen Sie Finanzinstrument und Portfolio als nicht durchsuchbar.
protected virtual TimeSpan? HistoryCalculated { get; }
value = strategy.HistoryCalculated
Berechnet aus der Codeversion von 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
Geschichte, um die Strategie auf Live-Handel zu initialisieren.
protected virtual TimeSpan? HistorySizeForSubscribe { get; }
value = strategy.HistorySizeForSubscribe
Configured live-trading warm-up history span, if any.
public INotifyList<IIndicator> Indicators { get; }
value = strategy.Indicators
Alle Indikatoren, die in der Strategie verwendet werden. Verwendet in der Standardimplementierung von IsFormed.
public Level1Fields? IndicatorSource { get; set; }
value = strategy.IndicatorSource
strategy.IndicatorSource = value
Standardquelle für Indikatoren, wenn Quelle nicht festgelegt ist.
public bool IsBacktesting { get; }
value = strategy.IsBacktesting
Bestimmt Connector ist 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
Strategie vollständig gebildet.
public bool IsOnline { get; private set; }
value = strategy.IsOnline
strategy.IsOnline = value
True bedeutet, dass die Strategie gestartet wird und alle Abonnements im Online-Zustand sind.
public bool IsRulesSuspended { get; }
value = strategy.IsRulesSuspended
Is rules execution suspended.
public bool KeepStatistics { get; set; }
value = strategy.KeepStatistics
strategy.KeepStatistics = value
Halten Sie Handelsstatistiken (Orders, Trades, Gewinn usw.) nach dem Neustart.
public Exception LastError { get; private set; }
value = strategy.LastError
strategy.LastError = value
Der letzte Fehler, der dazu führte, dass die Strategie aufhörte.
public TimeSpan? Latency { get; set; }
value = strategy.Latency
strategy.Latency = value
Gesamtlatenz.
public override LogLevels LogLevel { get; set; }
value = strategy.LogLevel
strategy.LogLevel = value
Die Ebene, um diese Regelprotokollierung durchzuführen.
public int MaxOrdersBeforeAggregation { get; set; }
value = strategy.MaxOrdersBeforeAggregation
strategy.MaxOrdersBeforeAggregation = value
Maximale Anzahl von Aufträgen vor dem Auslösen der automatischen Aggregation; Standardwert: 10000; Setz auf 0, um die automatische Aggregation zu deaktivieren.
public int MaxTradesBeforeAggregation { get; set; }
value = strategy.MaxTradesBeforeAggregation
strategy.MaxTradesBeforeAggregation = value
Maximale Anzahl von Trades vor dem Auslösen der automatischen Aggregation. Standardmäßig 10000.
public IEnumerable<MyTrade> MyTrades { get; }
value = strategy.MyTrades
Trades, die während der Strategieoperation abgestimmt wurden.
public override string Name { get; set; }
value = strategy.Name
strategy.Name = value
Strategiename.
public StrategyNameGenerator NameGenerator { get; }
value = strategy.NameGenerator
Der Generator des Strategienamens.
public virtual IEnumerable<IOrderBookSource> OrderBookSources { get; }
value = strategy.OrderBookSources
Alle möglichen IOrderBookMessage Quellen, die über OrderBookDrawing empfangen werden können.
public Subscription OrderLookup { get; }
value = strategy.OrderLookup
Holen Sie sich ein globales Abonnement auf Order Lookup.
public OrderPipeline OrderProcessor { get; }
value = strategy.OrderProcessor
Order tracking and processing pipeline.
public IEnumerable<Order> Orders { get; }
value = strategy.Orders
Aufträge, die im Strategierahmen registriert sind.
public TimeSpan OrdersKeepTime { get; set; }
value = strategy.OrdersKeepTime
strategy.OrdersKeepTime = value
Die Zeit für die Speicherung von Bestellungen im Speicher. Standardmäßig entspricht sie 2 Tagen. Wenn der Wert in Null gesetzt ist, werden Bestellungen nicht gelöscht.
public StrategyParameterDictionary Parameters { get; }
value = strategy.Parameters
Strategieparameter.
public decimal PnL { get; }
value = strategy.PnL
Der Gesamtwert des Gewinn-Verlust-Verhältnisses ohne Rechnungsprüfkommission Kommission.
public IPnLManager PnLManager { get; set; }
value = strategy.PnLManager
strategy.PnLManager = value
Der Profit-Loss-Manager.
public Portfolio Portfolio { get; set; }
value = strategy.Portfolio
strategy.Portfolio = value
Portfolio.
public Subscription PortfolioLookup { get; }
value = strategy.PortfolioLookup
Holen Sie sich ein globales Abonnement für Portfolio Lookup.
public IPortfolioProvider PortfolioProvider { get; set; }
value = strategy.PortfolioProvider
strategy.PortfolioProvider = value
IPortfolioProvider
public decimal Position { get; set; }
value = strategy.Position
strategy.Position = value
Der Positions-Aggregatwert.
public PositionPipeline Positions { get; }
value = strategy.Positions
Die Liste der Positionen.
public IReadOnlyDictionary<ValueTuple<SecurityId, string>, decimal> PositionsList { get; }
value = strategy.PositionsList
All tracked positions.
public ProcessStates ProcessState { get; }
value = strategy.ProcessState
Der Betriebszustand.
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
Datenquelle mit Aggregationsunterstützung melden.
public decimal RiskFreeRate { get; set; }
value = strategy.RiskFreeRate
strategy.RiskFreeRate = value
Jährlicher risikofreier Zinssatz (e.g., 0,03 = 3%).
public IRiskManager RiskManager { get; set; }
value = strategy.RiskManager
strategy.RiskManager = value
Der Risikokontrollmanager.
public IEnumerable<IRiskRule> RiskRules { get; set; }
value = strategy.RiskRules
strategy.RiskRules = value
Die Risikoregeln.
public IMarketRuleList Rules { get; }
value = strategy.Rules
Die Liste der Provisionsberechnungsregeln.
public Security Security { get; set; }
value = strategy.Security
strategy.Security = value
Finanzinstrument.
public DateTime StartedTime { get; private set; }
value = strategy.StartedTime
strategy.StartedTime = value
Strategiestartzeit.
public IStatisticManager StatisticManager { get; protected set; }
value = strategy.StatisticManager
strategy.StatisticManager = value
Der Statistikmanager.
public SubscriptionRegistry Subscriptions { get; }
value = strategy.Subscriptions
Subscription management.
public Func<Sides, decimal, IPositionModifyAlgo> TargetAlgoFactory { get; set; }
value = strategy.TargetAlgoFactory
strategy.TargetAlgoFactory = value
Fabrik zum Erstellen von Positionsänderungsalgorithmen für TargetPositionManager. Standardmäßig erstellt MarketOrderAlgo.
public PositionTargetManager TargetPositionManager { get; }
value = strategy.TargetPositionManager
Zielpositionsmanager.
public TimeSpan TotalWorkingTime { get; private set; }
value = strategy.TotalWorkingTime
strategy.TotalWorkingTime = value
Die Gesamtzeit der Strategieoperation weniger Zeiträume, wenn die Strategie gestoppt wurde.
public StrategyTradingModes TradingMode { get; set; }
value = strategy.TradingMode
strategy.TradingMode = value
Handel erlauben.
public TimeSpan UnrealizedPnLInterval { get; set; }
value = strategy.UnrealizedPnLInterval
strategy.UnrealizedPnLInterval = value
Der Zeitabstand für die nicht realisierte Gewinnrekalkulation. Der Standardwert ist 1 Minute.
public bool UnsubscribeOnStop { get; set; }
value = strategy.UnsubscribeOnStop
strategy.UnsubscribeOnStop = value
Abonnieren Sie alle aktiven Abonnements, während die Strategie zum Stoppen wird.
public virtual decimal Volume { get; set; }
value = strategy.Volume
strategy.Volume = value
Betriebsvolumen.
public bool WaitAllTrades { get; set; }
value = strategy.WaitAllTrades
strategy.WaitAllTrades = value
Stoppen Sie die Strategie erst, nachdem Sie alle Trades durch registrierte Orders erhalten haben.
public bool WaitRulesOnStop { get; set; }
value = strategy.WaitRulesOnStop
strategy.WaitRulesOnStop = value
Warten Sie die Regeln, bevor die Strategie in den Zustand "Stopped" übergeht.
public WorkingTime WorkingTime { get; set; }
value = strategy.WorkingTime
strategy.WorkingTime = value
Die Zeitgrenze, innerhalb derer Kerzen für Serien übersetzt werden sollen.
Methoden
protected void Alert(AlertNotifications type, string caption, string message)
strategy.Alert(type, caption, message)
Warnmeldung senden.
- type
- Art der Ausschreibung.
- caption
- Signalkopf.
- message
- Warnhinweis.
protected void Alert(AlertNotifications type, string message)
strategy.Alert(type, message)
Senden Sie eine Benachrichtigung mit dem Strategienamen als Beschriftung.
- type
- Art der Ausschreibung.
- message
- Warnhinweis.
protected void AlertLog(string message)
strategy.AlertLog(message)
Log-Alarmmeldung senden.
- message
- Warnhinweis.
protected void AlertPopup(string message)
strategy.AlertPopup(message)
Senden Sie Popup-Alarmmeldung.
- message
- Warnhinweis.
protected void AlertSound(string message)
strategy.AlertSound(message)
Versenden Sie eine Alarmmeldung.
- message
- Warnhinweis.
public void ApplyCommand(CommandMessage cmdMsg)
strategy.ApplyCommand(cmdMsg)
Ankommendes Kommando anwenden.
- cmdMsg
- Die Nachricht enthält Informationen über den Befehl zum Ändern des Zustands.
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
Rückgabe: ValueTask
public Order BuyLimit(decimal price, decimal? volume, Security security)
result = strategy.BuyLimit(price, volume, security)
Erstellen des initialisierten Orderobjekts zum Kaufen.
- price
- Preis.
- volume
- Wenn der Wert übergeben wird, wird der Volumenwert verwendet.
- security
- Das Finanzinstrument: Wenn der Wert übergeben wird, wird der Wert des Finanzinstruments verwendet.
Rückgabe: Das initialisierte Orderobjekt.
public Order BuyMarket(decimal? volume, Security security)
result = strategy.BuyMarket(volume, security)
Erstellen Sie ein initialisiertes Objekt der Kauforder zum Marktpreis.
- volume
- Wenn der Wert übergeben wird, wird der Volumenwert verwendet.
- security
- Das Finanzinstrument: Wenn der Wert übergeben wird, wird der Wert des Finanzinstruments verwendet.
Rückgabe: Das initialisierte Orderobjekt.
protected virtual bool CanAttach(Order order)
result = strategy.CanAttach(order)
Bestimmt, dass die angegebene Reihenfolge der Strategie gehören kann.
- order
- Bestellung.
Rückgabe: Prüfergebnis.
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)
Um alle aktiven Bestellungen zu stornieren (anhalten und regelmäßig).
- isStopOrder
- , wenn nur eine Stop-Orders stornieren, - wenn reguläre Bestellungen, - beides.
- portfolio
- Portfolio. Wenn der Wert gleich , dann stimmt das Portfolio nicht mit dem Orders Cancelling Filter überein.
- direction
- Orderseite. Wenn der Wert , die Richtung nicht verwendet.
- board
- Trading Board. Wenn der Wert gleich , dann stimmt das Board nicht mit dem Orders Cancelling Filter überein.
- security
- Instrument. Wenn der Wert gleich ist, dann stimmt das Instrument nicht mit dem Orders Cancellation Filter überein.
- securityType
- Art des Finanzinstruments: Wenn der Wert , wird der Typ nicht verwendet.
- transactionId
- Transaktions-ID der Auftragsstornierung.
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).
public void CancelOrder(Order order)
strategy.CancelOrder(order)
Stornieren Sie die Bestellung.
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()
Stornieren Sie die Zielposition für das Finanzinstrument und das Portfolio der Strategie.
public void CancelTargetPosition(Security security, Portfolio portfolio)
strategy.CancelTargetPosition(security, portfolio)
Zielposition für ein bestimmtes Finanzinstrument und Portfolio stornieren.
- security
- Finanzinstrument.
- portfolio
- 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)
Ü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 Strategy Clone()
result = strategy.Clone()
Erstellt eine tiefe Kopie eines DataSeries
Rückgabe: Copy.
public virtual ValueTask<Strategy> CloneAsync(CancellationToken cancellationToken)
result = strategy.CloneAsync(cancellationToken)
Create a copy of the strategy.
- cancellationToken
- CancellationToken
Rückgabe: Copy.
public Order ClosePosition(Security security, Portfolio portfolio)
result = strategy.ClosePosition(security, portfolio)
Um offene Position nach Markt zu schließen (um die Reihenfolge des Typs Market zu registrieren).
- security
- Finanzinstrument: Wenn nicht übergeben, wird der Wert von Finanzinstrument erhalten.
- portfolio
- Portfolio. Wenn nicht übergeben wird der Wert aus Portfolio erhalten werden.
Rückgabe: Das initialisierte Orderobjekt.
protected virtual ValueTask CopyToAsync(Strategy copy, CancellationToken cancellationToken)
result = strategy.CopyToAsync(copy, cancellationToken)
Copy settings into .
- copy
- Strategy
- cancellationToken
- CancellationToken
Rückgabe: ValueTask
protected IChartArea CreateChartArea()
result = strategy.CreateChartArea()
Erstellen Sie Chart-Bereich.
Rückgabe: IChartArea
protected virtual Strategy CreateClone()
result = strategy.CreateClone()
Erstellen Sie ein Klonobjekt (nicht initialisiert).
Rückgabe: Strategie
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.
Rückgabe: Order.
protected ITimerHandler CreateTimer(TimeSpan interval, Action callback)
result = strategy.CreateTimer(interval, callback)
Erstellen Sie einen Timer, der in bestimmten Intervallen einen Callback ausführt.
- interval
- Zeitintervall.
- callback
- Callback zur Ausführung.
Rückgabe: ITimerHandler
protected override void DisposeManaged()
strategy.DisposeManaged()
Ressourcen freigeben.
protected IChartCandleElement DrawCandles(IChartArea area, Subscription subscription)
result = strategy.DrawCandles(area, subscription)
Zeichne Kerzen auf Chart.
- area
- IChartArea
- subscription
- Zeichnung
Rückgabe: IChartCandleElement
protected IChartCandleElement DrawCandles<T>(IChartArea area, ISubscriptionHandler<T> subscription)
result = strategy.DrawCandles(area, subscription)
Zeichne Kerzen auf Chart.
- area
- IChartArea
- subscription
- SubscriptionHandler
Rückgabe: IChartCandleElement
protected IChartIndicatorElement DrawIndicator(IChartArea area, IIndicator indicator, Color? color, Color? additionalColor)
result = strategy.DrawIndicator(area, indicator, color, additionalColor)
Zeichnen Sie Indikator auf Chart.
- area
- IChartArea
- indicator
- IIndikator
- color
- Farbe
- additionalColor
- AdditionalColor
Rückgabe: IChartIndicatorElement
public void DrawOrderBook(Subscription subscription, IOrderBookSource source, IOrderBookMessage book)
strategy.DrawOrderBook(subscription, source, book)
Zeichnen IOrderBookMessage.
- subscription
- Zeichnung
- source
- IOrderBookSource
- book
- IOrderBookMessage
public void DrawOrderBookOrder(Subscription subscription, IOrderBookSource source, Order order)
strategy.DrawOrderBookOrder(subscription, source, order)
Auftragsbuchauftrag auszeichnen.
- subscription
- Zeichnung
- source
- IOrderBookSource
- order
- Bestellung.
public void DrawOrderBookOrderFail(Subscription subscription, IOrderBookSource source, OrderFail fail)
strategy.DrawOrderBookOrderFail(subscription, source, fail)
Orderbuch Order fehlschlagen.
- subscription
- Zeichnung
- source
- IOrderBookSource
- fail
- Ordnung fehlgeschlagen.
protected IChartOrderElement DrawOrders(IChartArea area)
result = strategy.DrawOrders(area)
Zeichne Aufträge auf Chart.
- area
- IChartArea
Rückgabe: IChartOrderElement
protected IChartTradeElement DrawOwnTrades(IChartArea area)
result = strategy.DrawOwnTrades(area)
Zeichnen Sie Trades auf Chart.
- area
- IChartArea
Rückgabe: IChartTradeElement
public void EditOrder(Order order, Order changes)
strategy.EditOrder(order, changes)
Bearbeiten Sie die Bestellung.
- order
- Bestellung.
- changes
- Ordnungsänderungen.
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()
Um die IAlertNotificationService mit der übergebenen Strategie verbunden zu bekommen.
Rückgabe: Warnmeldungsdienst.
public IChart GetChart()
result = strategy.GetChart()
Um das IChart mit der verabschiedeten Strategie in Verbindung zu bringen.
Rückgabe: Karte.
public IOptionDesk GetOptionDesk()
result = strategy.GetOptionDesk()
Um das IOptionDesk zu erhalten.
Rückgabe: IOptionDesk.
public IOptionPositionChart GetOptionPositionChart()
result = strategy.GetOptionPositionChart()
Um die IOptionPositionChart mit der übergebenen Strategie verbunden zu bekommen.
Rückgabe: Karte.
public virtual IStrategyParam[] GetParameters()
result = strategy.GetParameters()
Parameter abrufen.
Rückgabe: Parameter.
public Portfolio GetPortfolio()
result = strategy.GetPortfolio()
Holen Sie sich Portfolio oder werfen Sie InvalidOperationException, wenn nicht vorhanden.
Rückgabe: Portfolio
public decimal? GetPositionValue(Security sec, Portfolio pf)
result = strategy.GetPositionValue(sec, pf)
Positionieren.
Rückgabe: Position.
public Security GetSecurity()
result = strategy.GetSecurity()
Holen Sie sich ein Finanzinstrument oder werfen Sie InvalidOperationException, wenn nicht vorhanden.
Rückgabe: Finanzinstrument
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.
Rückgabe: History span to subtract from CurrentTime, or zero to disable.
public decimal? GetTargetPosition(Security security, Portfolio portfolio)
result = strategy.GetTargetPosition(security, portfolio)
Erhalten Sie Zielposition für bestimmte Finanzinstrumente und Portfolios.
- security
- Finanzinstrument.
- portfolio
- Portfolio.
Rückgabe: Zielposition oder Null, wenn nicht gesetzt.
public decimal? GetTargetPosition()
result = strategy.GetTargetPosition()
Erhalten Sie eine Zielposition für das Finanzinstrument und Portfolio der Strategie.
Rückgabe: Zielposition oder Null, wenn nicht gesetzt.
public virtual IEnumerable<Portfolio> GetWorkingPortfolios()
result = strategy.GetWorkingPortfolios()
Holen Sie sich alle Portfolios, die für die Strategie erforderlich sind.
Rückgabe: Portfolios.
public virtual IEnumerable<ValueTuple<Security, DataType>> GetWorkingSecurities()
result = strategy.GetWorkingSecurities()
Holen Sie sich alle für die Strategie erforderlichen Finanzinstrumente.
Rückgabe: Finanzinstrumente.
public bool IsFormedAndOnline()
result = strategy.IsFormedAndOnline()
IsFormed und IsOnline.
Rückgabe: Prüfergebnis.
public bool IsFormedAndOnlineAndAllowTrading(StrategyTradingModes required)
result = strategy.IsFormedAndOnlineAndAllowTrading(required)
IsFormedAndOnline und TradingMode.
- required
- Erforderliche Maßnahmen.
Rückgabe: Prüfergebnis.
public bool? IsOrderEditable(Order order)
result = strategy.IsOrderEditable(order)
Bestimmt, dass die angegebene Reihenfolge von Order bearbeitet werden kann.
- order
- Bestellung.
Rückgabe: wenn die Bestellung editierbar ist, die Bestellung nicht geändert werden kann, bedeutet keine Informationen.
public bool? IsOrderReplaceable(Order order)
result = strategy.IsOrderReplaceable(order)
Bestimmt, dass die angegebene Reihenfolge durch die Bestellung ersetzt werden kann.
- order
- Bestellung.
Rückgabe: wenn die Bestellung austauschbar ist, Bestellung kann nicht ersetzt werden, bedeutet keine Informationen.
public override Task LoadAsync(SettingsStorage storage, CancellationToken cancellationToken)
result = strategy.LoadAsync(storage, cancellationToken)
Load settings.
- storage
- SettingsStorage
- cancellationToken
- CancellationToken
Rückgabe: Task
public ValueTask<Security> LookupByIdAsync(SecurityId id, CancellationToken cancellationToken)
result = strategy.LookupByIdAsync(id, cancellationToken)
Um das Instrument durch den Identifikator zu erhalten.
- id
- Kennung des Finanzinstruments.
- cancellationToken
- CancellationToken
Rückgabe: Wenn es kein Instrument nach vorgegebenen Kriterien gibt, wird es zurückgegeben.
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)
Bestellung eingegangen.
- order
- Bestellung
protected virtual void OnOrderRegistered(Order order)
strategy.OnOrderRegistered(order)
Um das Ereignis OrderRegistered aufzurufen.
- order
- Bestellung.
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)
Um das Ereignis OrderRegistering aufzurufen.
- order
- Bestellung.
protected virtual void OnOrderReRegistering(Order oldOrder, Order newOrder)
strategy.OnOrderReRegistering(oldOrder, newOrder)
Um das Ereignis OrderReRegistering aufzurufen.
- oldOrder
- Löschung des Auftrags.
- newOrder
- Neue Registrierungsanordnung.
protected virtual void OnOwnTradeReceived(MyTrade trade)
strategy.OnOwnTradeReceived(trade)
Eigenhandel erhalten.
- 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 erhalten.
- position
- Position
public void OnPositionReceived(Subscription sub, Position pos)
strategy.OnPositionReceived(sub, pos)
Handle position received from connector.
protected virtual void OnReseted()
strategy.OnReseted()
Es wird von der Reset-Methode aufgerufen.
protected virtual void OnStarted2(DateTime time)
strategy.OnStarted2(time)
Die Methode wird aufgerufen, wenn die Startmethode aufgerufen wurde und der Zustand ProcessState den Startwert angenommen hat.
- 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.
Rückgabe: 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.
Rückgabe: A task representing the state transition.
protected virtual void OnStopped()
strategy.OnStopped()
Die Methode wird aufgerufen, wenn der ProcessState @ Prozesszustand den Wert Stopped angenommen hat.
protected virtual void OnStopping()
strategy.OnStopping()
Die Methode wird aufgerufen, wenn der ProcessState @ Prozesszustand den Stopping-Wert angenommen hat.
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)
Initialisiert eine neue Instanz von StrategyParam.
- id
- Parameterkennung.
- initialValue
- Der Anfangswert.
Rückgabe: Der Strategieparameter.
public void Prepare()
strategy.Prepare()
Daten für die Erstellung von Berichten vorbereiten. Rufen Sie diese auf, bevor Sie auf Daten zugreifen, um sicherzustellen, dass alle Werte auf dem neuesten Stand sind.
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)
Um Ereignisse ParametersChanged und PropertyChanged aufzurufen.
- name
- Parameterbezeichnung.
public void RegisterOrder(Order order)
strategy.RegisterOrder(order)
Registrieren Sie neue Bestellung.
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)
Registrieren Sie die Bestellung erneut.
- oldOrder
- Löschung des Auftrags.
- newOrder
- Neue Registrierungsanordnung.
public void Reset()
strategy.Reset()
Um den Handelsalgorithmus neu zu initialisieren, wird er nach Initialisierung des Strategieobjekts und Laden von gespeicherten Parametern aufgerufen.
public IConnector SafeGetConnector()
result = strategy.SafeGetConnector()
Um die Strategie zu bekommen, die Connector. Wenn es nicht initialisiert wird, wird die Ausnahme verworfen.
Rückgabe: Connector.
public void Save(SettingsStorage storage, bool saveStatistics, bool saveSystemParameters)
strategy.Save(storage, saveStatistics, saveSystemParameters)
Einstellungen speichern.
- storage
- SettingsStorage
- saveStatistics
- KeepStatistics
- saveSystemParameters
- Speichern Sie Systemparameter.
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
Rückgabe: Task
public override Task SaveAsync(SettingsStorage storage, CancellationToken cancellationToken)
result = strategy.SaveAsync(storage, cancellationToken)
Save settings.
- storage
- SettingsStorage
- cancellationToken
- CancellationToken
Rückgabe: Task
public Order SellLimit(decimal price, decimal? volume, Security security)
result = strategy.SellLimit(price, volume, security)
Erstellen des initialisierten Orderobjekts zum Verkauf.
- price
- Preis.
- volume
- Wenn der Wert übergeben wird, wird der Volumenwert verwendet.
- security
- Das Finanzinstrument: Wenn der Wert übergeben wird, wird der Wert des Finanzinstruments verwendet.
Rückgabe: Das initialisierte Orderobjekt.
public Order SellMarket(decimal? volume, Security security)
result = strategy.SellMarket(volume, security)
Um das initialisierte Orderobjekt der Verkaufsorder zum Marktpreis zu erstellen.
- volume
- Wenn der Wert übergeben wird, wird der Volumenwert verwendet.
- security
- Das Finanzinstrument: Wenn der Wert übergeben wird, wird der Wert des Finanzinstruments verwendet.
Rückgabe: Das initialisierte Orderobjekt.
public void SetAlertService(IAlertNotificationService service)
strategy.SetAlertService(service)
Um ein IAlertNotificationService für die Strategie festzulegen.
- service
- Warnmeldungsdienst.
public void SetChart(IChart chart)
strategy.SetChart(chart)
Ein IChart für die Strategie festlegen.
- chart
- Karte.
public void SetOptionDesk(IOptionDesk desk)
strategy.SetOptionDesk(desk)
Um die IOptionDesk zu setzen.
- desk
- IOptionDesk.
public void SetOptionPositionChart(IOptionPositionChart chart)
strategy.SetOptionPositionChart(chart)
Ein IChart für die Strategie festlegen.
- chart
- Karte.
public void SetPositionValue(Security security, Portfolio portfolio, decimal value, DateTime time)
strategy.SetPositionValue(security, portfolio, value, time)
Position einstellen.
- security
- Finanzinstrument.
- portfolio
- Portfolio.
- value
- Position.
- time
- Zeitstempel, um LocalTime und ServerTime zuzuweisen, wenn die Position neu erstellt wird.
public void SetTargetPosition(decimal target)
strategy.SetTargetPosition(target)
Setzen Sie Zielposition für das Finanzinstrument und Portfolio der Strategie.
- target
- Zielpositionswert.
public void SetTargetPosition(Security security, Portfolio portfolio, decimal target)
strategy.SetTargetPosition(security, portfolio, target)
Zielposition für bestimmte Finanzinstrumente und Portfolios festlegen.
- security
- Finanzinstrument.
- portfolio
- Portfolio.
- target
- Zielpositionswert.
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)
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.
protected ITimerHandler StartTimer(TimeSpan interval, Action callback)
result = strategy.StartTimer(interval, callback)
Erstellen Sie einen Timer, der in bestimmten Intervallen einen Rückruf ausführt und sofort startet.
- interval
- Zeitintervall.
- callback
- Callback zur Ausführung.
Rückgabe: ITimerHandler
public void Stop(Exception error)
strategy.Stop(error)
Um den Handelsalgorithmus aus Fehlergründen zu stoppen.
- error
- Fehler.
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)
Unterzeichnen.
- subscription
- Zeichnung.
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(Subscription subscription)
result = strategy.SubscribeCandles(subscription)
Abonnieren Sie Kerzen.
- subscription
- Zeichnung
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(DataType dt, bool isFinishedOnly, Security security)
result = strategy.SubscribeCandles(dt, isFinishedOnly, security)
Abonnieren Sie Kerzen.
- dt
- DataType
- isFinishedOnly
- IsFinishedOnly
- security
- Finanzinstrument: Wird das Finanzinstrument nicht bestanden, so wird der Wert des Finanzinstruments verwendet.
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<ICandleMessage> SubscribeCandles(TimeSpan tf, bool isFinishedOnly, Security security)
result = strategy.SubscribeCandles(tf, isFinishedOnly, security)
Abonnieren Sie Kerzen.
- tf
- Zeitrahmen.
- isFinishedOnly
- IsFinishedOnly
- security
- Finanzinstrument: Wird das Finanzinstrument nicht bestanden, so wird der Wert des Finanzinstruments verwendet.
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<Level1ChangeMessage> SubscribeLevel1(Subscription subscription)
result = strategy.SubscribeLevel1(subscription)
Abonnieren Sie Level1.
- subscription
- Zeichnung
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<Level1ChangeMessage> SubscribeLevel1(Security security)
result = strategy.SubscribeLevel1(security)
Abonnieren Sie Level1.
- security
- Finanzinstrument: Wird das Finanzinstrument nicht bestanden, so wird der Wert des Finanzinstruments verwendet.
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<IOrderBookMessage> SubscribeOrderBook(Security security)
result = strategy.SubscribeOrderBook(security)
Abonnieren Sie MarketDepth.
- security
- Finanzinstrument: Wird das Finanzinstrument nicht bestanden, so wird der Wert des Finanzinstruments verwendet.
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<IOrderBookMessage> SubscribeOrderBook(Subscription subscription)
result = strategy.SubscribeOrderBook(subscription)
Abonnieren Sie MarketDepth.
- subscription
- Zeichnung
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<ITickTradeMessage> SubscribeTicks(Subscription subscription)
result = strategy.SubscribeTicks(subscription)
Abonnieren Sie Ticks.
- subscription
- Zeichnung
Rückgabe: SubscriptionHandler
protected ISubscriptionHandler<ITickTradeMessage> SubscribeTicks(Security security)
result = strategy.SubscribeTicks(security)
Abonnieren Sie Ticks.
- security
- Finanzinstrument: Wird das Finanzinstrument nicht bestanden, so wird der Wert des Finanzinstruments verwendet.
Rückgabe: SubscriptionHandler
protected virtual object ToReportValue(object value)
result = strategy.ToReportValue(value)
Um den Parameterwert in den Berichtswert umzuwandeln.
- value
- Der Parameterwert.
Rückgabe: Der Reportwert.
private Subscription ToSubscription<TLookupMessage>()
result = strategy.ToSubscription()
Build a global lookup subscription stamped with this strategy's identifier.
Rückgabe: Subscription.
public bool TryAddMyTrade(MyTrade trade)
result = strategy.TryAddMyTrade(trade)
Versuchen Sie, eigenen Handel hinzuzufügen.
- trade
- MyTrade
Rückgabe: Betriebsergebnis.
public void UnSubscribe(Subscription subscription)
strategy.UnSubscribe(subscription)
Unsubscribe.
- subscription
- Zeichnung.
Ereignisse
public event Action<Subscription, ExchangeBoard> BoardReceived
strategy.BoardReceived += handler
ExchangeBoard erhalten.
public event Action<Subscription, ICandleMessage> CandleReceived
strategy.CandleReceived += handler
ICandleMessage erhalten.
public event Action CommissionChanged
strategy.CommissionChanged += handler
Änderungsereignis der Kommission.
public event Action ConnectorChanged
strategy.ConnectorChanged += handler
Das Ereignis der Strategieverbindung ändert sich.
public event Action<Subscription, DataType> DataTypeReceived
strategy.DataTypeReceived += handler
DataType erhalten.
public event Action<IStrategy, Exception> Error
strategy.Error += handler
Der Fehlerfall in der Strategie.
public event Action<Strategy> IsOnlineChanged
strategy.IsOnlineChanged += handler
Das Ereignis der Strategie Online Zustandsänderung.
public event Action LatencyChanged
strategy.LatencyChanged += handler
Latenzänderungsereignis.
public event Action<Subscription, Level1ChangeMessage> Level1Received
strategy.Level1Received += handler
Level1ChangeMessage erhalten.
public event Action<MyTrade> NewMyTrade
strategy.NewMyTrade += handler
Eigenhandel erhalten.
public event Action<Subscription, News> NewsReceived
strategy.NewsReceived += handler
Nachrichten erhalten.
public event Action<Subscription, IOrderBookSource, IOrderBookMessage> OrderBookDrawing
strategy.OrderBookDrawing += handler
IOrderBookMessage.
public event Action<Subscription, IOrderBookSource, Order> OrderBookDrawingOrder
strategy.OrderBookDrawingOrder += handler
Bestellung.
public event Action<Subscription, IOrderBookSource, OrderFail> OrderBookDrawingOrderFail
strategy.OrderBookDrawingOrderFail += handler
OrderFail.
public event Action<Subscription, IOrderBookMessage> OrderBookReceived
strategy.OrderBookReceived += handler
IOrderBookMessage erhalten.
public event Action<OrderFail> OrderCancelFailed
strategy.OrderCancelFailed += handler
Order Stornierung Fehlerereignis.
public event Action<Subscription, OrderFail> OrderCancelFailReceived
strategy.OrderCancelFailReceived += handler
OrderFail Stornierungsereignis.
public event Action<Order> OrderCanceling
strategy.OrderCanceling += handler
Das Ereignis der Absendung von Bestellung zur Stornierung.
public event Action<Order> OrderChanged
strategy.OrderChanged += handler
Bestellung geändert (abgesagt, abgeglichen).
public event Action<long, Order> OrderEdited
strategy.OrderEdited += handler
Order) Erfolg Ergebnis Ereignis.
public event Action<long, OrderFail> OrderEditFailed
strategy.OrderEditFailed += handler
Order) Fehlerergebnis Ereignis.
public event Action<Subscription, OrderFail> OrderEditFailReceived
strategy.OrderEditFailReceived += handler
OrderFail Editionsveranstaltung.
public event Action<Subscription, IOrderLogMessage> OrderLogReceived
strategy.OrderLogReceived += handler
IOrderLogMessage erhalten.
public event Action<Subscription, Order> OrderReceived
strategy.OrderReceived += handler
Bestellung eingegangen.
public event Action<Order> OrderRegistered
strategy.OrderRegistered += handler
Der Fall der Bestellung erfolgreiche Registrierung.
public event Action<OrderFail> OrderRegisterFailed
strategy.OrderRegisterFailed += handler
Fehler bei der Auftragsregistrierung.
public event Action<Subscription, OrderFail> OrderRegisterFailReceived
strategy.OrderRegisterFailReceived += handler
OrderFail Registrierungsereignis.
public event Action<Order> OrderRegistering
strategy.OrderRegistering += handler
Das Ereignis der Absendung von Bestellung für die Registrierung.
public event Action<Order, Order> OrderReRegistering
strategy.OrderReRegistering += handler
Das Ereignis der Absendung von Bestellung für die erneute Registrierung.
public event Action<Subscription, MyTrade> OwnTradeReceived
strategy.OwnTradeReceived += handler
MyTrade erhalten.
public event Action ParametersChanged
strategy.ParametersChanged += handler
Parameter ändern das Ereignis.
public event Action<Subscription> PnLReceived
strategy.PnLReceived += handler
PnL Change Event.
public event Action<Subscription, Portfolio, DateTime, decimal, decimal?, decimal?> PnLReceived2
strategy.PnLReceived2 += handler
PnL Change Event.
public event Action<Subscription, Portfolio> PortfolioReceived
strategy.PortfolioReceived += handler
Portfolio erhalten.
public event Action PositionChanged
strategy.PositionChanged += handler
Ereignis der Positionsänderung.
public event Action<Subscription, Position> PositionReceived
strategy.PositionReceived += handler
Position erhalten.
public event Action<IStrategy> ProcessStateChanged
strategy.ProcessStateChanged += handler
ProcessState Change Event.
public event PropertyChangedEventHandler PropertyChanged
strategy.PropertyChanged += handler
Der Diagrammelementeigenschaftenwert Änderungsereignis.
public event Action Reseted
strategy.Reseted += handler
Das Ereignis der Strategie Re-Initialisierung.
public event Action<Subscription, Security> SecurityReceived
strategy.SecurityReceived += handler
erhaltenes Finanzinstrument.
public event Action SlippageChanged
strategy.SlippageChanged += handler
Slippage Change Event.
public event Action<Subscription, Exception, bool> SubscriptionFailed
strategy.SubscriptionFailed += handler
Das Abonnement ist fehlgeschlagen.
public event Action<Subscription> SubscriptionOnline
strategy.SubscriptionOnline += handler
Das Abonnement ist online.
public event Action<Subscription, object> SubscriptionReceived
strategy.SubscriptionReceived += handler
Wert erhalten.
public event Action<Subscription> SubscriptionStarted
strategy.SubscriptionStarted += handler
Das Abonnement wird gestartet.
public event Action<Subscription, Exception> SubscriptionStopped
strategy.SubscriptionStopped += handler
Das Abonnement wird gestoppt.
public event Action<Subscription, ITickTradeMessage> TickTradeReceived
strategy.TickTradeReceived += handler
ITickTradeMessage erhalten.