Overall Statistics |
Total Trades 307 Average Win 0.07% Average Loss 0.00% Compounding Annual Return -0.837% Drawdown 17.900% Expectancy 14.254 Net Profit -1.668% Sharpe Ratio -0.026 Probabilistic Sharpe Ratio 5.301% Loss Rate 16% Win Rate 84% Profit-Loss Ratio 17.23 Alpha -0.029 Beta 0.311 Annual Standard Deviation 0.093 Annual Variance 0.009 Information Ratio -0.63 Tracking Error 0.139 Treynor Ratio -0.008 Total Fees $0.00 Estimated Strategy Capacity $7500000.00 Lowest Capacity Asset EURUSD 8G |
class VirtualYellowTapir(QCAlgorithm): def Initialize(self): self.SetStartDate(2011, 1, 1) self.SetEndDate(2013, 1, 1) self.spy = self.AddForex("EURUSD", Resolution.Minute, Market.Oanda).Symbol self.prev = self.SMA("EURUSD", 2, Resolution.Minute) self.fastma = self.SMA("EURUSD", 20, Resolution.Minute) self.slowma = self.SMA("EURUSD", 200, Resolution.Minute) closing_prices = self.History(self.spy, 200, Resolution.Minute)["close"] for time, price in closing_prices.loc[self.spy].items(): self.fastma.Update(time, price) self.slowma.Update(time, price) previous_value = self.History(self.spy, 2, Resolution.Minute)["close"] for time, price in previous_value.loc[self.spy].items(): self.prev.Update(time, price) self.price_bought = 0 def OnData(self, data): if not self.slowma.IsReady or not self.fastma.IsReady or not self.prev.IsReady: return price = self.Securities[self.spy].Close if price > self.slowma.Current.Value and self.prev.Current.Value < self.slowma.Current.Value: if not self.Portfolio[self.spy].Invested: self.SetHoldings(self.spy, 1) self.price_bought = price elif price < self.fastma.Current.Value and self.prev.Current.Value > self.fastma.Current.Value and price > self.slowma.Current.Value and price > self.price_bought: if self.Portfolio[self.spy].Invested: self.Liquidate() elif price < self.slowma.Current.Value and self.prev.Current.Value > self.slowma.Current.Value and price > self.fastma.Current.Value and price > self.price_bought: if self.Portfolio[self.spy].Invested: self.Liquidate() self.Plot("Benchmark", "Fast", self.fastma.Current.Value) self.Plot("Benchmark", "Slow", self.slowma.Current.Value) self.Plot("Benchmark", "Price", price)