Overall Statistics |
Total Trades 14 Average Win 0.02% Average Loss -0.03% Compounding Annual Return -5.499% Drawdown 0.200% Expectancy -0.744 Net Profit -0.134% Sharpe Ratio -12.329 Loss Rate 86% Win Rate 14% Profit-Loss Ratio 0.79 Alpha -0.041 Beta -0.035 Annual Standard Deviation 0.004 Annual Variance 0 Information Ratio -5.631 Tracking Error 0.047 Treynor Ratio 1.365 Total Fees $14.00 |
import clr clr.AddReference("System") clr.AddReference("QuantConnect.Algorithm") clr.AddReference("QuantConnect.Indicators") clr.AddReference("QuantConnect.Common") from System import * from QuantConnect import * from QuantConnect.Algorithm import * from QuantConnect.Indicators import * import numpy as np import pandas as pd class TwiceADay(QCAlgorithm): def Initialize(self): self.SetCash(100000) # Start and end dates for the backtest. self.SetStartDate(2017,1,30) self.SetEndDate(2017,2,7) self.SetBenchmark("SPY") self.spy = self.AddEquity("SPY", Resolution.Minute) self.trade_symbols=['SPY'] # store fitted models here self.models=[] self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.AfterMarketOpen("SPY",15),Action(self.openingTrade)) self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.BeforeMarketClose("SPY",15),Action(self.closingTrade)) def openingTrade(self): for s in self.trade_symbols: ''' get a short history of daily data ''' data_daily=self.History(s,5,Resolution.Daily) df=[] for slice in data_daily: df.append([np.float(slice.Close),np.float(slice.Open),np.float(slice.High), np.float(slice.Low),np.float(slice.Volume)]) df=pd.DataFrame(df, columns=['c','o','h','l','v']) ''' sample signal ''' signal=(df.c-df.o).mean()/(df.h-df.l).mean() ''' place a trade ''' self.SetHoldings(s,signal) def closingTrade(self): for s in self.trade_symbols: if self.Portfolio[s].AbsoluteQuantity>0: self.SetHoldings(s,0.0) def OnOrderEvent(self, orderEvent): self.Log(str(orderEvent))