The trading environment
As we have a lot of code (methods, utility classes in PTAN, and so on) that is supposed to work with OpenAI Gym, we will implement the trading functionality following Gym's Env
class API, which should be familiar to you. Our environment is implemented in the StocksEnv
class in the Chapter10/lib/environ.py
module. It uses several internal classes to keep its state and encode observations. Let's first look at the public API class:
import gym
import gym.spaces
from gym.utils import seeding
from gym.envs.registration import EnvSpec
import enum
import numpy as np
from . import data
class Actions(enum.Enum):
Skip = 0
Buy = 1
Close = 2
We encode all available actions as an enumerator's fields. We support a very simple set of actions with only three options: do nothing, buy a single share, and close the existing position.
class StocksEnv(gym.Env):
metadata = {'render.modes': ...