def main(args): mode = args.mode # mode = 'test' # codes = args.codes codes = ["600036"] # codes = ["AU88", "RB88", "CU88", "AL88"] # codes = ["T9999"] market = args.market # market = 'future' # episode = args.episode episode = 200 # training_data_ratio = 0.5 training_data_ratio = args.training_data_ratio model_name = os.path.basename(__file__).split('.')[0] env = Market( codes, start_date="2008-01-01", end_date="2019-07-19", **{ "market": market, # "use_sequence": True, # "mix_index_state": True, "logger": generate_market_logger(model_name), "training_data_ratio": training_data_ratio, }) algorithm = Algorithm( tf.Session(config=config), env, env.trader.action_space, env.data_dim, **{ "mode": mode, "episodes": episode, "enable_saver": True, "learning_rate": 0.003, "enable_summary_writer": True, "logger": generate_algorithm_logger(model_name), "save_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"), "summary_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"), }) algorithm.run() algorithm.eval() algorithm.plot()
def __init__(self, session, env, **options): self.session = session self.env = env self.total_step = 0 try: self.learning_rate_decay = options['learning_rate_decay'] except KeyError: self.learning_rate_decay = 0.99 try: self.learning_rate = options['learning_rate'] except KeyError: self.learning_rate = 0.001 try: self.batch_size = options['batch_size'] except KeyError: self.batch_size = 32 try: self.logger = options['logger'] except KeyError: self.logger = generate_algorithm_logger('model') try: self.enable_saver = options["enable_saver"] except KeyError: self.enable_saver = False try: self.enable_summary_writer = options['enable_summary_writer'] except KeyError: self.enable_summary_writer = False try: self.save_path = options["save_path"] except KeyError: self.save_path = None try: self.summary_path = options["summary_path"] except KeyError: self.summary_path = None try: self.mode = options['mode'] except KeyError: self.mode = 'train'
def __init__(self, session, env, **options): self.session = session self.env = env self.total_step = 0 try: self.learning_rate = options['learning_rate'] except KeyError: self.learning_rate = 0.001 try: self.batch_size = options['batch_size'] except KeyError: self.batch_size = 32 try: self.logger = options['logger'] except KeyError: self.logger = generate_algorithm_logger('model') try: self.enable_saver = options["enable_saver"] except KeyError: self.enable_saver = False try: self.enable_summary_writer = options['enable_summary_writer'] except KeyError: self.enable_summary_writer = False try: self.save_path = options["save_path"] # lstm中,在Algorithm的初始化的时候传入了"save_path":os.path.join(CHECKPOINTS_DIR, "SL", model_name, market, "model" except KeyError: self.save_path = None try: self.summary_path = options["summary_path"] except KeyError: self.summary_path = None try: self.mode = options['mode'] except KeyError: self.mode = 'train'
def main(args): mode = args.mode #mode = 'test' codes = args.codes #codes = ["600036"] #codes = ["eos_usdt"] # codes = ["600036", "601998"] # codes = ["AU88", "RB88", "CU88", "AL88"] # codes = ["T9999"] market = 'k15m' #market = args.market # market = 'future' # episode = args.episode episode = 1000 training_data_ratio = 0.95 # training_data_ratio = args.training_data_ratio #pdb.set_trace() model_name = os.path.basename(__file__).split('.')[0] #env = Market(codes, start_date="2018-06-04", end_date="2018-06-12", **{ env = Market(codes, start_date=args.start, end_date=args.end, **{ "market": market, "mix_index_state": False, "logger": generate_market_logger(model_name), "training_data_ratio": training_data_ratio, }) algorithm = Algorithm(tf.Session(config=config), env, env.trader.action_space, env.data_dim, **{ "mode": mode, "episodes": episode, "enable_saver": True, "learning_rate": 0.003, "enable_summary_writer": True, "logger": generate_algorithm_logger(model_name), "save_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"), "summary_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"), }) algorithm.run() algorithm.eval() algorithm.plot()
def generator(code, start_date, end_date, market="stock", mode='trade'): training_data_ratio = 0.8 episode = 500 env = Market( code, start_date=start_date, end_date=end_date, **{ "market": market, # "use_sequence": True, "logger": generate_market_logger(model_name), "training_data_ratio": training_data_ratio, }) return Algorithm( tf.Session(config=config), env, env.trader.action_space, env.data_dim, **{ "mode": mode, "episodes": episode, "enable_saver": True, "learning_rate": 0.003, "enable_summary_writer": True, "logger": generate_algorithm_logger(model_name), "save_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"), "summary_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"), })
def main(): # mode = args.mode mode = 'test' #'train' # codes = args.codes codes = ["AU88", "RB88", "CU88", "AL88"] # codes = ["T9999"] # market = args.market market = 'future' # episode = args.episode episode = 2000 training_data_ratio = 0.5 # training_data_ratio = args.training_data_ratio model_name = os.path.basename(__file__).split('.')[0] df = pd.read_csv('TXF1_5m.csv', parse_dates=[['Date', 'Time']]) df = df.iloc[-10001:] df.reset_index(drop=True, inplace=True) df = df.rename(columns={'Date_Time': 'datetime'}) df['serial_number'] = df.index # df['serial_number'] = df['serial_number'] - df['serial_number'].iloc[0] env = trading_env.make( env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=2, max_position=1, deal_col_name='Price', feature_names=[ 'Price', 'Volume', # 'datetime' , 'Open', 'serial_number', 'High', 'Low' ], fluc_div=100.0) # env = Market(codes, start_date="2012-01-01", end_date="2018-01-01", **{ # "market": market, # # "use_sequence": True, # "logger": generate_market_logger(model_name), # "training_data_ratio": training_data_ratio, # }) algorithm = Algorithm( tf.Session(config=config), env, 1, 5, **{ "mode": mode, "episodes": episode, "enable_saver": True, "learning_rate": 0.003, "batch_size": 1320, "enable_summary_writer": True, "logger": generate_algorithm_logger(model_name), "save_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"), "summary_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"), }) algorithm.run() algorithm.eval()