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.