Beispiel #1
0
    def let_train_invests(self, corps, start_no=1):
        """입력한 회사들에 대해서 학습시키고 모의투자를 실행한다."""

        if self.params.is_all_corps_model == True and self.params.remove_session_file == True:
            learning = Learning(self.params)
            learning.delete_learning_image()

        comp_rmses = []
        no = 1
        for index, corp_data in corps.iterrows():
            if no < start_no:
                no += 1
                continue
            corp_code = corp_data['종목코드']
            corp_name = corp_data['회사명']
            try:
                result = self.let_train_invest(corp_code, corp_name, no)
            except Exception as inst:
                print(inst)
                no += 1
                continue

            comp_rmses.append(result)
            if no % 10 == 0:
                df_comp_rmses = pd.DataFrame(comp_rmses,
                                             columns=self.result_columns)
                DataUtils.save_excel(df_comp_rmses,
                                     self.get_result_file_path())
            no += 1
Beispiel #2
0
    def let_train_invest(self, corp_code, corp_name, no):
        """입력한 회사에 대해서 학습시키고 모의투자를 실행한다."""

        stocks = Stocks(self.params)
        stock_data = stocks.get_stock_data(corp_code)

        invest_count = self.params.invest_count

        if invest_count == 0:
            rmse_val, train_cnt, data_params, dataX_last, scaler_close = self.let_train_only(
                corp_code, stock_data)
            last_money = self.params.invest_money
            all_invest_money = last_money
        else:
            if self.params.is_all_corps_model == False and self.params.remove_session_file == True:
                learning = Learning(self.params)
                learning.delete_learning_image(corp_code)

            invest = MockInvestment(self.params)
            rmse_val, train_cnt, data_params, dataX_last, scaler_close = self.let_train_only(
                corp_code, stock_data)
            last_money, last_predict, invest_predicts, all_invest_money = invest.let_invest(
                corp_code, dataX_last, data_params)

        if self.params.result_type == 'forcast':
            invest = MockInvestment(self.params)
            last_money, last_predict, invest_predicts, all_invest_money = \
                invest.let_invest(corp_code, dataX_last, data_params)
            last_date = stock_data.tail(1)['date'].to_string(index=False)
            last_close_money, last_pred_money = invest.get_real_money(
                data_params, scaler_close, last_predict)
            last_pred_ratio = (last_pred_money -
                               last_close_money) / last_close_money * 100
            last_pred_ratio = "{:.2f}".format(last_pred_ratio) + "%"
            print(no, last_date, corp_code, corp_name, rmse_val, train_cnt,
                  last_close_money, last_pred_money, last_pred_ratio)
            return [
                no, last_date, corp_code, corp_name, rmse_val, train_cnt,
                last_close_money, last_pred_money, last_pred_ratio
            ]
        else:
            print(no, corp_code, corp_name, rmse_val, last_money,
                  all_invest_money, train_cnt)
            return [
                no, corp_code, corp_name, rmse_val, last_money,
                all_invest_money, train_cnt
            ]