| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 100.352% Drawdown 0.300% Expectancy 0 Net Profit 0.764% Sharpe Ratio 9.101 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0.093 Annual Variance 0.009 Information Ratio 9.692 Tracking Error 0.093 Treynor Ratio 0 Total Fees $1.00 Estimated Strategy Capacity $580000000.00 Lowest Capacity Asset MSFT R735QTJ8XC9X Portfolio Turnover 9.02% |
# region imports
from AlgorithmImports import *
# endregion
import datetime as dt
class Test(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2023, 11, 7)
self.SetEndDate(2023, 11, 11)
self.SetCash(100000)
self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin)
self.AddEquity('SPY', Resolution.Daily)
self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.AfterMarketOpen('SPY', -10), self.__BeforeOpen)
self.RemoveSecurity('SPY')
self.UniverseSettings.Resolution = Resolution.Daily
self.AddUniverse(self.__SelectCoarse, self.__SelectFine)
self.count = 0
def OnEndOfAlgorithm(self):
self.AddEquity('MSFT', Resolution.Daily)
BarList = self.History[TradeBar](self.Symbol('MSFT'), dt.datetime(2023,11,7), self.Time, Resolution.Daily)
for bar in BarList:
self.Debug('{:s}: Open = {:.4f}'.format(bar.Time.strftime('%m-%d-%Y %H:%M'), bar.Open))
def __BeforeOpen(self):
for sym in self.ActiveSecurities.Keys:
if self.count == 0:
self. count += 1
self.Debug('{:s}: MarketOnOpenOrder for 100 shares of {:s}'.format(self.Time.strftime('%m-%d-%Y %H:%M'), sym.Value))
ticket = self.MarketOnOpenOrder(sym, 100)
def OnOrderEvent(self, orderEvent: OrderEvent):
self.Debug('{:s} OnOrdrEvent: Symbol={:s}, filled={:.2f} for ${:.4f} per share'.format(self.Time.strftime('%m-%d-%Y %H:%M'), orderEvent.Symbol.Value, orderEvent.FillQuantity, orderEvent.FillPrice))
def __SelectCoarse(self, coarse: List[CoarseFundamental]) -> List[Symbol]:
if self.count == 0:
C = [c.Symbol for c in coarse if c.Symbol.Value == 'MSFT']
else:
C = []
return C
def __SelectFine(self, fine: List[FineFundamental]) -> List[Symbol]:
List = [f.Symbol for f in fine]
return List