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()

Disposes the managed resources. Override this method to add custom clean up of managed 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.