In [ ]:
import sys
sys.path.insert(0, '../')
import logging
logging.basicConfig(level=logging.ERROR)
from datetime import datetime, timedelta, timezone
from cryptotrader.envs.trading import PaperTradingEnvironment, PaperTradingDataFeed
from cryptotrader.agents import apriori
from cryptotrader.exchange_api.poloniex import Poloniex
from cryptotrader.envs.utils import make_balance
from bokeh.io import output_notebook
output_notebook()
%matplotlib inline
In [ ]:
# Simulation Params
test_name = 'Paper_trading'
obs_steps = 3 # Observation steps
period = 5 # Observation period
pairs = ["USDT_BTC", "USDT_ETH", "USDT_LTC", "USDT_XRP", "USDT_XMR", "USDT_ETC", "USDT_ZEC", "USDT_DASH"] # Universe
fiat_symbol = 'USDT' # Quote symbol
# init_funds = make_balance(crypto=0.01, fiat=100.0, pairs=pairs) # Initial portfolio
init_funds = {"BTC":'0.120000000', # Manual input
"ETH":'0.12000000',
"LTC":'0.00000000',
"XRP":'0.00000000',
"XMR":"0.00000000",
"ETC":"0.00000000",
"ZEC":"0.00000000",
"DASH":"0.00000000",
"USDT":'100.00000000'}
# Email data for reporting
# email = 'email@gmail.com'
# password = 'password'
In [ ]:
# Env setup
tapi = Poloniex()
tapi = PaperTradingDataFeed(tapi, period, pairs, init_funds)
env = PaperTradingEnvironment(period, obs_steps, tapi, fiat_symbol, test_name)
# Email for report generation (Gmail only)
# env.set_email(email, password)
obs = env.reset()
In [ ]:
# Run simulation
agent = apriori.TestAgent(env.get_observation(True).shape)
# agent = apriori.PAMRTrader(sensitivity=0.04, C=2500, variant='PAMR2')
agent.trade(env, verbose=True)
In [ ]:
# Plot results
env.plot_results();