Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
test

test

3 responses

kazuya,

Try this 9 liner.

def initialize(context):  
     schedule_function(trade, date_rules.every_day(), time_rules.market_open(minutes = 150))  
def trade(context,data):  
    assets, wt, lev = symbols('AAPL', 'TLT', 'AMZN'), [0.3, 0.4, 0.3], 1.0  
    if  get_open_orders(): return  
    for i in range(len(assets)):  
        if data.can_trade(assets[i]) :  
            order_target_percent(assets[i], lev*wt[i])  
    record(leverage = context.account.leverage)  

That's recording leverage from yesterday's trades (same minute and today's orders have only been entered and not yet executed) so here it is charting leverage a minute later after the orders have gone through. A key thing to understand to stay under the leverage limit in the contest.

The common practice of recording leverage once a day has only about a 1 in 390 chance of letting us know what we tend to be interested in: How high is the leverage in this algo. Here, a thinly traded stock is substituted in VY code while watching for highs.

def initialize(context):  
    schedule_function(trade, date_rules.every_day(), time_rules.market_open(minutes = 150))  
    schedule_function(chart, date_rules.every_day(), time_rules.market_open(minutes = 151))  
    context.mx_lvrg = 0

def trade(context,data):  
    assets, wt, lev = symbols('ABGB', 'TLT', 'AMZN'), [0.3, 0.4, 0.3], 1.0  
    for i in range(len(assets)):  
        if not data.can_trade(assets[i]): continue  
        order_target_percent(assets[i], lev*wt[i])

def chart(context,data):  
    record(leverage = context.account.leverage)

def handle_data(context, data):  
    if context.account.leverage > context.mx_lvrg:  
        context.mx_lvrg = context.account.leverage  
        record(MxLv = context.mx_lvrg)       # Record maximum leverage encountered  

https://www.quantopian.com/posts/max-intraday-leverage