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
Portfolio Turnover
0%
# 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.Minute
        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