| Overall Statistics |
|
Total Trades 56 Average Win 34.87% Average Loss -1.72% Compounding Annual Return 28.223% Drawdown 26.800% Expectancy 5.832 Net Profit 470.619% Sharpe Ratio 0.984 Probabilistic Sharpe Ratio 36.178% Loss Rate 68% Win Rate 32% Profit-Loss Ratio 20.26 Alpha 0.136 Beta 0.711 Annual Standard Deviation 0.22 Annual Variance 0.048 Information Ratio 0.525 Tracking Error 0.198 Treynor Ratio 0.304 Total Fees $113.73 Estimated Strategy Capacity $260000000.00 Lowest Capacity Asset AMZN R735QTJ8XC9X |
# region imports
from AlgorithmImports import *
# endregion
class CGPT(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2015, 1, 1) # Set Start Date
self.SetEndDate(2022, 1, 1) # Set End Date
self.SetCash(10000) # Set Strategy Cash
self.symbol = self.AddEquity("AMZN", Resolution.Daily).Symbol
lookback = 50
self.SetWarmup(100)
self.rolling_closes = RollingWindow[float](lookback)
self.sma = self.SMA(self.symbol, 200)
def OnData(self, data: Slice):
if data.ContainsKey(self.symbol) and data[self.symbol] is not None:
self.rolling_closes.Add(data[self.symbol].Close)
if (self.rolling_closes.Count < 50) or self.IsWarmingUp:
return
momentum = self.rolling_closes[0] - self.rolling_closes[49]
entry = momentum > 0
if entry:
self.SetHoldings(self.symbol,1,tag='Momentum > 0')
elif self.rolling_closes[0] < self.sma.Current.Value:
self.SetHoldings(self.symbol,0,tag='Price below SMA')