Hi,

I'm trying to implement a strategy that buys a protective put with a strike price 30% below the current market price of the underlying with a 3 month expiracy at the start of each month. I have some doubts:

First, I read the options strategies and in all of them I saw the SetFilter() function at Initialize method. I understand the min/maxStrike is the min/max strike rank relative to mkt price, but its not clear to me how to get options with a strike 30% below the current mkt price. In my code you can see my current aproach.

Also, I'm getting this error: 

Runtime Error: cannot instantiate an open generic type
  at OptionReebalance
    chain = DataDictionary().OptionChains.get(self.symbol)
   at Python.Runtime.PythonException.ThrowLastAsClrException() at D:\QuantConnect\MyLean\PythonnetEnterprise\src\runtime\PythonException.cs:line 52
   at Python.Runtime.PyObject.Invoke(PyObject[] args) at D:\QuantConnect\MyLean\PythonnetEnterprise\src\runtime\PythonTypes\PyObject.cs:line 787
   at QuantConnect.Scheduling.ScheduleManager.c__DisplayClass15_0.b__0(String name in main.py: line 71

I'm pretty sure it has to do with the schedule event but I'm not sure about why is this error happening.

 

Any help is appreciated.

I don't really know a lot about options trading but I've read all QC option related documentation.

 

Thanks!