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();