Ejemplo n.º 1
0
    def collect_stock_info(code_num):
        page_df = stockUtil.get_page_first_data(stockUtil.get_stock_info_url(code_num), 1)
        page_df = page_df.set_index("날짜")
        df = DbMgr.get_stock_limit_data(code_num, 130)

        for today in TodayStrList:
            df.loc[today] = page_df.loc[today]
            df.ix[today, "MA5"] = df["종가"].rolling(window=5).mean()[today]
            df.ix[today, "MA20"] = df["종가"].rolling(window=20).mean()[today]
            df.ix[today, "MA60"] = df["종가"].rolling(window=60).mean()[today]
            df.ix[today, "MA120"] = df["종가"].rolling(window=120).mean()[today]
            df["MA5"].fillna(0, inplace=True)
            df["MA20"].fillna(0, inplace=True)
            df["MA60"].fillna(0, inplace=True)
            df["MA120"].fillna(0, inplace=True)

        page_df_list = stockUtil.get_page_data(stockUtil.get_stock_info_frgn_url(code_num), 1)
        df_frgn = pd.DataFrame()

        if len(page_df_list) > 2:
            page_df = page_df_list[2]
            df_frgn = df_frgn.append(page_df.dropna(), ignore_index=True)
            df_frgn = df_frgn.set_index("날짜")

            for child in TodayStrList:
                df.ix[child, "등락률"] = df_frgn.ix[child, "등락률"]
                df.ix[child, "기관"] = df_frgn.ix[child, "기관"]
                df.ix[child, "외국인"] = df_frgn.ix[child, "외국인"]
                df.ix[child, "보유주수"] = df_frgn.ix[child, "Unnamed: 7"]
                df.ix[child, "보유율"] = df_frgn.ix[child, "Unnamed: 8"]

        df[["종가", "전일비", "시가", "고가", "저가", "거래량", "MA5", "MA20", "MA60", "MA120"]] = \
            df[["종가", "전일비", "시가", "고가", "저가", "거래량", "MA5", "MA20", "MA60", "MA120"]].astype(int)

        for today in TodayStrList:
            stock_info = df.loc[today]
            DbMgr.insert_into_stock_info_db(code_num, today, int(stock_info["종가"]), int(stock_info["전일비"]),
                                            int(stock_info["시가"]), int(stock_info["고가"]), int(stock_info["저가"]),
                                            int(stock_info["거래량"]), stock_info["등락률"], stock_info["기관"],
                                            stock_info["외국인"], stock_info["보유주수"], stock_info["보유율"],
                                            int(stock_info["MA5"]), int(stock_info["MA20"]), int(stock_info["MA60"]),
                                            int(stock_info["MA120"]))
Ejemplo n.º 2
0
    def collect_total_stock_info(code_num):
        DbMgr.create_stock_info_db(code_num)
        df = stockUtil.get_data(stockUtil.get_stock_info_url(code_num), "날짜")
        df.insert(len(df.columns), "MA5", df["종가"].rolling(window=5).mean())
        df.insert(len(df.columns), "MA20", df["종가"].rolling(window=20).mean())
        df.insert(len(df.columns), "MA60", df["종가"].rolling(window=60).mean())
        df.insert(len(df.columns), "MA120", df["종가"].rolling(window=120).mean())
        df["MA5"].fillna(0, inplace=True)
        df["MA20"].fillna(0, inplace=True)
        df["MA60"].fillna(0, inplace=True)
        df["MA120"].fillna(0, inplace=True)
        df[["MA5", "MA20", "MA60", "MA120"]] = df[["MA5", "MA20", "MA60", "MA120"]].astype(int)
        df_frgn = stockUtil.get_frgn_data(stockUtil.get_stock_info_frgn_url(code_num), "날짜")

        for index, row in df.iterrows():
            stock_date = row["날짜"]

            # if stock_date in TodayStrList:
            # if True:
            stock_close = row["종가"]
            stock_diff = row["전일비"]
            stock_open = row["시가"]
            stock_high = row["고가"]
            stock_low = row["저가"]
            stock_volume = row["거래량"]
            ma5 = row["MA5"]
            ma20 = row["MA20"]
            ma60 = row["MA60"]
            ma120 = row["MA120"]

            if stock_date in df_frgn.index:
                frgn_info = df_frgn.loc[stock_date]
                DbMgr.insert_into_stock_info_db(code_num, stock_date, stock_close, stock_diff, stock_open,
                                                stock_high, stock_low, stock_volume, frgn_info["등락률"],
                                                frgn_info["기관"], frgn_info["외국인"], frgn_info["Unnamed: 7"],
                                                frgn_info["Unnamed: 8"], ma5, ma20, ma60, ma120)
            else:
                DbMgr.insert_into_stock_info_db(code_num, stock_date, stock_close, stock_diff, stock_open,
                                                stock_high, stock_low, stock_volume, "0", 0, 0, 0, "0", ma5, ma20,
                                                ma60, ma120)