Overall Statistics
Total Trades
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
-46.499%
Drawdown
50.900%
Expectancy
0
Net Profit
-25.272%
Sharpe Ratio
-0.217
Probabilistic Sharpe Ratio
15.674%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.043
Beta
-0.201
Annual Standard Deviation
0.688
Annual Variance
0.473
Information Ratio
-1.447
Tracking Error
0.765
Treynor Ratio
0.744
Total Fees
$10.04
class GetCurrentPositions(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2019, 2, 19)  # Set Start Date
        self.SetStartDate(2020, 3, 19)  # Set Start Date
        self.SetCash(1000000)  # Set Strategy Cash
        self.SPYSecurity = self.AddEquity("AAPL", Resolution.Daily)
        
        self.isFirst = True
        self.Schedule.On(self.DateRules.EveryDay(self.SPYSecurity.Symbol)
                         , self.TimeRules.AfterMarketOpen(self.SPYSecurity.Symbol, 1)
                         , self.__TestCB)
        self.month = None
        self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage)


    def OnData(self, data):
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
            Arguments:
                data: Slice object keyed by symbol containing the stock data
        '''
        if self.isFirst:
            self.SetHoldings(self.SPYSecurity.Symbol, 0.5);
            self.isFirst = False
            
        for symbol, securityHolding in self.Portfolio.items():
            # securityEquity = securityHolding.AveragePrice * securityHolding.Quantity
            # securityEquity = securityHolding.AveragePrice * securityHolding.Quantity + securityHolding.TotalCloseProfit()
            securityTotalValue = securityHolding.Price * securityHolding.Quantity # + 0 * securityHolding.TotalCloseProfit()
            self.Log("symbol: {} ratio: {}".format(symbol, securityTotalValue / self.Portfolio.TotalPortfolioValue))

        # if not self.Portfolio.Invested:
        #    self.SetHoldings("SPY", 1)
        
    def __TestCB(self):
        if not self.month == self.Time.month:
            self.month = self.Time.month
            # self.SetHoldings(self.SPYSecurity.Symbol, 0.5);
            self.Log("After rebalance")