Overall Statistics
Total Trades
288
Average Win
0.06%
Average Loss
-0.05%
Compounding Annual Return
1.852%
Drawdown
0.700%
Expectancy
0.149
Net Profit
1.075%
Sharpe Ratio
1.539
Loss Rate
49%
Win Rate
51%
Profit-Loss Ratio
1.24
Alpha
-0.008
Beta
0.137
Annual Standard Deviation
0.012
Annual Variance
0
Information Ratio
-2.954
Tracking Error
0.058
Treynor Ratio
0.134
Total Fees
$288.00
#
#   QuantConnect Basic Template:
#	Fundamentals to using a QuantConnect algorithm.
#
#	You can view the QCAlgorithm base class on Github: 
#	https://github.com/QuantConnect/Lean/tree/master/Algorithm
#

import numpy as np
from datetime import timedelta

class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):
        # Set the cash we'd like to use for our backtest
        # This is ignored in live trading 
        self.SetCash(100000)
		
        # Start and end dates for the backtest.
        # These are ignored in live trading.
        self.SetStartDate(2017,1,1)
        self.SetEndDate(2017,8,1)
		
        # Add assets you'd like to see
        self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol
        self.rWindow = RollingWindow[TradeBar](2)
        
        consolidator = TradeBarConsolidator(timedelta(1))
        consolidator.DataConsolidated += self.OnDailyData
        self.SubscriptionManager.AddConsolidator(self.spy, consolidator)

    def OnDailyData(self, sender, bar):
        self.rWindow.Add(bar)

        # Place open orders:
        self.MarketOnOpenOrder(bar.Symbol, 100, "hello")


    def OnData(self, data):
        pass


    def OnOrderEvent(self, orderEvent):
        if orderEvent.Status == OrderStatus.Filled:
            order = self.Transactions.GetOrderById(orderEvent.OrderId)
            if order.Type == OrderType.MarketOnOpen:
                self.MarketOnCloseOrder(order.Symbol, -100, "goodbye")