Hi all,

I am trying to select some securities over the universe selection. After that, I will send order under the OnData function. I hit errors and here is the message:

This asset symbol (KAL 0) was not found in your security list. Please add this security or check it exists before using it with 'Securities.ContainsKey("KAL 0")' in SecurityManager.cs:line 254

 

I am not able to share the backtest, so here is the main.py

# region imports
from AlgorithmImports import *
# endregion


class QCSymbolStudy(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2023, 2, 17)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash

        self.AddUniverse(self.CoarseSelect, self.FineSelect)
        self.UniverseSettings.Resolution = Resolution.Daily

        self.is_make_order = True

    def OnData(self, data: Slice):
        for d in data.Keys:
            self.Debug(f"{self.UtcTime} OnData: {d}")

        if self.is_make_order:
            self.is_make_order = False
            self.MarketOrder("KAL", 10)

    def CoarseSelect(self, coarse):
        return [c.Symbol for c in coarse]

    def FineSelect(self, fine):
        selected_list = list()
        for f in fine:
            if "KAL" in f.Symbol.Value:
                selected_list.append(f.Symbol)
        self.Debug(f"length: {len(selected_list)}")
        return selected_list

 

I printed the keys in the function and I saw my target name:


2023-02-17 05:00:00+00:00 OnData: KAL XZPS318X97QD
2023-02-17 05:00:00+00:00 OnData: KALA WMCI69Z95F1H
2023-02-17 05:00:00+00:00 OnData: KALU TK3F5EFUQ739
2023-02-17 05:00:00+00:00 OnData: CBYL VZKASE9NEYCL

It seems that there is already data received but I still cannot send out order.

I tried to use

self.AddEquity("KAL", Resoltuion.Daily)

This can fix the issue, but the problem is that I need to use universe selection to do a dynamic selection.

 

I would like to ask how to fix this?

 

Thanks

Author