PositionTargetManager
StockSharp.Algo.PositionManagement
Standalone manager that drives position to a target value using configurable algorithms.
Inherits: BaseLogReceiver
Constructors
PositionTargetManager
public PositionTargetManager(ISubscriptionProvider subProvider, ITransactionProvider transProvider, IMarketRuleContainer container, Func<Security, Portfolio, decimal?> getPosition, Func<Order> orderFactory, Func<bool> canTrade, Func<Sides, decimal, IPositionModifyAlgo> algoFactory)
positionTargetManager = PositionTargetManager(subProvider, transProvider, container, getPosition, orderFactory, canTrade, algoFactory)
Initializes a new instance of the PositionTargetManager.
- subProvider
- Subscription provider.
- transProvider
- Transaction provider.
- container
- Market rule container.
- getPosition
- Function to get current position for a security/portfolio pair.
- orderFactory
- Factory to create new orders with desired properties.
- canTrade
- Function that returns whether trading is allowed.
- algoFactory
- Factory to create position modify algorithms. Parameters: side, volume.
Properties
MaxRetries
public int MaxRetries { get; set; }
value = positionTargetManager.MaxRetries
positionTargetManager.MaxRetries = value
Maximum number of retries on order failure.
OrderType
public OrderTypes OrderType { get; set; }
value = positionTargetManager.OrderType
positionTargetManager.OrderType = value
Order type to use. Default is Market.
PositionTolerance
public decimal PositionTolerance { get; set; }
value = positionTargetManager.PositionTolerance
positionTargetManager.PositionTolerance = value
Tolerance for considering position target reached.
Methods
CancelTarget
public void CancelTarget(Security security, Portfolio portfolio)
positionTargetManager.CancelTarget(security, portfolio)
Cancel target for a security/portfolio pair.
- security
- Security.
- portfolio
- Portfolio.
DisposeManaged
protected override void DisposeManaged()
positionTargetManager.DisposeManaged()
Release resources.
GetTarget
public decimal? GetTarget(Security security, Portfolio portfolio)
result = positionTargetManager.GetTarget(security, portfolio)
Get target position for a security/portfolio pair.
Returns: Target position, or null if not set.
IsTargetReached
public bool IsTargetReached(Security security, Portfolio portfolio)
result = positionTargetManager.IsTargetReached(security, portfolio)
Check if target position is reached.
SetTarget
public void SetTarget(Security security, Portfolio portfolio, decimal target)
positionTargetManager.SetTarget(security, portfolio, target)
Set target position for a security/portfolio pair.
- security
- Security.
- portfolio
- Portfolio.
- target
- Target position value.
Events
Error
public event Action<Security, Portfolio, Exception> Error
positionTargetManager.Error += handler
Occurs when an error happens during target management.
OrderRegistered
public event Action<Order> OrderRegistered
positionTargetManager.OrderRegistered += handler
Occurs when an order is registered by the manager.
TargetReached
public event Action<Security, Portfolio> TargetReached
positionTargetManager.TargetReached += handler
Occurs when a target position is reached.