void dopositionupdate(ref structSTIPositionUpdate structPositionUpdate) { // symbol string sym = structPositionUpdate.bstrSym; // size int size = (structPositionUpdate.nSharesBot - structPositionUpdate.nSharesSld) + structPositionUpdate.nOpeningPosition; // price decimal price = size == 0 ? 0 :Math.Abs((decimal)structPositionUpdate.fPositionCost / size); // closed pl decimal cpl = (decimal)structPositionUpdate.fReal; // account string ac = structPositionUpdate.bstrAcct; // build position Position p = new PositionImpl(sym, price, size, cpl, ac); // track it pt.NewPosition(p); // track account if (!accts.Contains(ac)) { accts.Add(ac); } if (VerboseDebugging) { debug("new position recv: " + p.ToString()); } }
void stiPos_OnSTIPositionUpdate(ref structSTIPositionUpdate structPositionUpdate) { if (UseXmlMode) { return; } dopositionupdate(ref structPositionUpdate); }
void stiPos_OnSTIPositionUpdateXML(ref string bstrPosition) { try { XmlSerializer xs = new XmlSerializer(typeof(SterlingLib.structSTIPositionUpdate)); structSTIPositionUpdate q = (structSTIPositionUpdate)xs.Deserialize(new System.IO.StringReader(bstrPosition)); dopositionupdate(ref q); } catch (Exception ex) { debug("Error deserializing position: " + bstrPosition); debug(ex.Message + ex.StackTrace); } }
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); }
void stiPos_OnSTIPositionUpdate(ref structSTIPositionUpdate structPositionUpdate) { // symbol string sym = structPositionUpdate.bstrSym; // size int size = structPositionUpdate.nSharesBot - structPositionUpdate.nSharesSld + structPositionUpdate.nOpeningPosition; // price decimal price = Math.Abs((decimal)structPositionUpdate.fPositionCost / size); // closed pl decimal cpl = (decimal)structPositionUpdate.fReal; // account string ac = structPositionUpdate.bstrAcct; // build position Position p = new PositionImpl(sym, price, size, cpl, ac); // track it pt.NewPosition(p); // track account if (!accts.Contains(ac)) { accts.Add(ac); } }
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); }
void stiPos_OnSTIPositionUpdate(ref structSTIPositionUpdate structPositionUpdate) { if (UseXmlMode) return; dopositionupdate(ref structPositionUpdate); }
void dopositionupdate(ref structSTIPositionUpdate structPositionUpdate) { // symbol string sym = structPositionUpdate.bstrSym; // size int size = (structPositionUpdate.nSharesBot - structPositionUpdate.nSharesSld) + structPositionUpdate.nOpeningPosition; // price decimal price = size == 0 ? 0 :Math.Abs((decimal)structPositionUpdate.fPositionCost / size); // closed pl decimal cpl = (decimal)structPositionUpdate.fReal; // account string ac = structPositionUpdate.bstrAcct; // build position Position p = new PositionImpl(sym, price, size, cpl, ac); // track it pt.NewPosition(p); // track account if (!accts.Contains(ac)) accts.Add(ac); if (VerboseDebugging) debug("new position recv: " + p.ToString()); }
void dopositionupdate(ref structSTIPositionUpdate structPositionUpdate) { // symbol string ssym = structPositionUpdate.bstrSym; string sym = ssym; if (UseSubscribedSymbolForNotify) { sym = getfullsymbolname(ssym); } if (!UseSubscribedSymbolForNotify || (sym == ssym)) { // only do for non-equities if (structPositionUpdate.bstrInstrument == "O") sym = ssym + " "+SecurityType.OPT; else if (structPositionUpdate.bstrInstrument == "X") sym = ssym + " " + SecurityType.CASH; else if (structPositionUpdate.bstrInstrument == "F") sym = ssym + " " + SecurityType.FUT; } // size int size = (structPositionUpdate.nSharesBot - structPositionUpdate.nSharesSld) + structPositionUpdate.nOpeningPosition; // price decimal price = size == 0 ? 0 :Math.Abs((decimal)structPositionUpdate.fPositionCost / size); // closed pl decimal cpl = (decimal)structPositionUpdate.fReal; // account string ac = structPositionUpdate.bstrAcct; // build position Position p = new PositionImpl(sym, price, size, cpl, ac); // track it bool adjust = false; if (_posupdatelimit && _receivedorder) ; else { pt.NewPosition(p); adjust = true; } if (RegSHOShorts) sho.GotPosition(p); // track account if (!accts.Contains(ac)) accts.Add(ac); if (VerboseDebugging) debug("new position recv: " + p.ToString()+" info: "+pt[p.Symbol,ac]+" acct: "+ac); }
void stiPos_OnSTIPositionUpdate(ref structSTIPositionUpdate structPositionUpdate) { // symbol string sym = structPositionUpdate.bstrSym; // size int size = structPositionUpdate.nSharesBot - structPositionUpdate.nSharesSld + structPositionUpdate.nOpeningPosition; // price decimal price = Math.Abs((decimal)structPositionUpdate.fPositionCost / size); // closed pl decimal cpl = (decimal)structPositionUpdate.fReal; // account string ac = structPositionUpdate.bstrAcct; // build position Position p = new PositionImpl(sym, price, size, cpl, ac); // track it pt.NewPosition(p); // track account if (!accts.Contains(ac)) accts.Add(ac); }