| Overall Statistics |
|
Total Trades 482 Average Win 0.02% Average Loss -0.01% Compounding Annual Return -0.853% Drawdown 11.500% Expectancy -0.534 Net Profit -1.136% Sharpe Ratio -0.022 Probabilistic Sharpe Ratio 11.923% Loss Rate 80% Win Rate 20% Profit-Loss Ratio 1.36 Alpha 0.057 Beta -0.377 Annual Standard Deviation 0.111 Annual Variance 0.012 Information Ratio -0.406 Tracking Error 0.394 Treynor Ratio 0.006 Total Fees $482.00 |
# these imports are no longer needed
# from clr import AddReference
# AddReference("System")
# AddReference("QuantConnect.Algorithm")
# AddReference("QuantConnect.Common")
# AddReference("QuantConnect.Indicators")
from System import *
from QuantConnect import *
from System.Linq import *
from QuantConnect.Indicators import *
from QuantConnect.Data.Market import *
from System.Collections.Concurrent import *
from QuantConnect.Data.UniverseSelection import *
from QuantConnect.Indicators.CandlestickPatterns import *
from QuantConnect.Data.Consolidators import *
from datetime import timedelta, datetime
import numpy as np
import sys
import decimal
class fifteenmincandle ( QCAlgorithm):
def Initialize(self):
self.Debug("step2")
self.SetCash(1000000)
self.SetStartDate(2008,1,22)
self.SetEndDate(2020,5,23)
self.UniverseSettings.Resolution = Resolution.Minute
equity = self.AddEquity("SPY", Resolution.Minute)
self.spy = equity.Symbol
periods = decimal.Decimal(1)
# self.pattern = self.CandlestickPatterns.Harami(self.spy)
self.SetWarmUp(timedelta(minutes=1))
self.current=self.SetStartDate(2019,1,22)
#self.Consolidate("SPY", timedelta(minutes=15)) #,self.OnDataConsolidated
#fifteenMinuteConsolidator.DataConsolidated += self.fifteenMinuteBarHandler
self.SetTimeZone("America/New_York")
#self.Schedule.On(self.Dat)
#self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.BeforeMarketClose('SPY', 15), self.BuySpy)
thirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=15))
def OnData(self,data):
#self.Log("Time: {}" . format(slice.Time) )
#self.Debug("On Data start")
self.Debug("h" + str(self.Time.hour))
self.Debug("M" + str(self.Time.minute))
if (self.IsWarmingUp): return
#self.Debug(self.spy.Close)
if self.Time.hour == 9 and self.Time.minute == 45:
if data["SPY"].Close>data["SPY"].Open:
self.MarketOrder("SPY", 10)
# self.Beforeendofday(self.MarketOrder("SPY", -1))
# change 3 to 15 (military time)
if self.Time.hour == 15 and self.Time.minute == 45:
# possibly use self.Liquidate('SPY') instead?
self.MarketOrder("SPY", -10)
# def OnDataConsolidated(self, bar):
# if bar.Time.hour == 9 and bar.Time.minute == 30:
# self.openingBar = bar