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)