Overall Statistics 
Total Trades
63
Average Win
0.03%
Average Loss
0.05%
Compounding Annual Return
19.765%
Drawdown
6.500%
Expectancy
0.337
Net Profit
1.596%
Sharpe Ratio
0.838
Loss Rate
23%
Win Rate
77%
ProfitLoss Ratio
0.73
Alpha
0.261
Beta
0.349
Annual Standard Deviation
0.184
Annual Variance
0.034
Information Ratio
0.684
Tracking Error
0.226
Treynor Ratio
0.441
Total Fees
$114.38

''' Sample simple algorithm ''' # The imports below aren't always required but are handy if needed # Import some datetime functions to use in scheduling from datetime import datetime, timedelta # Import numpy and pandas for all the powerful methods import numpy as np import pandas as pd # The following class and associated Initialize method is always required class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(context): # Set the initial cash, start, and end dates for backtesting context.SetCash(100000) context.SetStartDate(2015,10,10) context.SetEndDate(2015,11,10) # Let's make a place to store the equities we wish to trade # In this sample two leveraged ETFs # Also store any info about each of them (in this case weight) # Put it all into a dataframe called 'context.stocks' for easy access stocks = ['SPXL', 'TMF'] weights = [.6, .4] column_name = ['weight'] context.stocks = pd.DataFrame( index = stocks, data = weights, columns = column_name) # Subscribe to data for the equities we want to trade # Remember the index of the dataframe holds the stock symbols # Defaults to minute and fillforward for stock in context.stocks.index: context.AddEquity(stock) # Schedule trading at 10:00 am ET every day context.Schedule.On( context.DateRules.EveryDay(), context.TimeRules.At(10, 0), Action(context.enter_trades)) # Schedule logging at 4:01 pm ET every day context.Schedule.On( context.DateRules.EveryDay(), context.TimeRules.At(16, 1), Action(context.log_info)) def enter_trades(context): ''' This is a custom method added to do our trading In this case we simply want to keep a fixed ratio determned by our stored weight ''' # The 'SetHoldings' method is a convenient way to easily # submit trades when the portfolio weight is known # maybe not robust enough for live trading but great for backtests for stock in context.stocks.index: weight = context.stocks.get_value(stock, 'weight') context.SetHoldings(stock, weight) def log_info(context): ''' Log some info about algorithm Also an example of some of the ways to get data ''' cash = context.Portfolio.Cash portfolio_value = context.Portfolio.TotalPortfolioValue context.Log('cash: {:.2f} portfolio value: {:.2f} '. format(cash, portfolio_value)) for stock in context.stocks.index: last_price = context.Securities[stock].Price shares_held = context.Portfolio[stock].Quantity value = last_price * shares_held context.Log('holding {} shares of {} with total value of: {:.2f}'. format(shares_held, stock, value))