You are on page 1of 2

#!

/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Jul 23 21:39:06 2021

@author: jaydevraval
"""

#C1 is Close Price


#C1ZG is Change in Price in %
#OI is the Open Interest
#OIZ is Change in Open Interest
#OIZG is Change in Open Interest in %

import requests
import json
import pandas as pd
import datetime

#Initial Parameters
currentDate = datetime.datetime.now().strftime("%Y/%m/%d")
saveDirOptions = r"/Users/jaydevraval/Documents/Stocks/StockEdge/Options_" +
currentDate + ".xlsx"
saveDirFutures = r"/Users/jaydevraval/Documents/Stocks/StockEdge/Futures_" +
currentDate + ".xlsx"
data = None
header = {"User-Agent": "Mozilla/5.0 (X11; CrOS x86_64 12871.102.0)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.141 Safari/537.36"}
optionsDict = {}
futureDict = {}
optionsDictCode = {"increaseInCallOI" : "5005", "increaseInPutOI" : "5006",
"decreaseInCallOI" : "5007", "decreaseInPutOI" : "5008"}
futureDictCode = {"newLong" : "4003","newShort" : "4004","shortCover" :
"4005","longCover" : "4006","highIncreaseInFutureOI" : "4001",
"highDecreaseInFutureOI" : "4002", "aggressiveNewLong" : "4007",
"aggressiveNewShort" : "4008", "aggressiveShortCover" : "4009",
"aggressiveLongCover" : "4010"}
quote_url = "https://api.stockedge.com/Api/AlertsApi/GetSavedAlertsByType/{}/{}?
relevantListings=10&page=1&pageSize=10&lang=en" #1001/YYYY/MM/DD
optionsKeys = optionsDictCode.keys()
futureKeys = futureDictCode.keys()

def getData(item):
response = None
while response is None:
try:
with requests.session() as s:
response = s.get(quote_url.format(item, currentDate), headers =
header)
except:
pass

data = json.loads(response.text)
return data

def runProgram():
global optionsDict
global futureDict

for i in optionsKeys:
dataDict = getData(optionsDictCode[i])
optionsDict[i] = pd.DataFrame()
for j in dataDict:
newRow = {"Symbol" : j["Symb"], "ChangeInOI" : j["Info"]["OIZ"],
"ChangeInOIPercent" : j["Info"]["OIZG"], "StrikePrice" : j["Info"]["SP"],
"TradeCount" : j["Info"]["TC"]}
optionsDict[i] = optionsDict[i].append(newRow, ignore_index = True)

for i in futureKeys:
dataDict = getData(futureDictCode[i])
futureDict[i] = pd.DataFrame()
for j in dataDict:
newRow = {"Symbol" : j["Symb"], "ChangeInOI" : j["Info"]["OIZ"],
"ChangeInOIPercent" : j["Info"]["OIZG"]}
futureDict[i] = futureDict[i].append(newRow, ignore_index = True)

def saveExcel():
global optionsDict
global futureDict

with pd.ExcelWriter(saveDirFutures, engine='xlsxwriter') as writer:


for i in list(futureKeys):
futureDict[i].to_excel(writer, sheet_name = i)

with pd.ExcelWriter(saveDirOptions, engine='xlsxwriter') as writer:


for i in list(optionsKeys):
optionsDict[i].to_excel(writer, sheet_name = i)

def main():
getData()
runProgram()
saveExcel()

if __name__ == '__main__':
main()

You might also like