Overall Statistics |
Total Trades 0 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 -8.769 Tracking Error 0.22 Treynor Ratio 0 Total Fees $0.00 |
from collections import deque from datetime import datetime, timedelta from numpy import sum ### Demonstrates how to create a custom indicator and register it for automatic updated class CustomIndicatorAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2013,10,7) self.SetEndDate(2013,10,11) self.AddEquity("SPY", Resolution.Second) # Create a QuantConnect indicator and a python custom indicator for comparison self.sma = self.SMA("SPY", 60, Resolution.Minute) self.custom = CustomSimpleMovingAverage('custom', 60) self.RegisterIndicator("SPY", self.custom, Resolution.Minute) self.ext = IndicatorExtensions.MAX(self.custom, 1) def OnData(self, data): if self.Time.second == 0 and self.ext.IsReady: self.Plot("SMA", "Value", self.sma.Current.Value) self.Plot("Custom SMA", "Value", self.custom.Value) self.Plot("Extended", "Value", self.ext.Current.Value) # Python implementation of SimpleMovingAverage. # Represents the traditional simple moving average indicator (SMA). class CustomSimpleMovingAverage(PythonIndicator): def __init__(self, name, period): self.Name = name self.Time = datetime.min self.Value = 0 self.queue = deque(maxlen=period) # Update method is mandatory def Update(self, input): self.queue.appendleft(input.Close) count = len(self.queue) self.Time = input.EndTime self.Value = sum(self.queue) / count return count == self.queue.maxlen