Overall Statistics |
Total Trades 659 Average Win 0.24% Average Loss -0.25% Compounding Annual Return -1.258% Drawdown 8.200% Expectancy -0.061 Net Profit -4.957% Sharpe Ratio -0.493 Loss Rate 52% Win Rate 48% Profit-Loss Ratio 0.96 Alpha -0.008 Beta -0.007 Annual Standard Deviation 0.018 Annual Variance 0 Information Ratio -0.813 Tracking Error 0.105 Treynor Ratio 1.165 Total Fees $0.00 |
import decimal as d class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2013,10,07) self.SetEndDate(2017,10,11) self.SetCash(5000) self.pair = self.AddForex("EURUSD").Symbol def OnData(self, data): if not self.Portfolio.Invested: price = data[self.pair].Close onePercent = d.Decimal(1.01) self.Buy(self.pair, 1000) self.LimitOrder(self.pair, -1000, price * onePercent) self.StopMarketOrder(self.pair, -1000, price / onePercent) def OnOrderEvent(self, orderEvent): order = self.Transactions.GetOrderById(orderEvent.OrderId) if order.Status == OrderStatus.Filled: if order.Type == OrderType.Limit or order.Type == OrderType.Limit: self.Transactions.CancelOpenOrders(order.Symbol) if order.Status == OrderStatus.Canceled: self.Log(str(orderEvent))