private void ProcessPortfolioLookupMessage(PortfolioLookupMessage message) { var portfolios = _client.GetPortfolios(); foreach (var portfolio in portfolios) { SendOutMessage(new PortfolioMessage { PortfolioName = portfolio.bstrAcct, State = PortfolioStates.Active, // ??? OriginalTransactionId = message.TransactionId, }); } var pos = _client.GetPositions(); foreach (var position in pos) { var m = new PositionMessage { PortfolioName = position.bstrAcct, SecurityId = new SecurityId { SecurityCode = position.bstrSym, BoardCode = "All", SecurityType = position.bstrInstrument.ToSecurityType() }, OriginalTransactionId = message.TransactionId, }; SendOutMessage(m); var changeMsg = new PositionChangeMessage { PortfolioName = position.bstrAcct, SecurityId = new SecurityId { SecurityCode = position.bstrSym, BoardCode = "All", SecurityType = position.bstrInstrument.ToSecurityType() }, ServerTime = CurrentTime }; changeMsg.TryAdd(PositionChangeTypes.RealizedPnL, (decimal)position.fReal); changeMsg.TryAdd(PositionChangeTypes.BeginValue, (decimal)position.nOpeningPosition); changeMsg.TryAdd(PositionChangeTypes.CurrentValue, (decimal)(position.nOpeningPosition + (position.nSharesBot - position.nSharesSld))); changeMsg.TryAdd(PositionChangeTypes.Commission, (decimal)position.fPositionCost); SendOutMessage(message); } SendOutMessage(new PortfolioLookupResultMessage { OriginalTransactionId = message.TransactionId }); }
private void SessionOnStiPositionUpdate(ref structSTIPositionUpdate msg) { var message = new PositionChangeMessage { PortfolioName = msg.bstrAcct, SecurityId = new SecurityId { SecurityCode = msg.bstrSym, BoardCode = "All" }, }; message.TryAdd(PositionChangeTypes.RealizedPnL, (decimal)msg.fReal); message.TryAdd(PositionChangeTypes.BeginValue, (decimal)msg.nOpeningPosition); message.TryAdd(PositionChangeTypes.CurrentValue, (decimal)(msg.nOpeningPosition + (msg.nSharesBot - msg.nSharesSld))); message.TryAdd(PositionChangeTypes.Commission, (decimal)msg.fPositionCost); SendOutMessage(message); }
private void ProcessPortfolioLookupMessage(PortfolioLookupMessage message) { var portfolios = _client.GetPortfolios(); foreach (var portfolio in portfolios) { SendOutMessage(new PortfolioMessage { PortfolioName = portfolio.bstrAcct, State = PortfolioStates.Active, // ??? OriginalTransactionId = message.TransactionId, }); } var pos = _client.GetPositions(); foreach (var position in pos) { var m = new PositionMessage { PortfolioName = position.bstrAcct, SecurityId = new SecurityId { SecurityCode = position.bstrSym, BoardCode = AssociatedBoardCode, SecurityType = position.bstrInstrument.ToSecurityType() }, OriginalTransactionId = message.TransactionId, }; SendOutMessage(m); var changeMsg = new PositionChangeMessage { PortfolioName = position.bstrAcct, SecurityId = new SecurityId { SecurityCode = position.bstrSym, BoardCode = AssociatedBoardCode, SecurityType = position.bstrInstrument.ToSecurityType() }, ServerTime = CurrentTime }; changeMsg.TryAdd(PositionChangeTypes.RealizedPnL, (decimal)position.fReal); changeMsg.TryAdd(PositionChangeTypes.BeginValue, (decimal)position.nOpeningPosition); changeMsg.TryAdd(PositionChangeTypes.CurrentValue, (decimal)(position.nOpeningPosition + (position.nSharesBot - position.nSharesSld))); changeMsg.TryAdd(PositionChangeTypes.Commission, (decimal)position.fPositionCost); SendOutMessage(message); } SendOutMessage(new PortfolioLookupResultMessage { OriginalTransactionId = message.TransactionId }); }
private void SessionOnStiPositionUpdate(ref structSTIPositionUpdate msg) { var message = new PositionChangeMessage { PortfolioName = msg.bstrAcct, SecurityId = new SecurityId { SecurityCode = msg.bstrSym, BoardCode = AssociatedBoardCode }, }; message.TryAdd(PositionChangeTypes.RealizedPnL, (decimal)msg.fReal); message.TryAdd(PositionChangeTypes.BeginValue, (decimal)msg.nOpeningPosition); message.TryAdd(PositionChangeTypes.CurrentValue, (decimal)(msg.nOpeningPosition + (msg.nSharesBot - msg.nSharesSld))); message.TryAdd(PositionChangeTypes.Commission, (decimal)msg.fPositionCost); SendOutMessage(message); }