Browse Source

初始化

z 4 năm trước cách đây
mục cha
commit
acac57216c

+ 71 - 64
BondHistData.py

@@ -20,9 +20,11 @@ class BondHistData:
     def toGet(self):
         try:
             db = dbOperation(db_config.db_zhaiquan)
-            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where list_date != '待上市'")
+            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where 1=1")
             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
@@ -34,76 +36,81 @@ class BondHistData:
                     dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
                     dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
                     startDate = dd
-                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)
                 stockHistPojoList = []
-                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)]
+                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"))
+                        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)
+                        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"))
+                        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"))
+                        #获取日
+                        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)
+                        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)
@@ -131,4 +138,4 @@ class BondHistData:
             print("error >>>",ee)
             traceback.print_exc()
         else:
-            print("demo end")
+            print("获取债券历史结束")

+ 25 - 4
BondStructure.py

@@ -13,6 +13,7 @@ import db_config
 import pandas as pd
 import json
 import array
+import requests
 
 class BondStructure:
 
@@ -60,10 +61,30 @@ class BondStructure:
 
                             # 往业务库中插入一条数据
                             plate = ""
-                            dbStock = dbOperationStock(db_config.db_stock)
-                            insertStockSql = "insert into stock(stock_name,stock_code,stock_type,stock_gid,stock_plate,is_show,stock_or_bond,add_time)values('" + stockPojo.name + "','" + stockPojo.code + "','" + stockPojo.code[-2:].lower()+ "','" + stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower() +"','" + plate + "',0,1,now())"
-                            dbStock.insert(insertStockSql)
-                            dbStock.close()
+                            # dbStock = dbOperationStock(db_config.db_stock)
+                            # insertStockSql = "insert into stock(stock_name,stock_code,stock_type,stock_gid,stock_plate,is_show,stock_or_bond,add_time)values('" + stockPojo.name + "','" + stockPojo.code + "','" + stockPojo.code[-2:].lower()+ "','" + stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower() +"','" + plate + "',0,1,now())"
+                            # dbStock.insert(insertStockSql)
+                            # dbStock.close()
+                            url = 'http://taifooksec.com/api/stock/addStock.do'
+                            stock = {}
+                            stock['stockName'] = stockPojo.name
+                            stock['stockCode'] = stockPojo.code
+                            stock['stockSpell'] = ''
+                            stock['stockType'] = stockPojo.code[-2:].lower()
+                            stock['stockGid'] = stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower()
+                            stock['stockPlate'] = plate
+                            stock['isLock'] = 0
+                            stock['isShow'] = 0
+                            stock['buyLimit'] = 1
+                            stock['isLimitUpBuy'] = 0
+                            stock['isStopTradingBuy'] = 0
+                            stock['nowPrice'] = ""
+                            stock['change'] = ""
+                            stock['pctChange'] = ""
+                            stock['stockOrBond'] = "1"
+                            stock['issueNum'] = ""
+                            headers = {'Content-Type': 'application/json'}
+                            response = requests.post(url=url, headers=headers, data=json.dumps(stock))
                         else :
                             print("表已存在不需要重新创建" + str(stockPojo.code))
                 db.close()

+ 16 - 2
ForexHistData.py

@@ -20,15 +20,27 @@ class ForexHistData:
         try:
             # csd使用范例
             db = dbOperation(db_config.db_waihui)
-            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where is_hist_add = 0 limit 1")
+            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where 1=1")
             getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
             for stockPojo in stockPojoList:
                 # print(str(stockPojo['code']))
                 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 0 == startDate.count("-"):
+                    startDate = startDate + "-01-01"
+                elif 1 == startDate.count("-"):
+                    startDate = startDate + "-01"
+                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(
                     str(stockPojo['code']), 
                     "CLOSE,OPEN,HIGH,LOW,PRECLOSE,CHANGE,PCTCHANGE", 
-                    str(stockPojo['listDate']), 
+                    startDate, 
                     getDataTime, 
                     "Period=1,adjustflag=1,curtype=1,Ispandas=1")
                 print(data)
@@ -39,6 +51,8 @@ class ForexHistData:
                 for i in range(len(text['CODES'])):
                     isAdd = True
                     stockHistPojo = StockHistPojo()
+                    if "None".strip() == str(text['OPEN'][str(i)]).strip():
+                        continue
                     stockHistPojo.codes = text['CODES'][str(i)].replace(".", "_")
                     stockHistPojo.open = text['OPEN'][str(i)]
                     stockHistPojo.close = text['CLOSE'][str(i)]

+ 10 - 9
ForexStructure.py

@@ -38,15 +38,16 @@ class ForexStructure:
                         # 数量不为0 表示已经插入过了
                         if int(countNum['count']) == 0:
                             # css使用范例
-                            cssData = c.css(stockPojo.code, "LISTDATE", "TradeDate="+getDataTime+", Ispandas=1")
-                            cssData.reset_index(inplace=True)
-                            jsonData = cssData.to_json()
-                            text = json.loads(jsonData)
-                            for i in range(len(text['LISTDATE'])):
-                                if(str(text['LISTDATE'][str(i)]) == "None"):
-                                    stockPojo.listDate = "待上市"
-                                else:
-                                    stockPojo.listDate = text['LISTDATE'][str(i)].replace("/", "-")
+                            # cssData = c.css(stockPojo.code, "LISTDATE", "TradeDate="+getDataTime+", Ispandas=1")
+                            # cssData.reset_index(inplace=True)
+                            # jsonData = cssData.to_json()
+                            # text = json.loads(jsonData)
+                            # for i in range(len(text['LISTDATE'])):
+                            #     if(str(text['LISTDATE'][str(i)]) == "None"):
+                            #         stockPojo.listDate = "待上市"
+                            #     else:
+                            #         stockPojo.listDate = text['LISTDATE'][str(i)].replace("/", "-")
+                            stockPojo.listDate = '1990-01-01'
                             db.insert("insert into t_stock_base_info(code,name,list_date) values('" + stockPojo.code + "', '" + stockPojo.name + "','" + stockPojo.listDate + "')")
                             # 创建实时表
                             restTableName = "data_rt_" + stockPojo.code.replace(".", "_").lower()

+ 15 - 2
FundHistData.py

@@ -16,19 +16,32 @@ from dbOperation import dbOperation
 
 # 基金
 class FundHistData:
+
     def toGet(self):
         try:
             # csd使用范例
             db = dbOperation(db_config.db_jijin)
-            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where is_hist_add = 0 and code not like '%OF' limit 1")
+            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where code not like '%OF'")
             getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
             for stockPojo in stockPojoList:
                 # print(str(stockPojo['code']))
                 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 0 == startDate.count("-"):
+                    startDate = startDate + "-01-01"
+                elif 1 == startDate.count("-"):
+                    startDate = startDate + "-01"
+                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(
                     str(stockPojo['code']), 
                     "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,DISCOUNT,DISCOUNTRATE", 
-                    str(stockPojo['listDate']), 
+                    startDate, 
                     getDataTime, 
                     "Period=1,adjustflag=1,curtype=1,Ispandas=1")
                 print(data)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 138 - 0
IndexHistData.py


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 69 - 0
IndexStructure.py


+ 67 - 62
SotckHistData.py

@@ -34,75 +34,80 @@ class SotckHistData:
                     dd = datetime.datetime.strptime(startDate, "%Y-%m-%d")
                     dd = (dd + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
                     startDate = dd
-                data = c.csd(
-                    str(stockPojo['code']), 
-                    "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,HIGHLIMIT,AMOUNT,TURN,TRADESTATUS,LOWLIMIT,AMPLITUDE,TNUM,TAFACTOR,FRONTTAFACTOR,ISSTSTOCK,ISXSTSTOCK", 
-                    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'])):
-                    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 = text['HIGHLIMIT'][str(i)]
-                    stockHistPojo.amount = text['AMOUNT'][str(i)]
-                    stockHistPojo.turn = text['TURN'][str(i)]
-                    stockHistPojo.tradestatus = text['TRADESTATUS'][str(i)]
-                    stockHistPojo.lowlimit = text['LOWLIMIT'][str(i)]
-                    stockHistPojo.amplitude = text['AMPLITUDE'][str(i)]
-                    stockHistPojo.tnum = text['TNUM'][str(i)]
-                    stockHistPojo.tafactor = text['TAFACTOR'][str(i)]
-                    stockHistPojo.fronttafactor = text['FRONTTAFACTOR'][str(i)]
-                    stockHistPojo.isststock = text['ISSTSTOCK'][str(i)]
-                    stockHistPojo.isxststock = text['ISXSTSTOCK'][str(i)]
-                    stockHistPojo.dates = text['DATES'][str(i)]
+                try :
+                    stockHistPojoList = []
+                    data = c.csd(
+                        str(stockPojo['code']), 
+                        "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,HIGHLIMIT,AMOUNT,TURN,TRADESTATUS,LOWLIMIT,AMPLITUDE,TNUM,TAFACTOR,FRONTTAFACTOR,ISSTSTOCK,ISXSTSTOCK", 
+                        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)
+                    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 = text['HIGHLIMIT'][str(i)]
+                        stockHistPojo.amount = text['AMOUNT'][str(i)]
+                        stockHistPojo.turn = text['TURN'][str(i)]
+                        stockHistPojo.tradestatus = text['TRADESTATUS'][str(i)]
+                        stockHistPojo.lowlimit = text['LOWLIMIT'][str(i)]
+                        stockHistPojo.amplitude = text['AMPLITUDE'][str(i)]
+                        stockHistPojo.tnum = text['TNUM'][str(i)]
+                        stockHistPojo.tafactor = text['TAFACTOR'][str(i)]
+                        stockHistPojo.fronttafactor = text['FRONTTAFACTOR'][str(i)]
+                        stockHistPojo.isststock = text['ISSTSTOCK'][str(i)]
+                        stockHistPojo.isxststock = text['ISXSTSTOCK'][str(i)]
+                        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"))
+                        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)
+                        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"))
+                        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"))
+                        #获取日
+                        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)
+                        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`"
                 # 批量插入 每次插入500
+                if len(stockHistPojoList) == 0:
+                    continue
                 while True :
                     vlues = ""
                     # print(i)
@@ -130,4 +135,4 @@ class SotckHistData:
             print("error >>>",ee)
             traceback.print_exc()
         else:
-            print("demo end")
+            print("获取股票历史结束")

+ 8 - 1
StockHkHistData.py

@@ -21,15 +21,22 @@ class StockHkHistData:
         try:
             # csd使用范例
             db = dbOperation(db_config.db_ganggu)
-            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where is_hist_add = 0 and list_date != '待上市' and list_date like '%-%-%'")
+            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where 1=1")
             getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
             for stockPojo in stockPojoList:
                 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 0 == startDate.count("-"):
+                    startDate = startDate + "-01-01"
+                elif 1 == startDate.count("-"):
+                    startDate = startDate + "-01"
                 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(
                     str(stockPojo['code']), 
                     "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,TAFACTOR,HOLDVOL,HOLDPCT", 

+ 25 - 4
StockStructure.py

@@ -13,6 +13,7 @@ import db_config
 import pandas as pd
 import json
 import array
+import requests
 
 class StockStructure:
 
@@ -66,10 +67,30 @@ class StockStructure:
                                 plate = '创业'
                             else:
                                 plate = '普通'
-                            dbStock = dbOperationStock(db_config.db_stock)
-                            insertStockSql = "insert into stock(stock_name,stock_code,stock_type,stock_gid,stock_plate,is_show,stock_or_bond,add_time)values('" + stockPojo.name + "','" + stockPojo.code + "','" + stockPojo.code[-2:].lower()+ "','" + stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower() +"','" + plate + "',0,0,now())"
-                            dbStock.insert(insertStockSql)
-                            dbStock.close()
+                            # dbStock = dbOperationStock(db_config.db_stock)
+                            # insertStockSql = "insert into stock(stock_name,stock_code,stock_type,stock_gid,stock_plate,is_show,stock_or_bond,add_time)values('" + stockPojo.name + "','" + stockPojo.code + "','" + stockPojo.code[-2:].lower()+ "','" + stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower() +"','" + plate + "',0,0,now())"
+                            # dbStock.insert(insertStockSql)
+                            # dbStock.close()
+                            url = 'http://taifooksec.com/api/stock/addStock.do'
+                            stock = {}
+                            stock['stockName'] = stockPojo.name
+                            stock['stockCode'] = stockPojo.code
+                            stock['stockSpell'] = ''
+                            stock['stockType'] = stockPojo.code[-2:].lower()
+                            stock['stockGid'] = stockPojo.code[-2:].lower() + stockPojo.code[:-3].lower()
+                            stock['stockPlate'] = plate
+                            stock['isLock'] = 0
+                            stock['isShow'] = 0
+                            stock['buyLimit'] = 1
+                            stock['isLimitUpBuy'] = 0
+                            stock['isStopTradingBuy'] = 0
+                            stock['nowPrice'] = ""
+                            stock['change'] = ""
+                            stock['pctChange'] = ""
+                            stock['stockOrBond'] = "0"
+                            stock['issueNum'] = ""
+                            headers = {'Content-Type': 'application/json'}
+                            response = requests.post(url=url, headers=headers, data=json.dumps(stock))
                         else :
                             print("表已存在不需要重新创建" + str(stockPojo.code))
                 db.close()

+ 12 - 5
StockUsaHistData.py

@@ -21,21 +21,28 @@ class StockUsaHistData:
         try:
             # csd使用范例
             db = dbOperation(db_config.db_meigu)
-            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where is_hist_add = 0 and list_date != '待上市' and list_date like '%-%-%'")
+            stockPojoList = db.query_list("select id, code, name, list_date listDate from t_stock_base_info where 1=1")
             getDataTime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
             for stockPojo in stockPojoList:
                 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 0 == startDate.count("-"):
+                    startDate = startDate + "-01-01"
+                elif 1 == startDate.count("-"):
+                    startDate = startDate + "-01"
                 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(
                     str(stockPojo['code']), 
-                    "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,TAFACTOR,HOLDVOL,HOLDPCT", 
+                    "OPEN,CLOSE,HIGH,LOW,PRECLOSE,AVERAGE,CHANGE,PCTCHANGE,VOLUME,AMOUNT,TURN,TAFACTOR", 
                     startDate, 
                     getDataTime, 
-                    "Period=1,adjustflag=1,curtype=1,Ispandas=1")
+                    "Period=1,adjustflag=1,curtype=1,Ispandas=1,market=0")
                 print(data)
                 data.reset_index(inplace=True)
                 jsonData = data.to_json()
@@ -68,8 +75,8 @@ class StockUsaHistData:
                     stockHistPojo.isststock = "0"
                     stockHistPojo.isxststock = "0"
                     stockHistPojo.dates = text['DATES'][str(i)]
-                    stockHistPojo.holdvol = text['HOLDVOL'][str(i)]
-                    stockHistPojo.holdpct = text['HOLDPCT'][str(i)]
+                    stockHistPojo.holdvol = "0"
+                    stockHistPojo.holdpct = "0"
 
                     datTime = time.mktime(time.strptime(stockHistPojo.dates, "%Y/%m/%d"))
                     year = time.localtime(datTime).tm_year # 获取年份

BIN
__pycache__/BondHistData.cpython-38.pyc


BIN
__pycache__/BondStructure.cpython-38.pyc


BIN
__pycache__/ForexHistData.cpython-38.pyc


BIN
__pycache__/ForexStructure.cpython-38.pyc


BIN
__pycache__/FundHistData.cpython-38.pyc


BIN
__pycache__/SotckHistData.cpython-38.pyc


BIN
__pycache__/StockHkHistData.cpython-38.pyc


BIN
__pycache__/StockStructure.cpython-38.pyc


BIN
__pycache__/StockUsaHistData.cpython-38.pyc


BIN
__pycache__/db_config.cpython-38.pyc


+ 3 - 3
db_config.py

@@ -3,10 +3,10 @@ port = 61196 # 端口,默认为3306
 user = 'root' # 用户名
 passwd='TestBicon@123' # 密码
 
-# host = 'hk-cdb-mw8z8p47.sql.tencentcdb.com' # 连接名称,默认127.0.0.1
-# port = 63791 # 端口,默认为3306
+# host = '127.0.0.1' # 连接名称,默认127.0.0.1
+# port = 3306 # 端口,默认为3306
 # user = 'root' # 用户名
-# passwd='TestBicon@123' # 密码
+# passwd='root' # 密码
 
 hoststock = 'bj-cdb-1j873yci.sql.tencentcdb.com' # 连接名称,默认127.0.0.1
 portstock = 61196 # 端口,默认为3306

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 109
getStockList_zhishuData.py


+ 13 - 11
startGetHistData.py

@@ -9,6 +9,7 @@ from BondHistData import BondHistData
 from FundHistData import FundHistData
 from ForexHistData import ForexHistData
 from TempIndexHistData import TempIndexHistData
+from IndexHistData import IndexHistData
 
 def mainCallback(quantdata):
     print ("mainCallback",str(quantdata))
@@ -62,18 +63,18 @@ try:
         exit()
     # asyncio.run(main())
 
-    tempIndexHistData = TempIndexHistData()
-    tempIndexHistData.toGet1()
-    tempIndexHistData.toGet2()
-    tempIndexHistData.toGet3()
+    # tempIndexHistData = TempIndexHistData()
+    # tempIndexHistData.toGet1()
+    # tempIndexHistData.toGet2()
+    # tempIndexHistData.toGet3()
 
-    # # 获取股票历史数据
-    # sotckHistData = SotckHistData()
-    # sotckHistData.toGet()
+    # 获取股票历史数据
+    sotckHistData = SotckHistData()
+    sotckHistData.toGet()
 
-    # # 获取债券历史数据
-    # bondHistData = BondHistData()
-    # bondHistData.toGet()
+    # 获取债券历史数据
+    bondHistData = BondHistData()
+    bondHistData.toGet()
 
     # # 获取美股历史数据
     # stockUsaHistData = StockUsaHistData()
@@ -92,7 +93,8 @@ try:
     # forexHistData.toGet()
 
     # 获取指数历史数据
-    print("缺少指数")
+    # indexHistData = IndexHistData()
+    # indexHistData.toGet()
     
 except Exception as ee:
     print("error >>>",ee)

+ 16 - 13
startGetStructure.py

@@ -9,6 +9,7 @@ from StockUsaStructure import StockUsaStructure
 from BondStructure import BondStructure
 from ForexStructure import ForexStructure
 from FundStructure import FundStructure
+from IndexStructure import IndexStructure
 
 def mainCallback(quantdata):
     print ("mainCallback",str(quantdata))
@@ -51,23 +52,25 @@ try:
     bondStructure = BondStructure()
     bondStructure.toGet()  
 
-    print("开始初始化=======港股")
-    stockHkStructure = StockHkStructure()
-    stockHkStructure.toGet()  
+    # print("开始初始化=======港股")
+    # stockHkStructure = StockHkStructure()
+    # stockHkStructure.toGet()  
 
-    print("开始初始化=======美股")
-    stockUsaStructure = StockUsaStructure()
-    stockUsaStructure.toGet()  
+    # print("开始初始化=======美股")
+    # stockUsaStructure = StockUsaStructure()
+    # stockUsaStructure.toGet()  
     
-    print("开始初始化=======外汇")
-    forexStructure = ForexStructure()
-    forexStructure.toGet()
+    # print("开始初始化=======外汇")
+    # forexStructure = ForexStructure()
+    # forexStructure.toGet()
 
-    print("开始初始化=======基金")
-    fundStructure = FundStructure()
-    fundStructure.toGet()
+    # print("开始初始化=======基金")
+    # fundStructure = FundStructure()
+    # fundStructure.toGet()
 
-    print("缺少指数")
+    print("开始初始化=======指数")
+    indexStructure = IndexStructure()
+    indexStructure.toGet()
 
 except Exception as ee:
     print("error >>>",ee)