本文整理汇总了C#中StockSharp.BusinessEntities.Order.GetPosition方法的典型用法代码示例。如果您正苦于以下问题:C# Order.GetPosition方法的具体用法?C# Order.GetPosition怎么用?C# Order.GetPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StockSharp.BusinessEntities.Order
的用法示例。
在下文中一共展示了Order.GetPosition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessOrder
/// <summary>
/// Рассчитать позицию по заявке.
/// </summary>
/// <param name="order">Заявка.</param>
/// <returns>Позиция по заявке.</returns>
public decimal ProcessOrder(Order order)
{
if (!ByOrders)
return 0;
decimal position;
lock (_syncRoot)
{
var newPosition = order.GetPosition();
decimal oldPosition;
if (_byOrderPositions.TryGetValue(order, out oldPosition))
{
if (newPosition != oldPosition)
_byOrderPositions[order] = newPosition;
position = newPosition - oldPosition;
}
else
{
_byOrderPositions.Add(order, newPosition);
position = newPosition;
}
//TODO:PYH: Если для Done-заявки ProcessOrder придет 2 раза(в Квике) то будет сделка-дубль.
//Избежать можно храня где-то oldState заявки и исключая такие варианты.
//
// mika: пока подключения не доделаны, временно отключил
//
//if (order.State == OrderStates.Done)
// _byOrderPositions.Remove(order);
Position += position;
}
ChangePosition(order.Security, order.Portfolio, position);
return position;
}