Here is the log output from the first 3 months of 2015 (SPY):
2015-01-01 00:00:00 Launching analysis for 6c77f16270c55ee22950be53541efdf7 with LEAN Engine v2.4.0.1.2094
2014-12-29 09:31:00 Algorithm warming up...
2015-01-01 00:00:00 Algorithm finished warming up.
2015-01-12 10:02:00 Put/Call Delta: -0.875281854545776, 0.133186598737162
2015-01-12 10:02:00 Put/Call IV: 0, 0.367504354284584
2015-02-18 10:02:00 Put/Call Delta: -0.861501054327611, 0.14420785204553
2015-02-18 10:02:00 Put/Call IV: 0, 0.349744920510335
2015-03-18 10:02:00 Put/Call Delta: -1.00018230173516, 0.00666483443232885
2015-03-18 10:02:00 Put/Call IV: 0, 0.32939190522855
2015-03-31 20:00:00 Algorithm Id:(6c77f16270c55ee22950be53541efdf7) completed in 128.23 seconds at 667k data points per second. Processing total of 85,540,370 data points.
The program picks the put and call contract which is closest to ATM by choosing the contract closest to -0.5 and 0.5 delta, respectively. So in this instance, all of the contracts are not correcly calculated.
Here is a log output from the first 3 months of 2017 (same program, SPY):
2017-01-01 00:00:00 Launching analysis for bfd23e8aa9cd02419599e76f66a086c9 with LEAN Engine v2.4.0.1.2094
2016-12-27 09:31:00 Algorithm warming up...
2017-01-01 00:00:00 Algorithm finished warming up.
2017-01-09 10:02:00 Put/Call Delta: -0.616915952154026, 0.392607901219933
2017-01-09 10:02:00 Put/Call IV: 0.0595209395216982, 0.16928657108688
2017-02-15 10:02:00 Put/Call Delta: -0.541293423076976, 0.465094299117493
2017-02-15 10:02:00 Put/Call IV: 0.0576402326084872, 0.166816434359085
2017-03-15 10:02:00 Put/Call Delta: -0.547517555529789, 0.459483561447045
2017-03-15 10:02:00 Put/Call IV: 0.0645115228320677, 0.1451368213337
2017-03-31 20:01:00 Algorithm Id:(bfd23e8aa9cd02419599e76f66a086c9) completed in 172.26 seconds at 694k data points per second. Processing total of 119,578,163 data points.
I am not sure if these results are exactly right, but they certainly do seem closer to what they should be.
Here is GLD from 2017.
2017-01-01 00:00:00 Launching analysis for debe3bb604c2acbec786738fa5bd249b with LEAN Engine v2.4.0.1.2094
2016-12-27 09:31:00 Algorithm warming up...
2017-01-01 00:00:00 Algorithm finished warming up.
2017-01-09 10:02:00 Put/Call Delta: -0.456239602936592, 0.454956251793986
2017-01-09 10:02:00 Put/Call IV: 0.133880135856964, 0.135291051418646
2017-02-15 10:02:00 Put/Call Delta: -0.502027029303228, 0.49980110717277
2017-02-15 10:02:00 Put/Call IV: 0.125866364690904, 0.126191891452156
2017-03-15 10:02:00 Put/Call Delta: -0.462660564017818, 0.539575247974283
2017-03-15 10:02:00 Put/Call IV: 0.114299595052734, 0.117092052293294
2017-03-31 20:01:00 Algorithm Id:(debe3bb604c2acbec786738fa5bd249b) completed in 104.91 seconds at 629k data points per second. Processing total of 65,992,062 data points.
This one looks pretty spot on.
Here is the SPY output from 2015, but with the options filter set to 15 wide on both sides and looking for the implied volatility closest to 100%.
2015-01-01 00:00:00 Launching analysis for 92823e0548614b3967a40c529b7c9bc9 with LEAN Engine v2.4.0.1.2094
2014-12-29 09:31:00 Algorithm warming up...
2015-01-01 00:00:00 Algorithm finished warming up.
2015-01-12 10:02:00 Put/Call Delta: -1.00022936151879, 0.338798412536806
2015-01-12 10:02:00 Put/Call IV: 0, 0.455472609048858
2015-02-18 10:02:00 Put/Call Delta: -0.983494843308225, 0.346064181273224
2015-02-18 10:02:00 Put/Call IV: 0, 0.46470457776493
2015-03-18 10:02:00 Put/Call Delta: -1.00001659063879, 0.163285658978417
2015-03-18 10:02:00 Put/Call IV: 0, 0.430703302783538
2015-03-31 20:00:00 Algorithm Id:(92823e0548614b3967a40c529b7c9bc9) completed in 218.27 seconds at 395k data points per second. Processing total of 86,268,601 data points.
Every put contract still has 0 IV.