public void Update(POS.position pos) { mxListRowsPositions.WaitOne(); // m_ListRawPos.Add(new CRawPosition(pos)); string isin = m_Plaza2Connector.Instruments.DictIsinId_Instrument [pos.isin_id]; //for Data binding work correct if (!DictPos.ContainsKey(isin)) { DictPos[isin] = new CRawPosition(pos); } else { DictPos[isin].Update(pos); } foreach (CBotBase bt in m_Plaza2Connector.ListBots) { bt.Recalc(isin, EnmBotEventCode.OnPostionUpdate, null); } UpdateTrdMgrTotalPos(); mxListRowsPositions.ReleaseMutex(); }
public void Update(string instrument, decimal pos, string status) { //for Data binding work correct if (!DictPos.ContainsKey(instrument)) { DictPos[instrument] = new CRawPosition(); } string msg = String.Format("[Update] instrument={0} pos={1} status={2}", instrument, pos, status); if (status == "ACTIVE") { DictPos[instrument].Pos = pos; DictPos[instrument].PosGUI = pos; } else if (status == "CLOSED") { DictPos[instrument].Pos = 0; DictPos[instrument].PosGUI = 0; } //foreach (CBotBase bt in m_Plaza2Connector.ListBots) // bt.Recalc(isin, EnmBotEventCode.OnPostionUpdate, null); UpdateTrdMgrTotalPos(); //mxListRowsPositions.ReleaseMutex(); }
public PosisionInst(string instrument, /*POS.position*/ CRawPosition pos) { Id = instrument; Pos = pos.Pos; //pos.pos; if (Pos == 0) { WAPrice = 0; } else { WAPrice = pos.waprice; } }
public void UpdatePos(string isin, /*POS.position*/ CRawPosition pos) { if (/*pos.pos*/ pos.Pos == 0) { ExecuteWindowsUpdate(new Action(() => Position.RemoveWithId(isin) )); } else { ExecuteWindowsUpdate(new Action(() => Position.UpdateWithId(new PosisionInst(isin, pos)) )); } }