Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return -3.598% Drawdown 25.100% Expectancy 0 Net Profit -13.920% Sharpe Ratio -0.332 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.104 Beta -8.057 Annual Standard Deviation 0.08 Annual Variance 0.006 Information Ratio -0.535 Tracking Error 0.08 Treynor Ratio 0.003 Total Fees $0.00 |
from System import * from QuantConnect import * from QuantConnect.Data.Consolidators import * from QuantConnect.Data.Market import * from QuantConnect.Orders import OrderStatus from QuantConnect.Algorithm import QCAlgorithm from QuantConnect.Indicators import * import numpy as np from datetime import timedelta, datetime class RollingWindowAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2013,10,1) self.SetEndDate(2017,11,1) self.SetCash(100000) ForexSymbols = ["EURUSD", "USDJPY"] for symbol in ForexSymbols: self.AddForex(symbol, Resolution.Daily) self.SMA("EURUSD", 9).Updated += self.SmaUpdated self.SMA("USDJPY", 9).Updated += self.SmaUpdated self.smaWin = RollingWindow[IndicatorDataPoint](9) self.window = RollingWindow[QuoteBar](2) def SmaUpdated(self, sender, updated): self.smaWin.Add(updated) def OnData(self, data): self.window.Add(data["EURUSD"]) holdingseurusd = self.Portfolio["EURUSD"].Quantity if not (self.window.IsReady and self.smaWin.IsReady): return CurrentBar = self.window[0] PastBar = self.window[1] currSma = self.smaWin[0] pastSma = self.smaWin[1] if holdingseurusd <= 0 and currSma.Value > pastSma.Value: self.SetHoldings("EURUSD", 1)