| 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)