Overall Statistics |
Total Trades 270 Average Win 0.11% Average Loss -0.11% Compounding Annual Return 0.335% Drawdown 2.500% Expectancy 0.013 Net Profit 0.177% Sharpe Ratio 0.135 Probabilistic Sharpe Ratio 24.159% Loss Rate 50% Win Rate 50% Profit-Loss Ratio 1.04 Alpha 0.009 Beta -0.027 Annual Standard Deviation 0.022 Annual Variance 0 Information Ratio -2.023 Tracking Error 0.119 Treynor Ratio -0.109 Total Fees $0.00 |
class OpeningRangeBreakout(QCAlgorithm): openingBar = None def Initialize(self): self.SetStartDate(2019, 6, 1) self.SetEndDate(2019, 12, 10) self.SetCash(25000) self.AddForex("EURUSD", Resolution.Minute, Market.Oanda) self.Consolidate("EURUSD", timedelta(minutes=30), self.OnDataConsolidated) self.SetBrokerageModel(BrokerageName.OandaBrokerage) self.Schedule.On(self.DateRules.EveryDay("EURUSD"), self.TimeRules.At(13,30), self.ClosePositions) def OnData(self, data): if self.Portfolio.Invested or self.openingBar is None: return if data["EURUSD"].Close > self.openingBar.High: self.SetHoldings("EURUSD", 1) elif data["EURUSD"].Close < self.openingBar.Low: self.SetHoldings("EURUSD", -1) def OnDataConsolidated(self, bar): if bar.Time.hour == 9 and bar.Time.minute == 30: self.openingBar = bar def ClosePositions(self): self.openingBar = None self.Liquidate("EURUSD")