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")