def main(): df = pd.read_csv('dataset/btc_indexed2.csv') env = trading_env.make( env_id='training_v1', obs_data_len=50, step_len=1, df=df, fee=0.003, max_position=5, deal_col_name='close', return_transaction=True, sample_days=30, normalize_reward=True, feature_names=['open', 'high', 'low', 'close', 'volume']) env = wrapper.LogPriceFilterWrapper(env) logger.configure() pi = train(env, num_timesteps=1024 * 1024) print("training done.") print(pi) df2 = pd.read_csv('dataset/btc_indexed2_test.csv') env2 = trading_env.make( env_id='training_v1', obs_data_len=50, step_len=1, df=df, fee=0.003, max_position=5, deal_col_name='close', return_transaction=True, sample_days=30, normalize_reward=False, feature_names=['open', 'high', 'low', 'close', 'volume']) env2 = wrapper.LogPriceFilterWrapper(env2) evaluation(env2, pi, 50)
def make_env(): df = pd.read_csv('dataset/btc_indexed2_test.csv') env = trading_env.make( env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=0.003, max_position=5, deal_col_name='close', return_transaction=True, sample_days=30, normalize_reward=False, feature_names=['open', 'high', 'low', 'close', 'volume']) env = wrapper.LogPriceFilterWrapper(env) return env
def _thunk(): env = trading_env.make(custom_args=args, env_id='training_v1', obs_data_len=obs_data_len, step_len=step_len, df=df, fee=0.0, max_position=5, deal_col_name='Price', feature_names=[ 'Price', 'Volume', 'Ask_price', 'Bid_price', 'Ask_deal_vol', 'Bid_deal_vol', 'Bid/Ask_deal', 'Updown' ]) return env
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()
if __name__ == '__main__': """ df = pd.read_csv('../../dataset/kaggle_data/coinbaseUSD_1-min_data_2014-12-01_to_2018-01-08.csv') # Need serial number and datetime to be the column name. df.reset_index(inplace=True) df.rename(columns={'index':'serial_number', 'Timestamp':'datetime'}, inplace=True) env = trading_env.make(env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=0.1, max_position=5, deal_col_name='Close', return_transaction=False, feature_names=['Open', 'High', 'Low', 'Close']) """ df = pd.read_csv('../../dataset/btc_indexed2.csv') env = trading_env.make(env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=0.1, max_position=5, deal_col_name='close', return_transaction=False, sample_days=7, feature_names=['low', 'high', 'open', 'close', 'volume']) env.reset() # exploration strategy exp_schedule = LinearExploration(env, config.eps_begin, config.eps_end, config.eps_nsteps) # learning rate schedule lr_schedule = LinearSchedule(config.lr_begin, config.lr_end, config.lr_nsteps) # train model model = Linear(env, config) model.run(exp_schedule, lr_schedule)
#agent = MAAgent() #agent = RSIAgent() #agent = BBANDAgent() agent = RandomAgent() # make env df = pd.read_csv('dataset/btc_test.csv') print(df.describe()) env = trading_env.make( env_id='training_v1', obs_data_len=5, step_len=1, df=df, fee=0.003, max_position=5, deal_col_name='close', return_transaction=True, sample_days=30, normalize_price=True, reward_delta=False, feature_names=['low', 'high', 'open', 'close', 'volume']) #env.render() """ df = pd.read_csv('dataset/btc_indexed2.csv') print(df.describe()) env = trading_env.make(env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=0.003, max_position=5, sample_days = 30, return_transaction=False, deal_col_name='close', feature_names=['low', 'high',
import numpy as np import pandas as pd import trading_env from datetime import datetime st = datetime.now() ## need to refactor the testcase df = pd.read_csv('trading_env/test/data/SGXTWsample.csv', index_col=0, parse_dates=['datetime']) env = trading_env.make(env_id='training_v1', obs_data_len=256, step_len=128, df=df, fee=0.1, max_position=5, deal_col_name='Price', feature_names=['Price', 'Volume', 'Ask_price','Bid_price', 'Ask_deal_vol','Bid_deal_vol', 'Bid/Ask_deal', 'Updown'], fluc_div=100.0) env.reset() print(env.df_sample['datetime'].iloc[0].date()) for i in range(500): #print(i) state, reward, done, info = env.step(np.random.randint(3)) #print(state, reward) #env.render() if done: break print(datetime.now() - st)
df = pd.read_csv( 'dataset/kaggle_data/coinbaseUSD_1-min_data_2014-12-01_to_2018-01-08.csv') # Need serial number and datetime to be the column name. df.reset_index(inplace=True) df.rename(columns={ 'index': 'serial_number', 'Timestamp': 'datetime' }, inplace=True) env = trading_env.make(env_id='training_v1', obs_data_len=1, step_len=128, df=df, fee=0.1, max_position=5, deal_col_name='Close', return_transaction=False, feature_names=['Open', 'High', 'Low', 'Close']) env.reset() env.render() state, reward, done, info = env.step(random.randrange(3)) print('********') print(state) print('********') print(reward) print('********')
from datetime import datetime st = datetime.now() ## need to refactor the testcase df = pd.read_csv('trading_env/test/data/SGXTWsample.csv', index_col=0, parse_dates=['datetime']) env = trading_env.make(env_id='training_v1', obs_data_len=256, step_len=128, df=df, fee=0.1, max_position=5, deal_col_name='Price', feature_names=[ 'Price', 'Volume', 'Ask_price', 'Bid_price', 'Ask_deal_vol', 'Bid_deal_vol', 'Bid/Ask_deal', 'Updown' ], fluc_div=100.0) env.reset() print(env.df_sample['datetime'].iloc[0].date()) for i in range(500): #print(i) state, reward, done, info = env.step(np.random.randint(3)) #print(state, reward) #env.render() if done:
import random import numpy as np import pandas as pd import trading_env #df = pd.read_hdf('dataset/SGXTW.h5', 'STW') #df = pd.read_hdf('dataset/SGXTWsample.h5', 'STW') df = pd.read_csv('dataset/btc_indexed2.csv') print(df.describe()) env = trading_env.make( env_id='training_v1', obs_data_len=50, step_len=1, df=df, fee=0.1, max_position=5, deal_col_name='close', feature_names=['low', 'high', 'open', 'close', 'volume', 'datetime']) env.reset() env.render() state, reward, done, info = env.step(random.randrange(3)) ### randow choice action and show the transaction detail for i in range(200): print(i) state, reward, done, info = env.step(random.randrange(3)) print(state, reward) env.render()
try: df = pd.read_hdf('dataset/BITCOIN.h5', 'STW') except OSError as e: df = get_market_data('bitcoin') df = df.iloc[::-1] df = df.reset_index(drop=True) df['serial_number'] = 0 print(df.head()) print(df.tail()) env = trading_env.make(env_id='training_v1', obs_data_len=1, step_len=7, df=df, fee=0.1, max_position=1, deal_col_name='Close**', feature_names=['Close**', 'Volume', 'Market Cap']) env.reset() env.render() state, reward, done, info = env.step(random.randrange(3)) ### randow choice action and show the transaction detail for i in range(500): print(i) state, reward, done, info = env.step(random.randrange(3)) print(state, reward) env.render()
""" """ Use a different architecture for the Atari game. Please report the final result. Feel free to change the configuration. If so, please report your hyperparameters. """ if __name__ == '__main__': # make env df = pd.read_csv('dataset/btc_indexed2_train.csv') print(df.describe()) test_env = trading_env.make( env_id='training_v1', obs_data_len=1, step_len=1, df=pd.read_csv('dataset/btc_indexed2_test.csv'), fee=0.003, max_position=5, deal_col_name='close', return_transaction=True, sample_days=30, normalize_price=True, feature_names=['low', 'high', 'open', 'close', 'volume']) env = trading_env.make( env_id='training_v1', obs_data_len=1, step_len=1, df=df, fee=0.003, max_position=5, deal_col_name='close', return_transaction=True,