public static void OnQuote(IntPtr AContex, IntPtr pRtn) { int num = MDDict.Count; tagCThostMyDepthMarketDataFieldEx Data = new tagCThostMyDepthMarketDataFieldEx(); Data = (tagCThostMyDepthMarketDataFieldEx)Marshal.PtrToStructure(pRtn, typeof(tagCThostMyDepthMarketDataFieldEx)); //Marshal.PtrToStructure(pRtn, Data); if (pRtn != IntPtr.Zero) { //Console.WriteLine(Data.ExchangeInstID + " " + Data.TradingDay + " " + Data.UpdateTime + " " + Data.ExchangeID + " " + Data.InstrumentID + " " + Data.InstrumentName + " " + Data.LastPrice.ToString() + "(" + Data.Volume.ToString() + ")"); //MDStruct ms = new MDStruct(); //ms.InstrumentID = Data.InstrumentID; //ms.LastPrice = Data.LastPrice; //MDList.Add(ms); /*string str = Data.InstrumentID; * if (MDList.ContainsKey(str)) * { * for (int i = 0; i < 5; i++) * { * if (str == target[i]) * { * presentValue -= 1000 * MDList[str].LastPrice; * MDList[str] = Data; * presentValue += 1000 * Data.LastPrice; * break; * } * } * } * else * { * for (int i = 0; i < 5; i++) * { * if (str == target[i]) * { * presentValue -= 1000 * MDList[str].LastPrice; * try * { * MDList.Add(str, Data); * } * catch { } * presentValue += 1000 * Data.LastPrice; * break; * } * } * }*/ if (!MDDict.TryAdd(Data.InstrumentID, Data)) { tagCThostMyDepthMarketDataFieldEx temp = MDDict[Data.InstrumentID]; MDDict.TryUpdate(Data.InstrumentID, Data, temp); //HoldingValue -= } } }
public static void OnHistQuote(IntPtr AContex, IntPtr pRtn, int nCount) { tagCThostMyDepthMarketDataFieldEx[] Data = new tagCThostMyDepthMarketDataFieldEx[nCount]; if (pRtn == IntPtr.Zero) { Console.WriteLine("Error"); } if (nCount == 0) { Console.WriteLine("error"); } if (pRtn != IntPtr.Zero && nCount > 0) { for (int i = 0; i < nCount; i++) { IntPtr pdata = (IntPtr)((UInt32)pRtn + i * Marshal.SizeOf(typeof(tagCThostMyDepthMarketDataFieldEx))); Data[i] = (tagCThostMyDepthMarketDataFieldEx)Marshal.PtrToStructure(pdata, typeof(tagCThostMyDepthMarketDataFieldEx)); Console.WriteLine(Data[i].TradingDay + " " + Data[i].UpdateTime + " " + Data[i].ExchangeID + "s." + Data[i].InstrumentID + "s " + Data[i].InstrumentName + "s " + Data[i].LastPrice.ToString() + "(" + Data[i].Volume.ToString() + ")"); } } }