stock_exchange = stock_exchange.StockExchange(10000.0) training_trader = DeepQLearningTrader(ObscureExpert(Company.A), ObscureExpert(Company.B), False, True) # Save the final portfolio values per episode final_values_training, final_values_test = [], [] for i in range(EPISODES): logger.info(f"DQL Trader: Starting training episode {i}") # train the net stock_exchange.run(training_data, [training_trader]) training_trader.save_trained_model() final_values_training.append( stock_exchange.get_final_portfolio_value(training_trader)) # test the trained net testing_trader = DeepQLearningTrader(ObscureExpert(Company.A), ObscureExpert(Company.B), True, False) stock_exchange.run(testing_data, [testing_trader]) final_values_test.append( stock_exchange.get_final_portfolio_value(testing_trader)) logger.info( f"DQL Trader: Finished training episode {i}, " f"final portfolio value training {final_values_training[-1]} vs. " f"final portfolio value test {final_values_test[-1]}") from matplotlib import pyplot as plt
#print(f'training_data[Company.A].get_row_count(): {training_data[Company.A].get_row_count()}') # Create the stock exchange and one traders to train the net stock_exchange = stock_exchange.StockExchange(10000.0) training_trader = DeepQLearningTrader(ObscureExpert(Company.A), ObscureExpert(Company.B), False, True) # Save the final portfolio values per episode final_values_training, final_values_test = [], [] for i in range(EPISODES): logger.info(f"DQL Trader: Starting training episode {i}") # train the net stock_exchange.run(training_data, [training_trader]) training_trader.save_trained_model() final_values_training.append(stock_exchange.get_final_portfolio_value(training_trader)) # test the trained net testing_trader = DeepQLearningTrader(ObscureExpert(Company.A), ObscureExpert(Company.B), True, False) stock_exchange.run(testing_data, [testing_trader]) final_values_test.append(stock_exchange.get_final_portfolio_value(testing_trader)) logger.info(f"DQL Trader: Finished training episode {i}, " f"final portfolio value training {final_values_training[-1]} vs. " f"final portfolio value test {final_values_test[-1]}") from matplotlib import pyplot as plt plt.figure(figsize=(7, 5)) plt.plot(final_values_training, label='training', color="black") plt.plot(final_values_test, label='test', color="green")