Overall Statistics
Total Trades
3
Average Win
0%
Average Loss
0%
Compounding Annual Return
19.227%
Drawdown
12.800%
Expectancy
0
Net Profit
30.070%
Sharpe Ratio
1.117
Probabilistic Sharpe Ratio
52.744%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0.833
Annual Standard Deviation
0.123
Annual Variance
0.015
Information Ratio
-0.406
Tracking Error
0.067
Treynor Ratio
0.166
Total Fees
$4.52
Estimated Strategy Capacity
$8500000.00
Lowest Capacity Asset
BND TRO5ZARLX6JP
#region imports
from AlgorithmImports import *
import datetime
from io import StringIO
#import os
import pandas as pd
import traceback
#import typing



#import QuantConnect
#import requests
#import operator
#import math
#from SmartRollingWindow import *

#endregion

class OptimizedTransdimensionalReplicator(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 9, 19)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        self.AddEquity("SPY", Resolution.Minute)
        self.AddEquity("BND", Resolution.Minute)
        self.AddEquity("AAPL", Resolution.Minute)

        try:
            data = StringIO(self.Download("https://www.dropbox.com/s/r1jwm0bhqsb4c02/Tips_20220304.csv?dl=1"))
            self.df1 = pd.read_csv(data)
            
            self.df2 = self.df1.groupby('Symbol')
            for name, group in self.df2:
                self.Log(name)
                #self.Log(group)

        except Exception:
            ex = traceback.format_exc
            print(ex)
        
        #tickers = SelectSymbols()
        #self.symbols = [Symbol.Create(ticker, SecurityType.Equity, Market.USA)]

        #self.SetUniverseSelection(FineFundamentalUniverseSelectionModel(self.CoarseSelectionFunction, self.FineSelectionFunction))
        #self.UniverseSettings.Resolution = Resolution.Daily


        
    def OnData(self, data):
         if not self.Portfolio.Invested:
            self.SetHoldings("SPY", 0.33)
            self.SetHoldings("BND", 0.33)
            self.SetHoldings("AAPL", 0.33)
        
        
    def CoarseSelectionFunction(self, coarse):
        return self.symbols
    
    def FineSelectionFunction(self, fine):
        return self.symbols