123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582 |
- # -*- coding:utf-8 -*-
- __author__ = 'weijie'
- from EmQuantAPI import *
- import datetime
- import time
- import traceback
- from StockPojo import StockPojo
- from StockHistPojo import StockHistPojo
- from dbOperation import dbOperation
- import pandas as pd
- import json
- import array
- import db_config
- class TempIndexHistData:
- def toGet1(self):
- try:
- print("开始000001.SH")
- getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- sql = "select dates dates from data_hist_000001_sh order by realTime desc limit 1"
- db = dbOperation(db_config.db_gupiao)
- dates = db.query_one(sql)
- db.close()
- if dates is not None :
- startDate = str(dates['dates'].replace("/", "-"))
- dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
- dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
- startDate = dd
- else:
- return
- data = c.csd(
- '000001.SH',
- "OPEN,CLOSE,HIGH,LOW,PRECLOSE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,AMPLITUDE",
- startDate,
- getDataTime,
- "Period=1,adjustflag=1,curtype=1,Ispandas=1")
- print(data)
- data.reset_index(inplace=True)
- jsonData = data.to_json()
- text = json.loads(jsonData)
- stockHistPojoList = []
- for i in range(len(text['CODES'])):
- stockHistPojo = StockHistPojo()
- stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
- if "None".strip() == str(text['OPEN'][str(i)]).strip():
- continue
- stockHistPojo.open = text['OPEN'][str(i)]
- stockHistPojo.close = text['CLOSE'][str(i)]
- stockHistPojo.high = text['HIGH'][str(i)]
- stockHistPojo.low = text['LOW'][str(i)]
- stockHistPojo.preclose = text['PRECLOSE'][str(i)]
- stockHistPojo.average = "0"
- stockHistPojo.change = text['CHANGE'][str(i)]
- stockHistPojo.pctchange = text['PCTCHANGE'][str(i)]
- stockHistPojo.volume = text['VOLUME'][str(i)]
- stockHistPojo.highlimit = "0"
- stockHistPojo.amount = text['AMOUNT'][str(i)]
- stockHistPojo.turn = text['TURN'][str(i)]
- stockHistPojo.tradestatus = "0"
- stockHistPojo.lowlimit = "0"
- stockHistPojo.amplitude = text['AMPLITUDE'][str(i)]
- stockHistPojo.tnum = "0"
- stockHistPojo.tafactor = "0"
- stockHistPojo.fronttafactor = "0"
- stockHistPojo.isststock = "0"
- stockHistPojo.isxststock = "0"
- stockHistPojo.dates = text['DATES'][str(i)]
- datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- year = time.localtime(datTime).tm_year # 获取年份
- yearDatTime = time.mktime(time.strptime(str(year) + "/01/01", "%Y/%m/%d"))
- month = time.localtime(datTime).tm_mon # 获取月份
- monthDatTime = ""
- if 10 > month:
- datTime = time.mktime(time.strptime(str(year) + "/0" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- else:
- datTime = time.mktime(time.strptime(str(year) + "/" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- weekDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- wday = time.localtime(weekDatTime).tm_wday # 获取周
- dt = datetime.datetime.strptime(stockHistPojo.dates, "%Y/%m/%d")
- out_date = (dt + datetime.timedelta(days=-wday)).strftime("%Y/%m/%d")
- weekDatTime1 = time.mktime(time.strptime(out_date, "%Y/%m/%d"))
- #获取日
- dayDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- stockHistPojo.dateYear = str(int(yearDatTime))
- stockHistPojo.dateMonth = str(int(monthDatTime))
- stockHistPojo.dateWeek = str(int(weekDatTime1))
- stockHistPojo.dateDay = str(int(dayDatTime))
- stockHistPojoList.append(stockHistPojo)
- i = 0
- key = "`realTime`,`dates`,`open`,`close`,`high`,`low`,`preclose`,`average`,`change`,`pctchange`,`volume`,`highlimit`,`amount`,`turn`,`tradestatus`,`lowlimit`,`amplitude`,`tnum`,`tafactor`,`fronttafactor`,`isststock`,`isxststock`,`date_year`,`date_month`,`date_week`"
- # 批量插入 每次插入500
- db = dbOperation(db_config.db_gupiao)
- while True :
- vlues = ""
- # print(i)
- # 如果数组数量大于500 截取前500个
- if len(stockHistPojoList) - i > 500 :
- # stockPojoList[i : 500] 等于java subList(i, 500)
- for stockHistPojo in stockHistPojoList[i : 500 + i]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_000001_sh", key, vlues)
- i = i + 500
- else :
- # 如果数量小于500 并且不为数量不大于标记变量
- if len(stockHistPojoList) > i :
- for stockHistPojo in stockHistPojoList[i : len(stockHistPojoList)]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_000001_sh", key, vlues)
- break
- db.close()
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("demo end")
-
- def toGet2(self):
- try:
- print("开始399001.SZ")
- getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- sql = "select dates dates from data_hist_399001_sz order by realTime desc limit 1"
- db = dbOperation(db_config.db_gupiao)
- dates = db.query_one(sql)
- db.close()
- if dates is not None :
- startDate = str(dates['dates'].replace("/", "-"))
- dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
- dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
- startDate = dd
- else:
- return
- data = c.csd(
- '399001.SZ',
- "OPEN,CLOSE,HIGH,LOW,PRECLOSE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,AMPLITUDE",
- startDate,
- getDataTime,
- "Period=1,adjustflag=1,curtype=1,Ispandas=1")
- print(data)
- data.reset_index(inplace=True)
- jsonData = data.to_json()
- text = json.loads(jsonData)
- stockHistPojoList = []
- for i in range(len(text['CODES'])):
- stockHistPojo = StockHistPojo()
- stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
- if "None".strip() == str(text['OPEN'][str(i)]).strip():
- continue
- stockHistPojo.open = text['OPEN'][str(i)]
- stockHistPojo.close = text['CLOSE'][str(i)]
- stockHistPojo.high = text['HIGH'][str(i)]
- stockHistPojo.low = text['LOW'][str(i)]
- stockHistPojo.preclose = text['PRECLOSE'][str(i)]
- stockHistPojo.average = "0"
- stockHistPojo.change = text['CHANGE'][str(i)]
- stockHistPojo.pctchange = text['PCTCHANGE'][str(i)]
- stockHistPojo.volume = text['VOLUME'][str(i)]
- stockHistPojo.highlimit = "0"
- stockHistPojo.amount = text['AMOUNT'][str(i)]
- stockHistPojo.turn = text['TURN'][str(i)]
- stockHistPojo.tradestatus = "0"
- stockHistPojo.lowlimit = "0"
- stockHistPojo.amplitude = text['AMPLITUDE'][str(i)]
- stockHistPojo.tnum = "0"
- stockHistPojo.tafactor = "0"
- stockHistPojo.fronttafactor = "0"
- stockHistPojo.isststock = "0"
- stockHistPojo.isxststock = "0"
- stockHistPojo.dates = text['DATES'][str(i)]
- datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- year = time.localtime(datTime).tm_year # 获取年份
- yearDatTime = time.mktime(time.strptime(str(year) + "/01/01", "%Y/%m/%d"))
- month = time.localtime(datTime).tm_mon # 获取月份
- monthDatTime = ""
- if 10 > month:
- datTime = time.mktime(time.strptime(str(year) + "/0" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- else:
- datTime = time.mktime(time.strptime(str(year) + "/" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- weekDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- wday = time.localtime(weekDatTime).tm_wday # 获取周
- dt = datetime.datetime.strptime(stockHistPojo.dates, "%Y/%m/%d")
- out_date = (dt + datetime.timedelta(days=-wday)).strftime("%Y/%m/%d")
- weekDatTime1 = time.mktime(time.strptime(out_date, "%Y/%m/%d"))
- #获取日
- dayDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- stockHistPojo.dateYear = str(int(yearDatTime))
- stockHistPojo.dateMonth = str(int(monthDatTime))
- stockHistPojo.dateWeek = str(int(weekDatTime1))
- stockHistPojo.dateDay = str(int(dayDatTime))
- stockHistPojoList.append(stockHistPojo)
- i = 0
- key = "`realTime`,`dates`,`open`,`close`,`high`,`low`,`preclose`,`average`,`change`,`pctchange`,`volume`,`highlimit`,`amount`,`turn`,`tradestatus`,`lowlimit`,`amplitude`,`tnum`,`tafactor`,`fronttafactor`,`isststock`,`isxststock`,`date_year`,`date_month`,`date_week`"
- # 批量插入 每次插入500
- db = dbOperation(db_config.db_gupiao)
- while True :
- vlues = ""
- # print(i)
- # 如果数组数量大于500 截取前500个
- if len(stockHistPojoList) - i > 500 :
- # stockPojoList[i : 500] 等于java subList(i, 500)
- for stockHistPojo in stockHistPojoList[i : 500 + i]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399001_sz", key, vlues)
- i = i + 500
- else :
- # 如果数量小于500 并且不为数量不大于标记变量
- if len(stockHistPojoList) > i :
- for stockHistPojo in stockHistPojoList[i : len(stockHistPojoList)]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399001_sz", key, vlues)
- break
- db.close()
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("demo end")
-
- def toGet3(self):
- try:
- print("开始399006.SZ")
- getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- sql = "select dates dates from data_hist_399006_sz order by realTime desc limit 1"
- db = dbOperation(db_config.db_gupiao)
- dates = db.query_one(sql)
- db.close()
- if dates is not None :
- startDate = str(dates['dates'].replace("/", "-"))
- dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
- dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
- startDate = dd
- data = c.csd(
- '399006.SZ',
- "OPEN,CLOSE,HIGH,LOW,PRECLOSE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,AMPLITUDE",
- startDate,
- getDataTime,
- "Period=1,adjustflag=1,curtype=1,Ispandas=1")
- print(data)
- data.reset_index(inplace=True)
- jsonData = data.to_json()
- text = json.loads(jsonData)
- stockHistPojoList = []
- for i in range(len(text['CODES'])):
- stockHistPojo = StockHistPojo()
- stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
- if "None".strip() == str(text['OPEN'][str(i)]).strip():
- continue
- stockHistPojo.open = text['OPEN'][str(i)]
- stockHistPojo.close = text['CLOSE'][str(i)]
- stockHistPojo.high = text['HIGH'][str(i)]
- stockHistPojo.low = text['LOW'][str(i)]
- stockHistPojo.preclose = text['PRECLOSE'][str(i)]
- stockHistPojo.average = "0"
- stockHistPojo.change = text['CHANGE'][str(i)]
- stockHistPojo.pctchange = text['PCTCHANGE'][str(i)]
- stockHistPojo.volume = text['VOLUME'][str(i)]
- stockHistPojo.highlimit = "0"
- stockHistPojo.amount = text['AMOUNT'][str(i)]
- stockHistPojo.turn = text['TURN'][str(i)]
- stockHistPojo.tradestatus = "0"
- stockHistPojo.lowlimit = "0"
- stockHistPojo.amplitude = text['AMPLITUDE'][str(i)]
- stockHistPojo.tnum = "0"
- stockHistPojo.tafactor = "0"
- stockHistPojo.fronttafactor = "0"
- stockHistPojo.isststock = "0"
- stockHistPojo.isxststock = "0"
- stockHistPojo.dates = text['DATES'][str(i)]
- datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- year = time.localtime(datTime).tm_year # 获取年份
- yearDatTime = time.mktime(time.strptime(str(year) + "/01/01", "%Y/%m/%d"))
- month = time.localtime(datTime).tm_mon # 获取月份
- monthDatTime = ""
- if 10 > month:
- datTime = time.mktime(time.strptime(str(year) + "/0" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- else:
- datTime = time.mktime(time.strptime(str(year) + "/" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- weekDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- wday = time.localtime(weekDatTime).tm_wday # 获取周
- dt = datetime.datetime.strptime(stockHistPojo.dates, "%Y/%m/%d")
- out_date = (dt + datetime.timedelta(days=-wday)).strftime("%Y/%m/%d")
- weekDatTime1 = time.mktime(time.strptime(out_date, "%Y/%m/%d"))
- #获取日
- dayDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- stockHistPojo.dateYear = str(int(yearDatTime))
- stockHistPojo.dateMonth = str(int(monthDatTime))
- stockHistPojo.dateWeek = str(int(weekDatTime1))
- stockHistPojo.dateDay = str(int(dayDatTime))
- stockHistPojoList.append(stockHistPojo)
- i = 0
- key = "`realTime`,`dates`,`open`,`close`,`high`,`low`,`preclose`,`average`,`change`,`pctchange`,`volume`,`highlimit`,`amount`,`turn`,`tradestatus`,`lowlimit`,`amplitude`,`tnum`,`tafactor`,`fronttafactor`,`isststock`,`isxststock`,`date_year`,`date_month`,`date_week`"
- # 批量插入 每次插入500
- db = dbOperation(db_config.db_gupiao)
- while True :
- vlues = ""
- # print(i)
- # 如果数组数量大于500 截取前500个
- if len(stockHistPojoList) - i > 500 :
- # stockPojoList[i : 500] 等于java subList(i, 500)
- for stockHistPojo in stockHistPojoList[i : 500 + i]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399006_sz", key, vlues)
- i = i + 500
- else :
- # 如果数量小于500 并且不为数量不大于标记变量
- if len(stockHistPojoList) > i :
- for stockHistPojo in stockHistPojoList[i : len(stockHistPojoList)]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399006_sz", key, vlues)
- break
- db.close()
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("demo end")
-
- def toGet4(self):
- try:
- print("US30USD.FX")
- getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- sql = "select dates dates from data_hist_us30usd_fx order by realTime desc limit 1"
- db = dbOperation(db_config.db_gupiao)
- dates = db.query_one(sql)
- db.close()
- if dates is not None :
- startDate = str(dates['dates'].replace("/", "-"))
- dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
- dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
- startDate = dd
- else:
- startDate = '1991-01-01'
- data = c.csd(
- 'US30USD.FX',
- "OPEN,CLOSE,HIGH,LOW,PRECLOSE,CHANGE,PCTCHANGE",
- startDate,
- getDataTime,
- "Period=1,adjustflag=1,curtype=1,Ispandas=1")
- print(data)
- data.reset_index(inplace=True)
- jsonData = data.to_json()
- text = json.loads(jsonData)
- stockHistPojoList = []
- for i in range(len(text['CODES'])):
- stockHistPojo = StockHistPojo()
- stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
- if "None".strip() == str(text['OPEN'][str(i)]).strip():
- continue
- stockHistPojo.open = text['OPEN'][str(i)]
- stockHistPojo.close = text['CLOSE'][str(i)]
- stockHistPojo.high = text['HIGH'][str(i)]
- stockHistPojo.low = text['LOW'][str(i)]
- stockHistPojo.preclose = text['PRECLOSE'][str(i)]
- stockHistPojo.average = "0"
- stockHistPojo.change = text['CHANGE'][str(i)]
- stockHistPojo.pctchange = text['PCTCHANGE'][str(i)]
- stockHistPojo.volume = "0"
- stockHistPojo.highlimit = "0"
- stockHistPojo.amount = "0"
- stockHistPojo.turn = "0"
- stockHistPojo.tradestatus = "0"
- stockHistPojo.lowlimit = "0"
- stockHistPojo.amplitude = "0"
- stockHistPojo.tnum = "0"
- stockHistPojo.tafactor = "0"
- stockHistPojo.fronttafactor = "0"
- stockHistPojo.isststock = "0"
- stockHistPojo.isxststock = "0"
- stockHistPojo.dates = text['DATES'][str(i)]
- datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- year = time.localtime(datTime).tm_year # 获取年份
- yearDatTime = time.mktime(time.strptime(str(year) + "/01/01", "%Y/%m/%d"))
- month = time.localtime(datTime).tm_mon # 获取月份
- monthDatTime = ""
- if 10 > month:
- datTime = time.mktime(time.strptime(str(year) + "/0" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- else:
- datTime = time.mktime(time.strptime(str(year) + "/" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- weekDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- wday = time.localtime(weekDatTime).tm_wday # 获取周
- dt = datetime.datetime.strptime(stockHistPojo.dates, "%Y/%m/%d")
- out_date = (dt + datetime.timedelta(days=-wday)).strftime("%Y/%m/%d")
- weekDatTime1 = time.mktime(time.strptime(out_date, "%Y/%m/%d"))
- #获取日
- dayDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- stockHistPojo.dateYear = str(int(yearDatTime))
- stockHistPojo.dateMonth = str(int(monthDatTime))
- stockHistPojo.dateWeek = str(int(weekDatTime1))
- stockHistPojo.dateDay = str(int(dayDatTime))
- stockHistPojoList.append(stockHistPojo)
- i = 0
- key = "`realTime`,`dates`,`open`,`close`,`high`,`low`,`preclose`,`average`,`change`,`pctchange`,`volume`,`highlimit`,`amount`,`turn`,`tradestatus`,`lowlimit`,`amplitude`,`tnum`,`tafactor`,`fronttafactor`,`isststock`,`isxststock`,`date_year`,`date_month`,`date_week`"
- # 批量插入 每次插入500
- db = dbOperation(db_config.db_gupiao)
- while True :
- vlues = ""
- # print(i)
- # 如果数组数量大于500 截取前500个
- if len(stockHistPojoList) - i > 500 :
- # stockPojoList[i : 500] 等于java subList(i, 500)
- for stockHistPojo in stockHistPojoList[i : 500 + i]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399300_sz", key, vlues)
- i = i + 500
- else :
- # 如果数量小于500 并且不为数量不大于标记变量
- if len(stockHistPojoList) > i :
- for stockHistPojo in stockHistPojoList[i : len(stockHistPojoList)]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_399300_sz", key, vlues)
- break
- db.close()
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("demo end")
- def toGet5(self):
- try:
- db = dbOperation(db_config.db_gupiao)
- stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info_two where 1=1 and isf = 'T' ")
- getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- for stockPojo in stockPojoList:
- if(stockPojo['listDate'] == '待上市'):
- stockPojo['listDate'] = '1991-01-01'
- if stockPojo['listDate'] > getDataTime:
- continue
- isAdd = False
- sql = "select dates dates from data_hist_" + stockPojo['code'].replace(".", "_").lower() + " order by realTime desc limit 1"
- dates = db.query_one(sql)
- startDate = str(stockPojo['listDate'])
- if dates is not None :
- startDate = str(dates['dates'].replace("/", "-"))
- dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
- dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
- startDate = dd
- stockHistPojoList = []
- try :
- data = c.csd(
- str(stockPojo['code']),
- "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,AMOUNT",
- startDate,
- getDataTime,
- "Period=1,adjustflag=1,curtype=1,Ispandas=1")
- print("返回数据:" + str(data))
- data.reset_index(inplace=True)
- # print(data)
- jsonData = data.to_json()
- text = json.loads(jsonData)
- for i in range(len(text['CODES'])):
- isAdd = True
- stockHistPojo = StockHistPojo()
- stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
- stockHistPojo.open = text['OPEN'][str(i)]
- stockHistPojo.close = text['CLOSE'][str(i)]
- stockHistPojo.high = text['HIGH'][str(i)]
- stockHistPojo.low = text['LOW'][str(i)]
- stockHistPojo.preclose = text['PRECLOSE'][str(i)]
- if "None".strip() == str(text['AVERAGE'][str(i)]).strip():
- continue
- stockHistPojo.average = text['AVERAGE'][str(i)]
- stockHistPojo.change = text['CHANGE'][str(i)]
- stockHistPojo.pctchange = text['PCTCHANGE'][str(i)]
- stockHistPojo.volume = text['VOLUME'][str(i)]
- stockHistPojo.highlimit = "0"
- stockHistPojo.amount = text['AMOUNT'][str(i)]
- stockHistPojo.turn = "0"
- stockHistPojo.tradestatus = "0"
- stockHistPojo.lowlimit = "0"
- stockHistPojo.amplitude = "0"
- stockHistPojo.tnum = "0"
- stockHistPojo.tafactor = "0"
- stockHistPojo.fronttafactor = "0"
- stockHistPojo.isststock = "0"
- stockHistPojo.isxststock = "0"
- stockHistPojo.dates = text['DATES'][str(i)]
- datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- year = time.localtime(datTime).tm_year # 获取年份
- yearDatTime = time.mktime(time.strptime(str(year) + "/01/01", "%Y/%m/%d"))
- month = time.localtime(datTime).tm_mon # 获取月份
- monthDatTime = ""
- if 10 > month:
- datTime = time.mktime(time.strptime(str(year) + "/0" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- else:
- datTime = time.mktime(time.strptime(str(year) + "/" + str(month) + "/01", "%Y/%m/%d"))
- monthDatTime = int(datTime)
- weekDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- wday = time.localtime(weekDatTime).tm_wday # 获取周
- dt = datetime.datetime.strptime(stockHistPojo.dates, "%Y/%m/%d")
- out_date = (dt + datetime.timedelta(days=-wday)).strftime("%Y/%m/%d")
- weekDatTime1 = time.mktime(time.strptime(out_date, "%Y/%m/%d"))
- #获取日
- dayDatTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
- stockHistPojo.dateYear = str(int(yearDatTime))
- stockHistPojo.dateMonth = str(int(monthDatTime))
- stockHistPojo.dateWeek = str(int(weekDatTime1))
- stockHistPojo.dateDay = str(int(dayDatTime))
-
- stockHistPojoList.append(stockHistPojo)
- except Exception as ee:
- print("数据解析错误")
- i = 0
- key = "`realTime`,`dates`,`open`,`close`,`high`,`low`,`preclose`,`average`,`change`,`pctchange`,`volume`,`highlimit`,`amount`,`turn`,`tradestatus`,`lowlimit`,`amplitude`,`tnum`,`tafactor`,`fronttafactor`,`isststock`,`isxststock`,`date_year`,`date_month`,`date_week`"
- if len(stockHistPojoList) == 0:
- continue
- while True :
- vlues = ""
- # print(i)
- # 如果数组数量大于500 截取前500个
- if len(stockHistPojoList) - i > 500 :
- # stockPojoList[i : 500] 等于java subList(i, 500)
- for stockHistPojo in stockHistPojoList[i : 500 + i]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_" + stockPojo['code'].replace(".", "_").lower(), key, vlues)
- i = i + 500
- else :
- # 如果数量小于500 并且不为数量不大于标记变量
- if len(stockHistPojoList) > i :
- for stockHistPojo in stockHistPojoList[i : len(stockHistPojoList)]:
- vlues = vlues + "('"+str(stockHistPojo.dateDay)+"','"+str(stockHistPojo.dates)+"','" + str(stockHistPojo.open) + "','" + str(stockHistPojo.close) + "','" + str(stockHistPojo.high)+ "','" + str(stockHistPojo.low) + "','" + str(stockHistPojo.preclose) + "','" + str(stockHistPojo.average) + "','" + str(stockHistPojo.change) + "','" + str(stockHistPojo.pctchange) + "','" + str(stockHistPojo.volume) + "','" + str(stockHistPojo.highlimit) + "','" + str(stockHistPojo.amount) + "','" + str(stockHistPojo.turn) + "','" + str(stockHistPojo.tradestatus) + "','" + str(stockHistPojo.lowlimit) + "','" + str(stockHistPojo.amplitude) + "','" + str(stockHistPojo.tnum) + "','" + str(stockHistPojo.tafactor) + "','" + str(stockHistPojo.fronttafactor) + "','" + str(stockHistPojo.isststock) + "','" + str(stockHistPojo.isxststock) + "','" + str(stockHistPojo.dateYear) + "','" + str(stockHistPojo.dateMonth) + "','" + str(stockHistPojo.dateWeek) + "'),"
- vlues = vlues[:-1]
- db.batchInsert("data_hist_" + stockPojo['code'].replace(".", "_").lower(), key, vlues)
- break
- if isAdd:
- db.update("update t_stock_base_info set is_hist_add = 1 where id = " + str(stockPojo['id']))
- db.close()
- except Exception as ee:
- print("error >>>",ee)
- traceback.print_exc()
- else:
- print("获取额外指数基金等历史结束")
|