Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 6985.446% Drawdown 22.500% Expectancy 0 Net Profit 108.631% Sharpe Ratio 23.75 Probabilistic Sharpe Ratio 92.928% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 18.204 Beta -2.235 Annual Standard Deviation 0.761 Annual Variance 0.578 Information Ratio 22.555 Tracking Error 0.798 Treynor Ratio -8.081 Total Fees $160.95 Estimated Strategy Capacity $140000000.00 Lowest Capacity Asset GC VOFJUCDY9XNH |
# Boot Camp (#1) from AlgorithmImports import * from math import floor class BasicTemplateFuturesAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2013, 12, 20) self.SetEndDate(2014, 2, 20) self.SetCash(1000000) self.gold = self.AddFuture(Futures.Metals.Gold) self.gold.SetFilter(0, 90) #1. Widen the free portfolio percentage to 30% to avoid margin calls for futures self.Settings.FreePortfolioValuePercentage = 0.30 def OnMarginCallWarning(self): self.Error("You received a margin call warning..") def OnData(self, slice): for chain in slice.FutureChains: self.popularContracts = [contract for contract in chain.Value if contract.OpenInterest > 1000] if len(self.popularContracts) == 0: continue sortedByOIContracts = sorted(self.popularContracts, key=lambda k : k.OpenInterest, reverse=True) self.liquidContract = sortedByOIContracts[0] if not self.Portfolio.Invested: #2. Delete the old code for manually calculating the position size (lines 30-33) #3. Replace the manually calculated math above with # the SetHoldings function to automatically calculate your position size self.SetHoldings(self.liquidContract.Symbol, 1)