| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return -12.568% Drawdown 28.900% Expectancy 0 Net Profit -2.254% Sharpe Ratio 0.163 Probabilistic Sharpe Ratio 36.360% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.067 Beta 0.977 Annual Standard Deviation 0.695 Annual Variance 0.482 Information Ratio -2.819 Tracking Error 0.025 Treynor Ratio 0.116 Total Fees $1.00 |
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Indicators")
AddReference("QuantConnect.Common")
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Indicators import *
from QuantConnect.Python import PythonQuandl
from QuantConnect.Securities.Equity import EquityExchange
from datetime import datetime, timedelta
import math
class Testing(QCAlgorithm):
spy_bar = None
def Initialize(self):
self.SetStartDate(2020, 3, 1) # Set Start Date
self.SetEndDate(2020, 4, 30) # Set Start Date
self.SetCash(10000) # Set Strategy Cash
self.SetWarmup(timedelta(31))
self.AddEquity("SPY", Resolution.Minute)
#self.spy = self.Symbol("SPY")
#self.df = self.History(self.Symbol("SPY"), 62, Resolution.Daily)
self.Consolidate("SPY", CalendarType.Monthly, self.CalendarTradeBarHandler);
self.Securities["SPY"].SetDataNormalizationMode(DataNormalizationMode.Raw)
#spy_month_bar = self.spy
def CalendarTradeBarHandler(self, tradeBar):
self.Log(f'{self.Time} :: {tradeBar.Time} {tradeBar.Close} {tradeBar.High} {tradeBar.Low}')
self.spy_bar = tradeBar
#self.spy_month_high = self.spy_last_bar.High
#self.Log(self.spy_month_high)
#example of above output
#2020-04-01 00:00:00 : 2020-04-01 00:00:00 :: 2020-03-01 00:00:00 257.7
#close = tradeBar.Close
#def startOfMonth(self):
#spy_month_bar = self.History(self.spy, 1, self.CalendarTradeBarHandler)
#spy_month_bar = self.History(self.spy, 1, self.CalendarTradeBarHandler)
#self.spy_month_high = spy_month_bar.High
#self.Debug(str(self.spy_month_high))
def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
Arguments:
data: Slice object keyed by symbol containing the stock data
'''
#spy_month_high = slice[self.spy].High
#spy_month_bar = self.History(self.spy,1, tradeBar)
if self.Portfolio.Invested or self.spy_bar is None:
return
if not self.Portfolio.Invested and self.spy_bar.High > data["SPY"].Close:
self.SetHoldings("SPY", 1)
self.Log(f'{self.Time} :: {self.spy_bar.Time} {self.spy_bar.Close} {self.spy_bar.High} {self.spy_bar.Low}')
#spy_month_high = self.spy_month_high
#self.Log(self.spy_month_high)
#if close < 300:
#self.MarketOrder("SPY",6)