Overall Statistics
Total Trades
52
Average Win
1.31%
Average Loss
-0.57%
Compounding Annual Return
-50.227%
Drawdown
7.300%
Expectancy
-0.494
Net Profit
-7.132%
Sharpe Ratio
-3.431
Probabilistic Sharpe Ratio
2.584%
Loss Rate
85%
Win Rate
15%
Profit-Loss Ratio
2.29
Alpha
-0.45
Beta
0.356
Annual Standard Deviation
0.112
Annual Variance
0.012
Information Ratio
-3.535
Tracking Error
0.162
Treynor Ratio
-1.076
Total Fees
$52.00
Estimated Strategy Capacity
$27000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
from AlgorithmImports import *
 
class SwimmingLightBrownBuffalo(QCAlgorithm):
 
    def Initialize(self):
        self.SetStartDate(2022, 11, 1)  
        self.SetEndDate(2022, 12, 9)
        self.SetCash(1000)
        self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol
        self.macd = self.MACD(self.spy, 55, 90, 15, Resolution.Minute)
        closing_prices = self.History(self.spy, 1, Resolution.Minute)["close"]
        self.SetWarmUp(1)
        for time, price in closing_prices.loc[self.spy].items():
            self.macd.Update(time, price)

       
 
    def OnData(self, Data):
        if not self.macd.IsReady:
            return
        
        if self.macd.IsReady:
            self.fast = self.macd.Fast.Current.Value
            self.slow = self.macd.Slow.Current.Value
            self.signal = self.macd.Signal.Current.Value
            self.histogram = self.macd.Histogram.Current.Value
            self.current = self.macd.Current.Value
        
        price = self.Securities[self.spy].Price
       
        if self.fast > self.slow:
            if not self.Portfolio[self.spy].IsLong:  
                self.SetHoldings(self.spy, 1)
        
        elif self.fast < self.slow:
             self.Liquidate()
             
             
             #if not self.Portfolio[self.spy].IsShort:
                #self.SetHoldings(self.spy, -1)
             

        else:
           pass
        
            
       
     
       
        
        if self.macd.IsReady:
            self.Plot("Benchmark", "fast", self.fast)
            self.Plot("Benchmark", "slow", self.slow)