Make sure to watch the video for this! Basically run this and grab your own backtestid as shown in the video. More info:
The get_backtest function provides programmatic access to the results of backtests run on the Quantopian platform. It takes a single parameter, the ID of a backtest for which results are desired.
You can find the ID of a backtest in the URL of its full results page, which will be of the form:
https://www.quantopian.com/algorithms/
You are only entitled to view the backtests that either:
In [ ]:
def initialize(context):
context.amzn = sid(16841)
context.ibm = sid(3766)
schedule_function(rebalance,
date_rules.every_day(),
time_rules.market_open())
schedule_function(record_vars,
date_rules.every_day(),
time_rules.market_close())
def rebalance(context,data):
order_target_percent(context.amzn, 0.5)
order_target_percent(context.ibm, -0.5)
def record_vars(context,data):
record(amzn_close=data.current(context.amzn, 'close'))
record(ibm_close=data.current(context.ibm, 'close'))
record(Leverage = context.account.leverage)
record(Exposure = context.account.net_leverage)
In [9]:
bt = get_backtest('5986b969dbab994fa4264696')
In [10]:
bt.algo_id
Out[10]:
In [11]:
bt.recorded_vars
Out[11]:
In [13]:
bt.recorded_vars['Leverage'].plot()
Out[13]:
In [14]:
bt.recorded_vars['Exposure'].plot()
Out[14]:
In [ ]:
def initialize(context):
context.amzn = sid(16841)
context.ibm = sid(3766)
schedule_function(rebalance,
date_rules.every_day(),
time_rules.market_open())
schedule_function(record_vars,
date_rules.every_day(),
time_rules.market_close())
def rebalance(context,data):
order_target_percent(context.ibm, -2.0)
order_target_percent(context.amzn, 2.0)
def record_vars(context,data):
record(amzn_close=data.current(context.amzn, 'close'))
record(ibm_close=data.current(context.ibm, 'close'))
record(Leverage = context.account.leverage)
record(Exposure = context.account.net_leverage)
In [15]:
bt = get_backtest('5986bd68ceda5554428a005b')
In [16]:
bt.recorded_vars['Leverage'].plot()
Out[16]:
http://www.zipline.io/appendix.html?highlight=leverage#zipline.api.set_max_leverage
In [ ]:
def initialize(context):
context.amzn = sid(16841)
context.ibm = sid(3766)
set_max_leverage(1.03)
schedule_function(rebalance,
date_rules.every_day(),
time_rules.market_open())
schedule_function(record_vars,
date_rules.every_day(),
time_rules.market_close())
def rebalance(context,data):
order_target_percent(context.ibm, -0.5)
order_target_percent(context.amzn, 0.5)
def record_vars(context,data):
record(amzn_close=data.current(context.amzn,'close'))
record(ibm_close=data.current(context.ibm,'close'))
record(Leverage = context.account.leverage)
record(Exposure = context.account.net_leverage)