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
0.946
Tracking Error
0.504
Treynor Ratio
0
Total Fees
$0.00
class TachyonTransdimensionalCircuit(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2019, 12, 27)  
        self.SetEndDate(2020, 3, 27)
        self.SetCash(100000)  
        # Adding equalities we are trading
        self.AddEquity("TQQQ", Resolution.Daily)
        self.AddEquity("TMF", Resolution.Daily)
        self.AddEquity("EDZ", Resolution.Daily)
        
    def trade(context, data):  
        
    #Initial parameters for the trade    
        STD=21
        LEV=1
        MAXH=252
        
    # Setting up variables for symbols
        qqq_symbol = self.Symbol('TQQQ')
        tmf_symbol = self.Symbol('TMF')
        edz_symbol = self.Symbol('EDZ')
        
    # Pulling history of prices...
        prices_qqq = self.History(qqq_symbol,'close', STD, '1d')  
        prices_tmf = self.History(tmf_symbol,'close', STD, '1d')
        prices_edz = self.History(edz_symbol,'close', STD,'1d')  
        
    # Looking at volatility.....
        W=14
        R_qqq = prices_qqq.pct_change()[-W:-1]
        R_tmf = prices_tmf.pct_change()[-W:-1]
        R_edz = prices_edz.pct_change()[-W:-1]

        current_qqq = self.current(qqq_symbol, 'price')
    
        max_qqq = self.history(qqq_symbol, 'price', MAXH, '1d').max()  

        raw_wt_qqq = 0.5*((max_qqq/current_qqq)**2)/(R_qqq.std()**2)
        raw_wt_tmf = 0.20/(R_tmf.std()**2) 
        raw_wt_edz = 0.30/(R_edz.std()**2)

        wt = abs(raw_wt_qqq) + abs(raw_wt_tmf) + abs(raw_wt_edz) 
    #print("raw vola %.5f, %.5f, %.5f"%(R_qqq.std()**2, R_tmf.std()**2, R_edz.std()**2))
    #print("raw wt %.5f, %.5f, %.5f"%(raw_wt_qqq,raw_wt_tmf, raw_wt_edz))

        wt_qqq = 1*raw_wt_qqq/wt 
        wt_tmf = 1*raw_wt_tmf/wt
        wt_edz = 1*raw_wt_edz/wt
    
        record(qqq_symbol= wt_qqq) 
        record(tmf_symbol= wt_tmf) 
        record(edz_symbol= wt_edz)
    
        if wt_edz > 0.25:
            wt_edz=2*wt_edz/0.25*wt_edz

        wt = abs(wt_qqq) + abs(wt_tmf) + abs(wt_edz) 
        wt_qqq = 1*wt_qqq/wt 
        wt_tmf = 1*wt_tmf/wt
        wt_edz = 1*wt_edz/wt
        
        self.MarketOrder('TQQQ', 1)
        self.MarketOrder('TMF', 1)
        self.MarketOrder('EDZ', 1)
        

    
        record(lever=context.account.leverage)