Exemplo n.º 1
0
        private void ProcessPosition(OEC.API.Position position)
        {
            if (position == null)
            {
                throw new ArgumentNullException(nameof(position));
            }

            SendOutMessage(this
                           .CreatePositionChangeMessage(
                               position.Account.Name,
                               new SecurityId
            {
                SecurityCode = position.Contract.Symbol,
                BoardCode    = position.Contract.Exchange.Name,
            }
                               )
                           .TryAdd(PositionChangeTypes.BeginValue, (decimal)position.Prev.Volume)
                           .TryAdd(PositionChangeTypes.CurrentValue, position.ContractSize.ToDecimal())
                           .TryAdd(PositionChangeTypes.CurrentPrice, position.CurrencyCostBasis.ToDecimal())
                           .TryAdd(PositionChangeTypes.RealizedPnL, position.CurrencyNetGain.ToDecimal())
                           .TryAdd(PositionChangeTypes.UnrealizedPnL, position.CurrencyOTE.ToDecimal())
                           .TryAdd(PositionChangeTypes.Commission, position.OpenCommissions.ToDecimal() + position.RealizedCommissions.ToDecimal())
                           .TryAdd(PositionChangeTypes.VariationMargin, position.InitialMargin.ToDecimal())
                           .TryAdd(PositionChangeTypes.AveragePrice, position.Net.Price.ToDecimal()));
        }
Exemplo n.º 2
0
 private void SessionOnDetailedPositionChanged(OEC.API.Account account, OEC.API.Position position)
 {
     ProcessPosition(position);
 }