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
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 ]