/// <summary> /// 初始化模拟行情列表 /// </summary> /// <param name="codes"></param> public static void InitSimTable(string codes) { //code;type;price|code;type;price if (codes.Trim() == string.Empty) { return; } List <string> _liCodes = codes.Split('|').ToList(); _simulate_trade_table.Clear(); foreach (string s in _liCodes) { Sim_HQ_Struct unit = new Sim_HQ_Struct() { CODE = s.Split(';')[0], TYPE = s.Split(';')[1], PRICE = Convert.ToDecimal(s.Split(';')[2]) }; _simulate_trade_table.Add(unit); } }
//获取股票市场信息 public static TDFMarketData GetSimMarketDate() { if (_simulate_trade_table.Count == 0) { return(null); } Random seed = new Random(); Sim_HQ_Struct unit = _simulate_trade_table[seed.Next(_simulate_trade_table.Count - 1)]; uint price = Convert.ToUInt32(unit.PRICE * 10000); double wave = seed.NextDouble(); //涨幅/跌幅 if (seed.Next(0, 1) == 0) { wave *= -1; } TDFMarketData data = new TDFMarketData() { AskPrice = new uint[5] { price - 100, price - 200, price, price + 100, price + 200 }, AskVol = new uint[5] { 100, 100, 100, 100, 100 }, BidPrice = new uint[5] { price - 100, price - 200, price, price + 100, price + 200 }, BidVol = new uint[5] { 100, 100, 100, 100, 100 }, Code = unit.CODE, High = price + 1, HighLimited = Convert.ToUInt32(price * 1.1), IOPV = 0, Low = price - 1, LowLimited = Convert.ToUInt32(price * 0.9), Match = price, Time = Convert.ToInt32(DateTime.Now.ToString("HHmmss")) * 1000, WindCode = "60000.SH" }; return(data); }
/// <summary> /// 初始化模拟行情列表 /// </summary> /// <param name="codes"></param> public static void InitSimTable(string codes) { //code;type;price|code;type;price if (codes.Trim() == string.Empty) return; List<string> _liCodes = codes.Split('|').ToList(); _simulate_trade_table.Clear(); foreach(string s in _liCodes ) { Sim_HQ_Struct unit = new Sim_HQ_Struct() { CODE = s.Split(';')[0], TYPE = s.Split(';')[1], PRICE = Convert.ToDecimal(s.Split(';')[2]) }; _simulate_trade_table.Add(unit); } }