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 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
class Algo(QCAlgorithm): def Initialize(self): # self.SetStartDate(2021, 1, 1) self.SetStartDate(2021, 7, 30) self.SetCash(10000) self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage) order_target_percent = 1 # + symbol = self.AddEquity("NOW", Resolution.Minute).Symbol strat = StrategyNOW_TEST(qcalgo=self, symbol=symbol, order_target_percent=0) self.Schedule.On(self.DateRules.EveryDay(symbol), self.TimeRules.Every(TimeSpan.FromMinutes(10)), strat.trade) class StrategyNOW_TEST: def __init__(self, qcalgo, symbol, order_target_percent): self.algo = qcalgo # self - QCAlgorithm self.symbol = symbol self.order_target_percent = order_target_percent self.time_bought = None def entry(self): # Buy on day close if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW_TEST - {self.symbol} - entry()") if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW_TEST - self.symbol in self.algo.CurrentSlice.Bars: {self.symbol in self.algo.CurrentSlice.Bars}") if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW_TEST - self.algo.CurrentSlice.Bars.ContainsKey(self.symbol) : {self.algo.CurrentSlice.Bars.ContainsKey(self.symbol)}") if not self.algo.CurrentSlice.Bars.ContainsKey(self.symbol): return if self.symbol not in self.algo.CurrentSlice.Bars: return if self.algo.Portfolio[self.symbol].Invested: return history = self.algo.History(self.symbol, 2, Resolution.Daily) if 'close' not in history or history.dropna().shape[0] <= 1: return close, open_, low, high, volume = history.close.unstack(level=0), history.open.unstack(level=0), history.low.unstack(level=0), history.high.unstack(level=0), history.volume.unstack(level=0) close2 = close.copy() bar = self.algo.CurrentSlice.Bars[self.symbol] close.loc[bar.EndTime] = [bar.Close] if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW_TEST - {self.symbol} - close: {close}") def exit(self): # sell next day close if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW_TEST - {self.symbol} - exit()") if not self.algo.Portfolio[self.symbol].Invested: return if self.time_bought is None or (self.algo.Time - self.time_bought) < timedelta(hours=3): return self.algo.Liquidate(self.symbol) self.time_bought = None if self.algo.LiveMode: self.algo.Log(f"{self.algo.Time} - StrategyNOW - liquidation order created") def trade(self): self.entry() self.exit()