def __init__(self, stockcode, the_date=datetime.now().date(), the_date_index=0, condition_dict=cd.COND_PROD): ''' :param stockcode: 종목코드 :param the_date: 해당종목을 초기화할 날짜 :param the_date_index: ''' self.stockcode = stockcode self.stockname = db.selectSingleValue( 'SELECT STOCKNAME FROM jazzdb.T_STOCK_CODE_MGMT WHERE STOCKCODE = "%s"' % (stockcode)) self.the_date = the_date self.the_date_index = the_date_index # 최적화 필요 부분 self.sr_daily = pd.Series() self.df_ohlc_day = pd.DataFrame() self.df_ohlc_min = pd.DataFrame() self.df_ohlc_realtime = pd.DataFrame() self.df_ohlc_realtime_filled = pd.DataFrame() self.dict_prev = dict() # 직전거래일 및 최근 몇 거래일간의 정보를 담는 dictionary self.df_min_raw_naver = pd.DataFrame(columns=['체결시각', '체결가', '전일비', '매도', '매수', '거래량', '변동량']) self.OPEN = None self.condition_dict = condition_dict
def run(self): ret_msg = "%s\n" % (self.DATE) for eachtable in self.TABLE: q = f''' SELECT COUNT(DISTINCT STOCKCODE) FROM jazzdb.{eachtable} WHERE 1=1 AND DATE = "{self.DATE}" ''' ret = db.selectSingleValue(q) ret_msg = ret_msg + '%s \t %s\n' % (ret, eachtable) return ret_msg
def __init__(self, date_idx=55): ''' :params: istance_list: 사용할 instance_id 로 구성된 리스트 ''' # TELEGRAM ================================================ self.TOKEN = cf.TELEBOT_TOKEN self.RECEIVER = cf.TELEBOT_DEBUG self.BOT = telepot.Bot(self.TOKEN) # ========================================================= self.TABLE = [ 'T_STOCK_OHLC_DAY', 'T_STOCK_SHARES_INFO', 'T_STOCK_SND_DAY', 'T_STOCK_MA', 'T_STOCK_BB', 'T_STOCK_MC', 'T_STOCK_BB_EVENT', 'T_STOCK_DAY_SMAR', 'T_STOCK_SND_ANALYSIS_RESULT_TEMP', 'T_STOCK_SND_ANALYSIS_LONGTERM' ] # 'T_STOCK_OHLC_MIN'] self.DATE = db.selectSingleValue( 'SELECT DATE FROM jazzdb.T_DATE_INDEXED WHERE CNT = %s' % (date_idx)) print(self.DATE)
def index_to_date(idx): thedate = db.selectSingleValue("SELECT CAST(DATE AS CHAR) AS DATE FROM jazzdb.T_DATE_INDEXED WHERE 1=1 AND CNT = '%s'"%(idx)) return thedate
def date_to_index(date): cnt = db.selectSingleValue("SELECT CNT FROM jazzdb.T_DATE_INDEXED WHERE 1=1 AND DATE = '%s'"%(date)) return cnt
# 'PSMAR60', 'VSMA5', 'VSMA20', 'VSMA60', 'VSMAR5', 'VSMAR20', 'VSMAR60', 'BBU', 'BBL', 'BBS', 'BBW', 'BBP', 'K', # 'D', 'J', 'OBV', 'CLOSEDIFF', 'RSI', 'TRADINGVALUE'] # ['01D_DATE', '01D_OPEN', '01D_HIGH', '01D_LOW', '01D_CLOSE', '01D_VOLUME', '01D_BBP', '01D_BBW', '01D_BBU', # '01D_BBL', '01D_K', '01D_D', '01D_J', '01D_I1', '01D_I5', '01D_I20', '01D_I60', '01D_F1', '01D_F5', '01D_F20', # '01D_F60', '01D_S1', '01D_S5', '01D_S20', '01D_S60', '01D_YG1', '01D_YG5', '01D_YG20', '01D_YG60', '01D_T1', # '01D_T5', '01D_T20', '01D_T60', '01D_FN1', '01D_FN5', '01D_FN20', '01D_FN60', '01D_RSI', '05D_HIGH', '05D_LOW', # '60D_HIGH', '60D_LOW' # '20D_TOP20_MEAN_VOL', '20D_TOP20_MEAN_FLUCT', '20D_TOP20_MEAN_CLOSE'] cond = { 'TEST_DEBUG': { 'VSMAR5': ['BIGGER', 1], 'VSMAR20': ['BIGGER', 1.5], 'VSMAR60': ['BIGGER', 3], 'PSMAR60': ['BIGGER', 0.015], 'VOLUME': ['BIGGER', '20D_85QTILE_VOL'], 'TRADINGVALUE': ['BIGGER', 1] }, } the_date_index = 0 the_date = db.selectSingleValue( 'SELECT CAST(DATE AS CHAR) AS DATE FROM jazzdb.T_DATE_INDEXED WHERE CNT = %s' % (the_date_index)).replace('-', '') m = JazzstockCoreRealtimeNaver(stockcode_list=stockcode_list, the_date=the_date, the_date_index=the_date_index, condition_dict=cond) m.debug()