# 기간 필터링 training_data = training_data[(training_data['date'] >= '2017-07-01') & (training_data['date'] <= '2018-06-29')] training_data = training_data.dropna() # 차트 데이터 분리 features_chart_data = ['date', 'open', 'high', 'low', 'close', 'volume'] chart_data = training_data[features_chart_data] # 학습 데이터 분리 features_training_data = [ 'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio', 'close_lastclose_ratio', 'volume_lastvolume_ratio', 'close_ma5_ratio', 'volume_ma5_ratio', 'close_ma10_ratio', 'volume_ma10_ratio', 'close_ma20_ratio', 'close_ma60_ratio', 'volume_ma60_ratio', 'number_of_RA_patinets', 'number_of_HC_patients', 'number_of_articles' ] training_data = training_data[features_training_data] # 비 학습 투자 시뮬레이션 시작 policy_learner = PolicyLearner(stock_code=stock_code, chart_data=chart_data, training_data=training_data, min_trading_unit=1, max_trading_unit=3) policy_learner.trade(balance=10000000, model_path=os.path.join( settings.BASE_DIR, 'models/{}/model_{}.h5'.format( stock_code, model_ver)))
# 학습 데이터 분리 features_training_data = [ 'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio', 'close_lastclose_ratio', 'volume_lastvolume_ratio', 'close_ma5_ratio', 'volume_ma5_ratio', 'close_ma10_ratio', 'volume_ma10_ratio', 'close_ma20_ratio', 'volume_ma20_ratio', 'close_ma60_ratio', 'volume_ma60_ratio', 'close_ma120_ratio', 'volume_ma120_ratio' ] # 학습데이터 분리 training_data = training_data[features_training_data] # 강화학습 시작 policy_learner = PolicyLearner(stock_code=stock_code, chart_data=chart_data, training_data=training_data, min_trading_unit=1, max_trading_unit=2, delayed_reward_threshold=.2, lr=.001) policy_learner.fit(balance=10000000, num_epoches=1000, discount_factor=0, start_epsilon=.5) # 정책 신경망을 파일로 저장 model_dir = os.path.join(settings.BASE_DIR, 'models/%s' % stock_code) if not os.path.isdir(model_dir): os.makedirs(model_dir) model_path = os.path.join(model_dir, 'model_%s.h5' % timestr) policy_learner.policy_network.save_model(model_path)
coin_chart = data_manager.load_chart_data(os.path.join(settings.BASE_DIR,'data/chart_data/{}.csv'.format(coin_code))) prep_data = data_manager.preprocess_min(coin_chart) training_data = data_manager.build_training_data(prep_data) start_date = '2018-10-13 00:00:00' end_date = '2018-10-14 00:00:00' training_data = training_data[(training_data['date'] >= start_date)&(training_data['date'] < end_date)] training_data = training_data.dropna() features_chart_data = ['date', 'open', 'high', 'low', 'close', 'volume'] coin_chart = training_data[features_chart_data] features_training_data = [ 'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio', 'close_lastclose_ratio', 'volume_lastvolume_ratio', 'close_ma5_ratio', 'volume_ma5_ratio', 'close_ma10_ratio', 'volume_ma10_ratio', 'close_ma20_ratio', 'volume_ma20_ratio', 'close_ma60_ratio', 'volume_ma60_ratio', 'close_ma120_ratio', 'volume_ma120_ratio'] training_data = training_data[features_training_data] policy_learner = PolicyLearner( coin_code=COIN, coin_chart=coin_chart, training_data=training_data, min_trading_unit=0.001, max_trading_unit=0.01,start_date=start_date, end_date=end_date) policy_learner.trade(balance=BALANCE, model_path=os.path.join(settings.BASE_DIR, 'models/{}/model_{}.h5'.format(COIN,MODEL)))