Overall Statistics |
Total Trades 1387 Average Win 0.48% Average Loss -0.29% Compounding Annual Return -90.172% Drawdown 33.400% Expectancy -0.191 Net Profit -32.140% Sharpe Ratio -4.087 Probabilistic Sharpe Ratio 0.000% Loss Rate 69% Win Rate 31% Profit-Loss Ratio 1.65 Alpha -0.877 Beta 0.233 Annual Standard Deviation 0.205 Annual Variance 0.042 Information Ratio -4.224 Tracking Error 0.237 Treynor Ratio -3.594 Total Fees $0.00 Estimated Strategy Capacity $390000.00 Lowest Capacity Asset EURUSD 8G |
class BasicTemplateAlgorithm(QCAlgorithm): '''Basic template algorithm simply initializes the date range and cash''' def Initialize(self): '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2020,8,1) #Set Start Date self.SetEndDate(2020,9,30) #Set End Date self.SetCash(1000) #Set Strategy Cash # Find more symbols here: http://quantconnect.com/data self.curr = ['EURUSD'] for symbol in self.curr: self.AddForex(symbol, Resolution.Minute, Market.Oanda) def OnData(self, data): for symbol in self.curr: price = data[symbol].Close margin = self.Portfolio.MarginRemaining risk = 0.0025 pipvalue = (margin * risk) / 10 orderSize = pipvalue / 0.0001 stopLoss = (price - 0.0010) profitTarget = (price + 0.0020) if not self.Portfolio[symbol].Invested: self.MarketOrder(symbol, orderSize) self.StopMarketOrder(symbol, -orderSize, stopLoss) self.LimitOrder(symbol, -orderSize, profitTarget) def OnOrderEvent(self, orderEvent): order = self.Transactions.GetOrderById(orderEvent.OrderId) if order.Status == OrderStatus.Filled: if order.Type == OrderType.Limit or order.Type == OrderType.StopMarket: self.Transactions.CancelOpenOrders(order.Symbol) if order.Status == OrderStatus.Canceled: self.Log(str(orderEvent))