| 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")