Overall Statistics
Total Trades
9
Average Win
0.04%
Average Loss
-0.02%
Compounding Annual Return
0.920%
Drawdown
0.100%
Expectancy
0.167
Net Profit
0.020%
Sharpe Ratio
0.921
Probabilistic Sharpe Ratio
49.455%
Loss Rate
67%
Win Rate
33%
Profit-Loss Ratio
2.50
Alpha
-0.004
Beta
0.022
Annual Standard Deviation
0.004
Annual Variance
0
Information Ratio
-1.959
Tracking Error
0.159
Treynor Ratio
0.153
Total Fees
$9.00
Estimated Strategy Capacity
$630000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
class FocusedFluorescentOrangeDragonfly(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2013, 10, 4)  # Set Start Date
        self.SetEndDate(2013, 10, 11)  # Set Start Date
        self.SetCash(1000000)  # Set Strategy Cash

        self.UniverseSettings.Resolution = Resolution.Minute
        self.UniverseSettings.Leverage = 1
        self.UniverseSettings.FillForward = True
        self.UniverseSettings.MinimumTimeInUniverse = timedelta(seconds=1)

        self.AddUniverseSelection(ScheduledUniverseSelectionModel(
            self.DateRules.EveryDay(),
            self.TimeRules.At(0, 15, TimeZones.NewYork),
            self.FuncTest  # selection function in algorithm.
        ))

        self.i = 0
        
    def FuncTest(self, dateTime):
        self.Log("*"*10)
        self.i += 1
        self.Log("i:{}".format(self.i))
        if self.i % 2 == 1:
            self.Log("Universe added SPY")
            return [Symbol.Create("SPY", SecurityType.Equity, Market.USA)]
        else:
            self.Log("Universe removed SPY")
            return []

    def OnData(self, data):
        if not (data.Time.hour == 9 and data.Time.minute == 32):
            return
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
            Arguments:
                data: Slice object keyed by symbol containing the stock data
        '''
        self.Log("Calling OnData")
        self.Log(self.Time)
        self.Log([k.ToString() for k in data.Keys])
        self.Log([k.ToString() for k in self.ActiveSecurities.Keys])
        if data.ContainsKey("SPY R735QTJ8XC9X"):
            self.Log(str(self.Securities["SPY R735QTJ8XC9X"].HasData))
            ticket = self.LimitOrder("SPY R735QTJ8XC9X", 100, 370)
            self.Log(ticket.Status)
        else:
            self.Log("Spy not in data object")

    def OnSecuritiesChanged(self, changes):
        self.Log("added:{}".format([sec.Symbol.ToString() for sec in changes.AddedSecurities]))
        self.Log("removed:{}".format([sec.Symbol.ToString() for sec in changes.RemovedSecurities]))

        for c in changes.AddedSecurities:
            sym = c.Symbol
            ticket = self.LimitOrder(sym, 100, 370)
            self.Log(ticket.Status)

        for c in changes.RemovedSecurities:
            sym = c.Symbol
            if c.Invested:
                self.Liquidate(sym)
                self.Log("liquidated " + sym.ToString())

        self.Log("Active Securities:{}".format([k.ToString() for k in self.ActiveSecurities.Keys]))