def get_ohlc(self, cnt=900): date_from = db.selectSingleValue( 'SELECT CAST(DATE AS CHAR) AS DATE FROM jazzdb.T_DATE_INDEXED WHERE CNT = "%s"' % (cnt)) df = db.selectpd( "SELECT STOCKCODE, CAST(DATE AS CHAR) AS DATE, A.OPEN, A.HIGH, A.LOW, A.CLOSE, B.VOLUME FROM jazzdb.T_STOCK_OHLC_DAY A JOIN jazzdb.T_STOCK_SND_DAY B USING(STOCKCODE, DATE) WHERE STOCKCODE = '%s' AND DATE > '%s'" % (self.stockcode, date_from)) return df
def loop(): for eachcode in list(codeDic.keys())[:98]: ret = db.selectSingleValue( 'SELECT COUNT(*) FROM jazzdb.T_STOCK_OHLC_MIN WHERE STOCKCODE = "%s" AND DATE = "%s"' % (eachcode, today)) # print(eachcode, ret) if ret == 0: rtdf = get_ohlc_min(eachcode, today) # print(rtdf) if isinstance(rtdf, pd.DataFrame) and len(rtdf) > 0: insert_dataframe(rtdf) time.sleep(0.22)
def get_stockcode_to_update(dt): # DB에서 [종목명,종목코드] 로 구성된 데이터셋을 받아옴. # dbUpdateDate = db.selectSingleValue('SELECT max(date) FROM test.t_stock_shares_info') query = ''' SELECT STOCKCODE FROM ( SELECT STOCKCODE, ROW_NUMBER() OVER (ORDER BY STOCKCODE DESC) AS RN FROM jazzdb.T_STOCK_CODE_MGMT A WHERE 1=1 AND A.STOCKCODE IN ( SELECT STOCKCODE FROM jazzdb.T_STOCK_OHLC_MIN WHERE DATE = '%s' GROUP BY STOCKCODE ) AND A.LISTED = 1 ) A WHERE RN =3 ''' % (dt) m = db.selectSingleValue(query) print(m) if m is None: m = '000000' query = """ SELECT A.STOCKCODE, A.STOCKNAME FROM jazzdb.T_STOCK_CODE_MGMT A WHERE 1=1 AND A.LISTED = 1 AND A.STOCKCODE > '%s' """ % (m) for eachRow in db.select(query): if (len(eachRow) > 0): itemDic[eachRow[1].upper()] = eachRow[0] codeDic[eachRow[0]] = eachRow[1].upper() print("[INFO] 종목명/종목코드를 메모리에 읽어왔습니다, 남은 종목 수: ", len(itemDic.keys()))
def gettoday(): td = db.selectSingleValue( 'SELECT cast(DATE AS CHAR) AS DATE FROM jazzdb.T_DATE_INDEXED WHERE CNT = 0' ) return td
def get_date_by_cnt(cnt): date = db.selectSingleValue( '''SELECT CAST(DATE AS CHAR) AS DATE FROM jazzdb.T_DATE_INDEXED WHERE CNT = "%s"''' % (cnt)) return date