I finally pulled the trig with ORATS (bummed off their free trial twice, was new to programming so..), I love what Matt is doing and I think more people should be using his product. I have compared the ORATS data with Bloomberg and it's almost spot on with their BVOL(arbitrage free) implied volatility surface. I actually think it is Bloomberg that is a little bit off rather than ORATS.
Anyways, I have a ton of questions and although Mat has answered all the questions I have asked him, I have some entry level programming questions that should be asked else where. As most of you know I am a big fan of R but have recently started learning Python the last 2 weeks (this has actually made me love R even more).
Here is a link to their api documentation. https://docs.orats.io/data-api-guide/ and here is the subscriptions you can get.
and just like that we have all this data!!(there is a ton more data as well)
I have a few questions that I hope some of you can answer.
From the subscription it says I am only able to do 2000 calls a month to the api. Do any of you know (if there is a way) to do one call which grabs the data for lets say 500 companies? If I put it into a loop (using "lapply" in R) each call would result in 1 request and therefor I could only view the data for the SPX companies 4x a month (500 calls 4x = 2000 monthly calls)!!
They used to have a request that included {stocklist} in the call but I have not seen that in the new documentation & I tried it with no luck. Here is the old documentation for their api https://api.orats.com/docs/#getting-started.
Lastly it looks like ORATS data is 15 min delayed (I have no issue with that) but does anyone want to correct me on this? Thanks so much guys and I would love to hear your reviews on ORATS! I'll post my code for my complete scanner once it's done but in the mean time, hopefully some of you can help me along the way.
Ps. If you are just looking for historical options data. This is the best thing you can buy in my opinion for under $50 https://www.quandl.com/data/OPT-ORATS-Option-Volatility-Surfaces
Anyways, I have a ton of questions and although Mat has answered all the questions I have asked him, I have some entry level programming questions that should be asked else where. As most of you know I am a big fan of R but have recently started learning Python the last 2 weeks (this has actually made me love R even more).
Here is a link to their api documentation. https://docs.orats.io/data-api-guide/ and here is the subscriptions you can get.
Code:
library(jsonlite)
library(httr)
library(dplyr)
token = ********
x = GET("https://api.orats.io/data/cores/general?ticker=AAPL", add_headers(Authorization=token))
core = content(x)
frame = as.data.frame(core)
names(frame)
[1] "data.ticker" "data.tradeDate" "data.assetType" "data.priorCls" "data.pxAtmIv"
[6] "data.mktCap" "data.cVolu" "data.cOi" "data.pVolu" "data.pOi"
[11] "data.orFcst20d" "data.orIvFcst20d" "data.orFcstInf" "data.orIvXern20d" "data.orIvXernInf"
[16] "data.iv200Ma" "data.atmIvM1" "data.atmFitIvM1" "data.atmFcstIvM1" "data.dtExM1"
[21] "data.atmIvM2" "data.atmFitIvM2" "data.atmFcstIvM2" "data.dtExM2" "data.atmIvM3"
[26] "data.atmFitIvM3" "data.atmFcstIvM3" "data.dtExM3" "data.atmIvM4" "data.atmFitIvM4"
[31] "data.atmFcstIvM4" "data.dtExM4" "data.iRate5wk" "data.iRateLt" "data.px1kGam"
[36] "data.volOfVol" "data.volOfIvol" "data.slope" "data.slopeInf" "data.slopeFcst"
[41] "data.slopeFcstInf" "data.deriv" "data.derivInf" "data.derivFcst" "data.derivFcstInf"
[46] "data.mktWidthVol" "data.mktWidthVolInf" "data.cAddPrem" "data.pAddPrem" "data.rip"
[51] "data.ivEarnReturn" "data.fcstR2" "data.fcstR2Imp" "data.hiHedge" "data.loHedge"
[56] "data.stkVolu" "data.avgOptVolu20d" "data.sector" "data.orHv1d" "data.orHv5d"
[61] "data.orHv10d" "data.orHv20d" "data.orHv60d" "data.orHv90d" "data.orHv120d"
[66] "data.orHv252d" "data.orHv500d" "data.orHv1000d" "data.clsHv5d" "data.clsHv10d"
[71] "data.clsHv20d" "data.clsHv60d" "data.clsHv90d" "data.clsHv120d" "data.clsHv252d"
[76] "data.clsHv500d" "data.clsHv1000d" "data.iv20d" "data.iv30d" "data.iv60d"
[81] "data.iv90d" "data.iv6m" "data.clsPx1w" "data.stkPxChng1wk" "data.clsPx1m"
[86] "data.stkPxChng1m" "data.clsPx6m" "data.stkPxChng6m" "data.clsPx1y" "data.stkPxChng1y"
[91] "data.divFreq" "data.divYield" "data.divGrwth" "data.divDate" "data.divAmt"
[96] "data.nextErn" "data.nextErnTod" "data.lastErn" "data.lastErnTod" "data.absAvgErnMv"
[101] "data.impliedIee" "data.daysToNextErn" "data.tkOver" "data.etfIncl" "data.bestEtf"
[106] "data.sectorName" "data.correlSpy1m" "data.correlSpy1y" "data.correlEtf1m" "data.correlEtf1y"
[111] "data.beta1m" "data.beta1y" "data.ivPctile1m" "data.ivPctile1y" "data.ivPctileSpy"
[116] "data.ivPctileEtf" "data.ivStdvMean" "data.ivStdv1y" "data.ivSpyRatio" "data.ivSpyRatioAvg1m"
[121] "data.ivSpyRatioAvg1y" "data.ivSpyRatioStdv1y" "data.ivEtfRatio" "data.ivEtfRatioAvg1m" "data.ivEtfRatioAvg1y"
[126] "data.ivEtFratioStdv1y" "data.ivHvXernRatio" "data.ivHvXernRatio1m" "data.ivHvXernRatio1y" "data.ivHvXernRatioStdv1y"
[131] "data.etfIvHvXernRatio" "data.etfIvHvXernRatio1m" "data.etfIvHvXernRatio1y" "data.etfIvHvXernRatioStdv1y" "data.slopepctile"
[136] "data.slopeavg1m" "data.slopeavg1y" "data.slopeStdv1y" "data.etfSlopeRatio" "data.etfSlopeRatioAvg1m"
[141] "data.etfSlopeRatioAvg1y" "data.etfSlopeRatioAvgStdv1y" "data.impliedR2" "data.contango" "data.nextDiv"
[146] "data.impliedNextDiv" "data.annActDiv" "data.annIdiv" "data.borrow30" "data.borrow2yr"
[151] "data.error" "data.confidence" "data.updatedAt"
and just like that we have all this data!!(there is a ton more data as well)
I have a few questions that I hope some of you can answer.
From the subscription it says I am only able to do 2000 calls a month to the api. Do any of you know (if there is a way) to do one call which grabs the data for lets say 500 companies? If I put it into a loop (using "lapply" in R) each call would result in 1 request and therefor I could only view the data for the SPX companies 4x a month (500 calls 4x = 2000 monthly calls)!!
They used to have a request that included {stocklist} in the call but I have not seen that in the new documentation & I tried it with no luck. Here is the old documentation for their api https://api.orats.com/docs/#getting-started.
Lastly it looks like ORATS data is 15 min delayed (I have no issue with that) but does anyone want to correct me on this? Thanks so much guys and I would love to hear your reviews on ORATS! I'll post my code for my complete scanner once it's done but in the mean time, hopefully some of you can help me along the way.
Ps. If you are just looking for historical options data. This is the best thing you can buy in my opinion for under $50 https://www.quandl.com/data/OPT-ORATS-Option-Volatility-Surfaces