当前位置:   article > 正文

期货量化交易客户端开源教学第十节——行情列表

期货量化交易客户端开源教学第十节——行情列表

行情列表数据

行情列表数据接收

         行情列表接收到的数据根据接收到的数据进行字符处理。为了方便查看行情数据针对每个字段进行显示控制,并可根据显示器自动适配列宽。

发送命令:2

数据接受返回的格式:

2;13;1720682964;000;12021.00;24;12020.00;12020.00;77;0;0;182560;912607;11908.00;12021.00;12059.00;11899.00;0;11911.00;167886;0;11911.00;

数据接受返回的格式:2;商品ID;更新时间;更新毫秒;卖1;卖1量;现价;买1;买1量;涨停板价;跌停板价;成交量;持仓量;今开盘;今收盘;最高价;最低价;当日均价;昨收盘;昨持仓量;成交金额;昨日结算价格;

行情列表数据接收处理代码

  1. if strList.Strings[0] = '2' then
  2. begin
  3. try
  4. for I := 0 to Length(VGStocks) - 1 do
  5. begin
  6. if VGStocks[I].id = strList.Strings[1] then
  7. begin
  8. try
  9. strBodong := FloatToStr(VGStocks[I].smallest_fluctuation);
  10. except
  11. end;
  12. VGStocks[I].curr_unix_datetime := strList.Strings[2];
  13. VGStocks[I].curr_time := FormatDateTime('YYYY-MM-DD hh:mm:ss ',UnixToDateTime(StrToInt(strList.Strings[2])+28800)) + strList.Strings[3];
  14. if StrToFloat(strList.Strings[4]) <= 0 then
  15. VGStocks[I].sell_price := '--'
  16. else
  17. VGStocks[I].sell_price := FormatDigital(strBodong,strList.Strings[4]);
  18. VGStocks[I].sell_num := FormatDigital('0',strList.Strings[5]);
  19. if StrToFloat(strList.Strings[6]) <= 0 then
  20. VGStocks[I].curr_price := '--'
  21. else
  22. VGStocks[I].curr_price := FormatDigital(strBodong,strList.Strings[6]);
  23. if StrToFloat(strList.Strings[7]) <= 0 then
  24. VGStocks[I].buy_price := '--'
  25. else
  26. VGStocks[I].buy_price := FormatDigital(strBodong,strList.Strings[7]);
  27. VGStocks[I].buy_num := FormatDigital('0',strList.Strings[8]);
  28. if StrToFloat(strList.Strings[9]) <= 0 then
  29. VGStocks[I].harden_price := '--'
  30. else
  31. VGStocks[I].harden_price := FormatDigital(strBodong,strList.Strings[9]);
  32. if StrToFloat(strList.Strings[10]) <= 0 then
  33. VGStocks[I].dropstop_price := '--'
  34. else
  35. VGStocks[I].dropstop_price := FormatDigital(strBodong,strList.Strings[10]);
  36. VGStocks[I].deal_num := FormatDigital('0',strList.Strings[11]);
  37. VGStocks[I].position_num := FormatDigital('0',strList.Strings[12]);
  38. if StrToFloat(strList.Strings[13]) <= 0 then
  39. VGStocks[I].open_price := '--'
  40. else
  41. VGStocks[I].open_price := FormatDigital(strBodong,strList.Strings[13]);
  42. if StrToFloat(strList.Strings[14]) <= 0 then
  43. VGStocks[I].close_price := '--'
  44. else
  45. VGStocks[I].close_price := FormatDigital(strBodong,strList.Strings[14]);
  46. if StrToFloat(strList.Strings[15]) <= 0 then
  47. VGStocks[I].highest_price := '--'
  48. else
  49. VGStocks[I].highest_price := FormatDigital(strBodong,strList.Strings[15]);
  50. if StrToFloat(strList.Strings[16]) <= 0 then
  51. VGStocks[I].lowest_price := '--'
  52. else
  53. VGStocks[I].lowest_price := FormatDigital(strBodong,strList.Strings[16]);
  54. if StrToFloat(strList.Strings[17]) <= 0 then
  55. VGStocks[I].average_price := '--'
  56. else
  57. VGStocks[I].average_price := FormatDigital(strBodong,strList.Strings[17]);
  58. if StrToFloat(strList.Strings[18]) <= 0 then
  59. VGStocks[I].yesterday_close_price := '--'
  60. else
  61. VGStocks[I].yesterday_close_price := FormatDigital(strBodong,strList.Strings[18]);
  62. if FormatDigital('0',strList.Strings[19]) = '0' then
  63. VGStocks[I].yesterday_position_num := '--'
  64. else
  65. VGStocks[I].yesterday_position_num := FormatDigital('0',strList.Strings[19]);
  66. if StrToFloat(strList.Strings[20]) <= 0 then
  67. VGStocks[I].deal_jine := '--'
  68. else
  69. VGStocks[I].deal_jine := FormatDigital(strBodong,strList.Strings[20]);
  70. if StrToFloat(strList.Strings[21]) <= 0 then
  71. VGStocks[I].yesterday_jiesuan := '--'
  72. else
  73. VGStocks[I].yesterday_jiesuan := FormatDigital(strBodong,strList.Strings[21]);
  74. VGStocks[I].ups_downs := FloatToStr( StrToFloat(VGStocks[I].curr_price) - StrToFloat(VGStocks[I].yesterday_jiesuan)); {涨跌=现价-昨结算价}
  75. VGStocks[I].ups_downs_perc := Format('%0.2f',[StrToFloat(VGStocks[I].ups_downs) / StrToFloat(VGStocks[I].yesterday_jiesuan) * 100]) + '%';
  76. for J := 0 to Length(ArrMarketFuture) - 1 do
  77. begin
  78. if Assigned(ArrMarketFuture[J]) then
  79. ArrMarketFuture[J].refreshFutureData(I);
  80. end;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/835278
推荐阅读
相关标签
  

闽ICP备14008679号