StockRestData.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. __author__ = 'weijie'
  2. from EmQuantAPI import *
  3. from datetime import timedelta, datetime
  4. import time
  5. import traceback
  6. import json
  7. from StockRestPojo import StockRestPojo
  8. from dbOperation import dbOperation
  9. # from dbOperationStock import dbOperationStock
  10. from threading import Thread
  11. import db_config
  12. def csqCallback(quantdata):
  13. # serialID = quantdata.SerialID
  14. # 设置线程序列号,标识正在抓取数据中
  15. restData = quantdata.Data
  16. print(restData)
  17. db = dbOperation(db_config.db_gupiao)
  18. sql = 'insert into t_csq_data(`data_content`, `status`) values("' + str(restData) + '", 0);'
  19. # print(sql)
  20. db.insert(sql)
  21. db.close()
  22. # print ("csqCallback,", str(quantdata))
  23. # db = dbOperation(db_config.db_gupiao)
  24. # for key,value in restData.items():
  25. # if "None".strip() == str(value[0]).strip():
  26. # print("无效数据跳过")
  27. # break
  28. # else:
  29. # # db.update("update t_stock_base_info set seralid = '"+str(serialID)+"' where code = '" + str(key) + "'")
  30. # stockRestPojo = StockRestPojo()
  31. # stockRestPojo.date = str(value[0])
  32. # stockRestPojo.time = str(value[1])
  33. # stockRestPojo.now = str(value[2])
  34. # stockRestPojo.high = str(value[3])
  35. # stockRestPojo.low = str(value[4])
  36. # stockRestPojo.open = str(value[5])
  37. # stockRestPojo.preclose = str(value[6])
  38. # stockRestPojo.roundlot = str(value[7])
  39. # stockRestPojo.change = str(value[8])
  40. # stockRestPojo.pctchange = str(value[9])
  41. # stockRestPojo.volume = str(value[10])
  42. # stockRestPojo.amount = str(value[11])
  43. # stockRestPojo.volumeratio = str(value[12])
  44. # stockRestPojo.commissionratio = str(value[13])
  45. # stockRestPojo.commissiondiff = str(value[14])
  46. # stockRestPojo.tradestatus = str(value[15])
  47. # stockRestPojo.outvolume = str(value[16])
  48. # stockRestPojo.involume = str(value[17])
  49. # stockRestPojo.highlimit = str(value[18])
  50. # stockRestPojo.lowlimit = str(value[19])
  51. # stockRestPojo.speed = str(value[20])
  52. # stockRestPojo.averageprice = str(value[21])
  53. # stockRestPojo.buyprice1 = str(value[22])
  54. # stockRestPojo.buyprice2 = str(value[23])
  55. # stockRestPojo.buyprice3 = str(value[24])
  56. # stockRestPojo.buyprice4 = str(value[25])
  57. # stockRestPojo.buyprice5 = str(value[26])
  58. # stockRestPojo.buyvolume1 = str(value[27])
  59. # stockRestPojo.buyvolume2 = str(value[28])
  60. # stockRestPojo.buyvolume3 = str(value[29])
  61. # stockRestPojo.buyvolume4 = str(value[30])
  62. # stockRestPojo.buyvolume5 = str(value[31])
  63. # stockRestPojo.sellprice1 = str(value[32])
  64. # stockRestPojo.sellprice2 = str(value[33])
  65. # stockRestPojo.sellprice3 = str(value[34])
  66. # stockRestPojo.sellprice4 = str(value[35])
  67. # stockRestPojo.sellprice5 = str(value[36])
  68. # stockRestPojo.sellvolume1 = str(value[37])
  69. # stockRestPojo.sellvolume2 = str(value[38])
  70. # stockRestPojo.sellvolume3 = str(value[39])
  71. # stockRestPojo.sellvolume4 = str(value[40])
  72. # stockRestPojo.sellvolume5 = str(value[41])
  73. # stockRestPojo.closedtime = str(value[42])
  74. # stockRestPojo.closedvolume = str(value[43])
  75. # stockRestPojo.closedamount = str(value[44])
  76. # datTime = time.mktime(time.strptime(str(value[0]) + str(value[1]), "%Y%m%d%H%M%S"))
  77. # stockRestPojo.realTime = str(int(datTime))
  78. # stockRestPojo.dateOne = "0"
  79. # stockRestPojo.dateFive = "0"
  80. # stockRestPojo.dateFifteen = "0"
  81. # stockRestPojo.dateThirty = "0"
  82. # stockRestPojo.dateSixty = "0"
  83. # sql = "insert into data_rt_" + str(key.replace(".", "_").lower()) + "(`realTime`,`date`,`time`,`now`,`high`,`low`,`open`,`preclose`,`roundlot`,`change`,`pctchange`,`volume`,`amount`,`volumeratio`,`commissionratio`,`commissiondiff`,`tradestatus`,`outvolume`,`involume`,`highlimit`,`lowlimit`,`speed`,`averageprice`,`buyprice1`,`buyprice2`,`buyprice3`,`buyprice4`,`buyprice5`,`buyvolume1`,`buyvolume2`,`buyvolume3`,`buyvolume4`,`buyvolume5`,`sellprice1`,`sellprice2`,`sellprice3`,`sellprice4`,`sellprice5`,`sellvolume1`,`sellvolume2`,`sellvolume3`,`sellvolume4`,`sellvolume5`,`closedtime`,`closedvolume`,`closedamount`,`dateOne`,`dateFive`,`dateFifteen`,`dateThirty`,`dateSixty`,`addTime`) values('" + str(stockRestPojo.realTime) + "','" + str(stockRestPojo.date) + "','" + str(stockRestPojo.time) + "','" + str(stockRestPojo.now) + "','" + str(stockRestPojo.high) + "','" + str(stockRestPojo.low) + "','" + str(stockRestPojo.open) + "','" + str(stockRestPojo.preclose) + "','" + str(stockRestPojo.roundlot) + "','" + str(stockRestPojo.change) + "','" + str(stockRestPojo.pctchange) + "','" + str(stockRestPojo.volume) + "','" + str(stockRestPojo.amount) + "','" + str(stockRestPojo.volumeratio) + "','" + str(stockRestPojo.commissionratio) + "','" + str(stockRestPojo.commissiondiff) + "','" + str(stockRestPojo.tradestatus) + "','" + str(stockRestPojo.outvolume) + "','" + str(stockRestPojo.involume) + "','" + str(stockRestPojo.highlimit) + "','" + str(stockRestPojo.lowlimit) + "','" + str(stockRestPojo.speed) + "','" + str(stockRestPojo.averageprice) + "','" + str(stockRestPojo.buyprice1) + "','" + str(stockRestPojo.buyprice2) + "','" + str(stockRestPojo.buyprice3) + "','" + str(stockRestPojo.buyprice4) + "','" + str(stockRestPojo.buyprice5) + "','" + str(stockRestPojo.buyvolume1) + "','" + str(stockRestPojo.buyvolume2) + "','" + str(stockRestPojo.buyvolume3) + "','" + str(stockRestPojo.buyvolume4) + "','" + str(stockRestPojo.buyvolume5) + "','" + str(stockRestPojo.sellprice1) + "','" + str(stockRestPojo.sellprice2) + "','" + str(stockRestPojo.sellprice3) + "','" + str(stockRestPojo.sellprice4) + "','" + str(stockRestPojo.sellprice5) + "','" + str(stockRestPojo.sellvolume1) + "','" + str(stockRestPojo.sellvolume2) + "','" + str(stockRestPojo.sellvolume3) + "','" + str(stockRestPojo.sellvolume4) + "','" + str(stockRestPojo.sellvolume5) + "','" + str(stockRestPojo.closedtime) + "','" + str(stockRestPojo.closedvolume) + "','" + str(stockRestPojo.closedamount) + "','" + str(stockRestPojo.dateOne) + "','" + str(stockRestPojo.dateFive) + "','" + str(stockRestPojo.dateFifteen) + "','" + str(stockRestPojo.dateThirty) + "','" + str(stockRestPojo.dateSixty) +"', now());"
  84. # db.insert(sql)
  85. # # if stockRestPojo.now != 0:
  86. # # stockRestData = StockRestData()
  87. # # stockRestData.updateStockInfo(key, stockRestPojo)
  88. # db.close()
  89. class StockRestData:
  90. def toGet(self):
  91. try:
  92. db = dbOperation(db_config.db_gupiao)
  93. stockPojoList = db.query_list("select id, code, name, list_date listDate, seralid from t_stock_base_info where is_rest_add = 0 order by id asc")
  94. # 拼接证券代码
  95. codesStr = ""
  96. i = 1
  97. for stockPojo in stockPojoList:
  98. if 0 != i%500 :
  99. codesStr = codesStr + stockPojo['code'] + ','
  100. if 0 == i%500 or str(i) == str(len(stockPojoList)):
  101. if(codesStr != ""):
  102. #实时行情订阅使用范例
  103. codesStr = codesStr[:-1]
  104. data = c.csq(codesStr, 'date,time,now,high,low,open,preclose,roundlot,change,pctchange,volume,amount,volumeratio,commissionratio,commissiondiff,tradestatus,outvolume,involume,highlimit,lowlimit,speed,averageprice,buyprice1,buyprice2,buyprice3,buyprice4,buyprice5,buyvolume1,buyvolume2,buyvolume3,buyvolume4,buyvolume5,sellprice1,sellprice2,sellprice3,sellprice4,sellprice5,sellvolume1,sellvolume2,sellvolume3,sellvolume4,sellvolume5,closedtime,closedvolume,closedamount','Pushtype=2',csqCallback)
  105. print(data)
  106. codesStr = ""
  107. i = i + 1
  108. # db.close()
  109. text = input("press any key to cancel csq \r\n")
  110. except Exception as ee:
  111. print("error >>>",ee)
  112. traceback.print_exc()
  113. else:
  114. print("demo end")
  115. # def updateStockInfo(self, code, stockRestPojo):
  116. # db = dbOperationStock(db_config.db_stock)
  117. # sql = "update stock set `now` = '" + str(stockRestPojo.now) + "', `change` = '" + str(stockRestPojo.change) + "', `pct_change` = '" + str(stockRestPojo.pctchange) + "' where stock_code = '" + str(code) + "'"
  118. # db.update(sql)
  119. # db.close()