123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- __author__ = 'weijie'
- from EmQuantAPI import *
- from datetime import timedelta, datetime
- import time
- import traceback
- import json
- from StockRestPojo import StockRestPojo
- from dbOperation import dbOperation
- # from dbOperationStock import dbOperationStock
- from threading import Thread
- import db_config
- def csqCallback(quantdata):
- # serialID = quantdata.SerialID
- # 设置线程序列号,标识正在抓取数据中
- restData = quantdata.Data
- # print(restData)
- print("回调")
- db = dbOperation(db_config.db_zhaiquan)
- for key,value in restData.items():
- if "None".strip() == str(value[0]).strip():
- print("无效数据跳过")
- break
- else:
- # db.update("update t_stock_base_info set seralid = '"+str(serialID)+"' where code = '" + str(key) + "'")
- stockRestPojo = StockRestPojo()
- stockRestPojo.date = str(value[0])
- stockRestPojo.time = str(value[1])
- stockRestPojo.now = str(value[2])
- stockRestPojo.high = str(value[3])
- stockRestPojo.low = str(value[4])
- stockRestPojo.open = str(value[5])
- stockRestPojo.preclose = str(value[6])
- stockRestPojo.roundlot = str(value[7])
- stockRestPojo.change = str(value[8])
- stockRestPojo.pctchange = str(value[9])
- stockRestPojo.volume = str(value[10])
- stockRestPojo.amount = str(value[11])
- stockRestPojo.volumeratio = ""
- stockRestPojo.commissionratio = ""
- stockRestPojo.commissiondiff = ""
- stockRestPojo.tradestatus = ""
- stockRestPojo.outvolume = ""
- stockRestPojo.involume = ""
- stockRestPojo.highlimit = ""
- stockRestPojo.lowlimit = ""
- stockRestPojo.speed = ""
- stockRestPojo.averageprice = ""
- stockRestPojo.buyprice1 = str(value[12])
- stockRestPojo.buyprice2 = str(value[13])
- stockRestPojo.buyprice3 = str(value[14])
- stockRestPojo.buyprice4 = str(value[15])
- stockRestPojo.buyprice5 = str(value[16])
- stockRestPojo.buyvolume1 = str(value[17])
- stockRestPojo.buyvolume2 = str(value[18])
- stockRestPojo.buyvolume3 = str(value[19])
- stockRestPojo.buyvolume4 = str(value[20])
- stockRestPojo.buyvolume5 = str(value[21])
- stockRestPojo.sellprice1 = str(value[22])
- stockRestPojo.sellprice2 = str(value[23])
- stockRestPojo.sellprice3 = str(value[24])
- stockRestPojo.sellprice4 = str(value[25])
- stockRestPojo.sellprice5 = str(value[26])
- stockRestPojo.sellvolume1 = str(value[27])
- stockRestPojo.sellvolume2 = str(value[28])
- stockRestPojo.sellvolume3 = str(value[29])
- stockRestPojo.sellvolume4 = str(value[30])
- stockRestPojo.sellvolume5 = str(value[31])
- stockRestPojo.closedtime = ""
- stockRestPojo.closedvolume = ""
- stockRestPojo.closedamount = ""
- datTime = time.mktime(time.strptime(str(value[0]) + str(value[1]), "%Y%m%d%H%M%S"))
- stockRestPojo.realTime = str(int(datTime))
- stockRestPojo.dateOne = "0"
- stockRestPojo.dateFive = "0"
- stockRestPojo.dateFifteen = "0"
- stockRestPojo.dateThirty = "0"
- stockRestPojo.dateSixty = "0"
- 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());"
- db.insert(sql)
- # if stockRestPojo.now != 0:
- # stockRestData = StockRestData()
- # stockRestData.updateStockInfo(key, stockRestPojo)
- db.close()
- class StockRestData:
- def toGet(self):
- try:
- db = dbOperation(db_config.db_zhaiquan)
- 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")
- # 拼接证券代码
- codesStr = ""
- i = 1
- for stockPojo in stockPojoList:
- if 0 != i%500 :
- codesStr = codesStr + stockPojo['code'] + ','
- if 0 == i%500 or str(i) == str(len(stockPojoList)):
- if(codesStr != ""):
- #实时行情订阅使用范例
- codesStr = codesStr[:-1]
- data = c.csq(codesStr, 'Date,Time,Now,High,Low,Open,PreClose,Roundlot,Change,PctChange,Volume,Amount,BuyPrice1,BuyPrice2,BuyPrice3,BuyPrice4,BuyPrice5,BuyVolume1,BuyVolume2,BuyVolume3,BuyVolume4,BuyVolume5,SellPrice1,SellPrice2,SellPrice3,SellPrice4,SellPrice5,SellVolume1,SellVolume2,SellVolume3,SellVolume4,SellVolume5','Pushtype=2',csqCallback)
- print(data)
- codesStr = ""
- i = i + 1
- # db.close()
- text = input("press any key to cancel csq \r\n")
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("demo end")
- # def updateStockInfo(self, code, stockRestPojo):
- # db = dbOperationStock(db_config.db_stock)
- # sql = "update stock set `now` = '" + str(stockRestPojo.now) + "', `change` = '" + str(stockRestPojo.change) + "', `pct_change` = '" + str(stockRestPojo.pctchange) + "' where stock_code = '" + str(code) + "'"
- # db.update(sql)
- # db.close()
|