Options Data Dev Discussion

@The_Ni asked if we have any tools related to options and we don’t, however, as @SuckyMayor noted, Mimir does have access to options data from several sources readily. Here is an example the data returned by one of the sources (limited to 5 strikes):

  "symbol": "KR",
  "status": "SUCCESS",
  "underlying": {
    "symbol": "KR",
    "description": "Kroger Company (The) Common Stock",
    "change": -0.04,
    "percentChange": -0.09,
    "close": 45.11,
    "quoteTime": 1638925200934,
    "tradeTime": 1638925147005,
    "bid": 45.07,
    "ask": 45.46,
    "last": 45.07,
    "mark": 45.07,
    "markChange": -0.04,
    "markPercentChange": -0.09,
    "bidSize": 800,
    "askSize": 500,
    "highPrice": 45.65,
    "lowPrice": 44.9,
    "openPrice": 45.08,
    "totalVolume": 6616178,
    "exchangeName": "NYS",
    "fiftyTwoWeekHigh": 47.99,
    "fiftyTwoWeekLow": 30.35,
    "delayed": false
  },
  "strategy": "SINGLE",
  "interval": 0,
  "isDelayed": true,
  "isIndex": false,
  "interestRate": 0.1,
  "underlyingPrice": 45.265,
  "volatility": 29,
  "daysToExpiration": 0,
  "numberOfContracts": 10,
  "putExpDateMap": {
    "2021-12-10:2": {
      "44.0": [
        {
          "putCall": "PUT",
          "symbol": "KR_121021P44",
          "description": "KR Dec 10 2021 44 Put (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.13,
          "ask": 0.16,
          "last": 0.14,
          "mark": 0.14,
          "bidSize": 185,
          "askSize": 14,
          "bidAskSize": "185X14",
          "lastSize": 0,
          "highPrice": 0.28,
          "lowPrice": 0.09,
          "openPrice": 0,
          "closePrice": 0.35,
          "totalVolume": 6441,
          "tradeDate": null,
          "tradeTimeInLong": 1638910767287,
          "quoteTimeInLong": 1638910799661,
          "netChange": -0.21,
          "volatility": 28.758,
          "delta": -0.198,
          "gamma": 0.214,
          "theta": -0.049,
          "vega": 0.013,
          "rho": -0.001,
          "openInterest": 5590,
          "timeValue": 0.14,
          "theoreticalOptionValue": 0.145,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 44,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -60,
          "markChange": -0.2,
          "markPercentChange": -58.57,
          "intrinsicValue": -1.07,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": false,
          "mini": false
        }
      ],
      "45.0": [
        {
          "putCall": "PUT",
          "symbol": "KR_121021P45",
          "description": "KR Dec 10 2021 45 Put (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.39,
          "ask": 0.47,
          "last": 0.42,
          "mark": 0.43,
          "bidSize": 454,
          "askSize": 6,
          "bidAskSize": "454X6",
          "lastSize": 0,
          "highPrice": 0.64,
          "lowPrice": 0.31,
          "openPrice": 0,
          "closePrice": 0.67,
          "totalVolume": 689,
          "tradeDate": null,
          "tradeTimeInLong": 1638910256105,
          "quoteTimeInLong": 1638910799704,
          "netChange": -0.25,
          "volatility": 25.847,
          "delta": -0.47,
          "gamma": 0.34,
          "theta": -0.063,
          "vega": 0.018,
          "rho": -0.002,
          "openInterest": 3131,
          "timeValue": 0.42,
          "theoreticalOptionValue": 0.43,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 45,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -37.31,
          "markChange": -0.24,
          "markPercentChange": -35.82,
          "intrinsicValue": -0.07,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": false,
          "mini": false
        }
      ],
      "46.0": [
        {
          "putCall": "PUT",
          "symbol": "KR_121021P46",
          "description": "KR Dec 10 2021 46 Put (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.99,
          "ask": 1.13,
          "last": 1,
          "mark": 1.09,
          "bidSize": 55,
          "askSize": 62,
          "bidAskSize": "55X62",
          "lastSize": 0,
          "highPrice": 1.14,
          "lowPrice": 0.78,
          "openPrice": 0,
          "closePrice": 1.23,
          "totalVolume": 229,
          "tradeDate": null,
          "tradeTimeInLong": 1638905790443,
          "quoteTimeInLong": 1638910799755,
          "netChange": -0.23,
          "volatility": 26.886,
          "delta": -0.77,
          "gamma": 0.248,
          "theta": -0.049,
          "vega": 0.014,
          "rho": -0.003,
          "openInterest": 52,
          "timeValue": 0.07,
          "theoreticalOptionValue": 1.086,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 46,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -18.75,
          "markChange": -0.14,
          "markPercentChange": -11.72,
          "intrinsicValue": 0.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": true,
          "mini": false
        }
      ],
      "47.0": [
        {
          "putCall": "PUT",
          "symbol": "KR_121021P47",
          "description": "KR Dec 10 2021 47 Put (Weekly)",
          "exchangeName": "OPR",
          "bid": 1.86,
          "ask": 2.06,
          "last": 1.92,
          "mark": 1.98,
          "bidSize": 120,
          "askSize": 88,
          "bidAskSize": "120X88",
          "lastSize": 0,
          "highPrice": 2.11,
          "lowPrice": 1.64,
          "openPrice": 0,
          "closePrice": 2.02,
          "totalVolume": 12,
          "tradeDate": null,
          "tradeTimeInLong": 1638902402156,
          "quoteTimeInLong": 1638910799599,
          "netChange": -0.1,
          "volatility": 30.436,
          "delta": -0.912,
          "gamma": 0.116,
          "theta": -0.029,
          "vega": 0.007,
          "rho": -0.004,
          "openInterest": 981,
          "timeValue": -0.01,
          "theoreticalOptionValue": 1.981,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 47,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -5.11,
          "markChange": -0.04,
          "markPercentChange": -2.05,
          "intrinsicValue": 1.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": true,
          "mini": false
        }
      ],
      "48.0": [
        {
          "putCall": "PUT",
          "symbol": "KR_121021P48",
          "description": "KR Dec 10 2021 48 Put (Weekly)",
          "exchangeName": "OPR",
          "bid": 2.76,
          "ask": 3.05,
          "last": 2.83,
          "mark": 2.95,
          "bidSize": 71,
          "askSize": 57,
          "bidAskSize": "71X57",
          "lastSize": 0,
          "highPrice": 0,
          "lowPrice": 0,
          "openPrice": 0,
          "closePrice": 2.95,
          "totalVolume": 0,
          "tradeDate": null,
          "tradeTimeInLong": 1638816900530,
          "quoteTimeInLong": 1638910799717,
          "netChange": -0.12,
          "volatility": 35.305,
          "delta": -0.961,
          "gamma": 0.053,
          "theta": -0.017,
          "vega": 0.004,
          "rho": -0.005,
          "openInterest": 28,
          "timeValue": -0.1,
          "theoreticalOptionValue": 2.951,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 48,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -3.95,
          "markChange": 0.01,
          "markPercentChange": 0.2,
          "intrinsicValue": 2.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": true,
          "mini": false
        }
      ]
    }
  },
  "callExpDateMap": {
    "2021-12-10:2": {
      "44.0": [
        {
          "putCall": "CALL",
          "symbol": "KR_121021C44",
          "description": "KR Dec 10 2021 44 Call (Weekly)",
          "exchangeName": "OPR",
          "bid": 1.11,
          "ask": 1.31,
          "last": 1.28,
          "mark": 1.22,
          "bidSize": 154,
          "askSize": 82,
          "bidAskSize": "154X82",
          "lastSize": 0,
          "highPrice": 1.75,
          "lowPrice": 1.1,
          "openPrice": 0,
          "closePrice": 1.49,
          "totalVolume": 92,
          "tradeDate": null,
          "tradeTimeInLong": 1638910161122,
          "quoteTimeInLong": 1638910799682,
          "netChange": -0.21,
          "volatility": 28.758,
          "delta": 0.802,
          "gamma": 0.214,
          "theta": -0.05,
          "vega": 0.013,
          "rho": 0.004,
          "openInterest": 587,
          "timeValue": 0.21,
          "theoreticalOptionValue": 1.219,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 44,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -13.9,
          "markChange": -0.27,
          "markPercentChange": -18.01,
          "intrinsicValue": 1.07,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": true,
          "mini": false
        }
      ],
      "45.0": [
        {
          "putCall": "CALL",
          "symbol": "KR_121021C45",
          "description": "KR Dec 10 2021 45 Call (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.47,
          "ask": 0.55,
          "last": 0.56,
          "mark": 0.5,
          "bidSize": 145,
          "askSize": 51,
          "bidAskSize": "145X51",
          "lastSize": 0,
          "highPrice": 0.96,
          "lowPrice": 0.46,
          "openPrice": 0,
          "closePrice": 0.81,
          "totalVolume": 1035,
          "tradeDate": null,
          "tradeTimeInLong": 1638910547246,
          "quoteTimeInLong": 1638910799888,
          "netChange": -0.25,
          "volatility": 25.847,
          "delta": 0.53,
          "gamma": 0.34,
          "theta": -0.064,
          "vega": 0.018,
          "rho": 0.002,
          "openInterest": 1368,
          "timeValue": 0.49,
          "theoreticalOptionValue": 0.504,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 45,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -30.5,
          "markChange": -0.3,
          "markPercentChange": -37.48,
          "intrinsicValue": 0.07,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": true,
          "mini": false
        }
      ],
      "46.0": [
        {
          "putCall": "CALL",
          "symbol": "KR_121021C46",
          "description": "KR Dec 10 2021 46 Call (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.14,
          "ask": 0.18,
          "last": 0.16,
          "mark": 0.16,
          "bidSize": 12,
          "askSize": 31,
          "bidAskSize": "12X31",
          "lastSize": 0,
          "highPrice": 0.43,
          "lowPrice": 0.16,
          "openPrice": 0,
          "closePrice": 0.37,
          "totalVolume": 1855,
          "tradeDate": null,
          "tradeTimeInLong": 1638910795382,
          "quoteTimeInLong": 1638910799789,
          "netChange": -0.2,
          "volatility": 26.886,
          "delta": 0.23,
          "gamma": 0.249,
          "theta": -0.05,
          "vega": 0.014,
          "rho": 0.001,
          "openInterest": 1122,
          "timeValue": 0.16,
          "theoreticalOptionValue": 0.16,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 46,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -56.16,
          "markChange": -0.21,
          "markPercentChange": -56.16,
          "intrinsicValue": -0.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": false,
          "mini": false
        }
      ],
      "47.0": [
        {
          "putCall": "CALL",
          "symbol": "KR_121021C47",
          "description": "KR Dec 10 2021 47 Call (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.05,
          "ask": 0.06,
          "last": 0.05,
          "mark": 0.06,
          "bidSize": 11,
          "askSize": 73,
          "bidAskSize": "11X73",
          "lastSize": 0,
          "highPrice": 0.17,
          "lowPrice": 0.05,
          "openPrice": 0,
          "closePrice": 0.16,
          "totalVolume": 353,
          "tradeDate": null,
          "tradeTimeInLong": 1638909419955,
          "quoteTimeInLong": 1638910796365,
          "netChange": -0.1,
          "volatility": 30.436,
          "delta": 0.088,
          "gamma": 0.116,
          "theta": -0.03,
          "vega": 0.007,
          "rho": 0,
          "openInterest": 2672,
          "timeValue": 0.05,
          "theoreticalOptionValue": 0.055,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 47,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -67.74,
          "markChange": -0.1,
          "markPercentChange": -64.52,
          "intrinsicValue": -1.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": false,
          "mini": false
        }
      ],
      "48.0": [
        {
          "putCall": "CALL",
          "symbol": "KR_121021C48",
          "description": "KR Dec 10 2021 48 Call (Weekly)",
          "exchangeName": "OPR",
          "bid": 0.02,
          "ask": 0.03,
          "last": 0.03,
          "mark": 0.03,
          "bidSize": 4,
          "askSize": 78,
          "bidAskSize": "4X78",
          "lastSize": 0,
          "highPrice": 0.07,
          "lowPrice": 0.03,
          "openPrice": 0,
          "closePrice": 0.08,
          "totalVolume": 51,
          "tradeDate": null,
          "tradeTimeInLong": 1638900678089,
          "quoteTimeInLong": 1638910797348,
          "netChange": -0.05,
          "volatility": 35.305,
          "delta": 0.039,
          "gamma": 0.053,
          "theta": -0.019,
          "vega": 0.004,
          "rho": 0,
          "openInterest": 396,
          "timeValue": 0.03,
          "theoreticalOptionValue": 0.025,
          "theoreticalVolatility": 29,
          "optionDeliverablesList": null,
          "strikePrice": 48,
          "expirationDate": 1639170000000,
          "daysToExpiration": 2,
          "expirationType": "S",
          "lastTradingDay": 1639184400000,
          "multiplier": 100,
          "settlementType": " ",
          "deliverableNote": "",
          "isIndexOption": null,
          "percentChange": -60,
          "markChange": -0.05,
          "markPercentChange": -66.67,
          "intrinsicValue": -2.93,
          "pennyPilot": true,
          "nonStandard": false,
          "inTheMoney": false,
          "mini": false
        }
      ]
    }
  }
}

If there are projects that people would like to see, I’m sure someone in the community that can write JavaScript can write something to format this data accordingly. Mimir already has charting abilities through Chart.js so we can replicate some of the paid services features I believe just need to know what to use, how to use it and in what way to display it.

If need be because I know the availiability of Python libraries for data is much higher, I can use a Python script if someone would rather contribute in that way.

Since I know the majority of interest will be circled around SPX, here is a full dump of the SPX chain:
SPX Option Data Dump.json (5.4 MB)

Let me know if any additional info is needed or what ideas anyone might have.

2 Likes

If someone has the knowledge and ability, it would be a potentially lucrative project to calculate options ROI in limited circumstances when the model I’ve been working on throws a buy signal. Success rate is 82% in the past 11 months. If it can be determined the Avg ROI is greater than 30%, which I believe is the case, this could be automated and return large sums.

Let me know if you are interested and I can provide further details.

Quoting your other post here as well:

My next project, which I don’t personally have the ability or knowledge to complete, is to determine the average ROI of options when the underlying increases 2% at set intervals like 1 week, 2, weeks, and 3 1/2 weeks. The closer to exp, the lower the ROI, but the amount matters. Since the options will expire worthless roughly 25% of the time, I need to ensure I’m returning 30% or more on average when it’s successful.

This is something I’m very interested in taking on. I’ve got a lot going on in my head at the moment so what I need is for us to work out exactly what data we need and how we need to utilize it to provide what we’re looking for. Anyone else can feel free to chime in as well.

2 Likes

Historical prices (open, low, high, close) for specific SPY options is the immediate need. I’m trying to determine the typical ROI for SPY options purchased ATM when the underlying increases 2%. This changes as time moves forward due to Theta so I’m trying to calculate the variance between it occurring 3 1/2 weeks in vs 3 days in vs 1 week in, vs 2 weeks in.

These are the specific prices I need. They are in the attached Excel spreadsheet. I’ve also screen shot them.

I’ll try to get to those this weekend. Work is crazy right now

1 Like