| Overall Statistics |
|
Total Trades 147 Average Win 0.61% Average Loss -0.71% Compounding Annual Return 4.206% Drawdown 9.100% Expectancy 0.070 Net Profit 1.577% Sharpe Ratio 0.359 Probabilistic Sharpe Ratio 32.721% Loss Rate 42% Win Rate 58% Profit-Loss Ratio 0.86 Alpha 0.057 Beta -0.11 Annual Standard Deviation 0.11 Annual Variance 0.012 Information Ratio -0.892 Tracking Error 0.131 Treynor Ratio -0.36 Total Fees $543.90 |
class UncoupledVentralPrism(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2017, 1, 1)
self.SetEndDate(2017, 5, 19)
self.SetCash(100000)
equity = self.AddEquity("SPY")
future = self.AddFuture(Futures.Indices.SP500EMini)
future.SetFilter(TimeSpan.Zero, TimeSpan.FromDays(60))
self.sma5 = self.SMA(equity.Symbol, 5)
self.sma9 = self.SMA(equity.Symbol, 9)
def OnData(self, data):
if self.Portfolio.Invested:
return
for chain in data.FutureChains:
contracts = [contract for contract in chain.Value if contract.Expiry > self.Time + timedelta(days=5)]
sorted_contracts = sorted(contracts, key=lambda x: x.Expiry)
if len(sorted_contracts) == 0:
continue
contract = sorted_contracts[0]
quantity = 2 if self.sma5 > self.sma9 else -2
self.MarketOrder(contract.Symbol, quantity)
def OnEndOfDay(self):
self.Liquidate()