Overall Statistics |
Total Trades 30 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $400000.00 |
class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2017, 7, 17) self.SetEndDate(2017, 7, 17) self.SetCash(100000) self.resolution = Resolution.Minute self.pair = self.AddForex("AUDUSD").Symbol def OnData(self, data): security = self.Securities[self.pair] invested = security.Invested # if not invested: price = data[self.pair].Close weight = 1 direction = 1 quantity = int(self.CalculateOrderQuantity(self.pair, weight)) self.Buy(self.pair, quantity) self.Debug("MarketOrder: " + str(quantity)) price = self.Securities[self.pair].Close onePercent = 0.001 # inc = security.PriceVariationModel.GetMinimumPriceVariation(security) inc = 0.0001 priceProfit = Math.Round(price * (1 + direction * onePercent) / inc) * inc priceLoss = Math.Round(price * (1 - direction * onePercent) / inc) * inc # take profit self.LimitOrder(self.pair, -quantity, priceProfit) self.Debug("LimitOrder: " + str(-quantity) + ", " + str(priceProfit)) # stop loss self.StopMarketOrder(self.pair, -quantity, priceLoss) self.Debug("StopMarketOrder: " + str(-quantity) + ", " + str(priceLoss)) def OnOrderEvent(self, orderEvent): order = self.Transactions.GetOrderById(orderEvent.OrderId) self.Debug(str(order)) if order.Status == OrderStatus.Filled: if order.Type == OrderType.Limit or order.Type == OrderType.StopMarket: self.Transactions.CancelOpenOrders(order.Symbol)