Skip to content

Starter repo for task 1 of the JPMC software engineering program

Notifications You must be signed in to change notification settings

Reyluvmachalatte/forage-jpmc-swe-task-1

 
 

Repository files navigation

JPMC Task 1

Starter repo for task 1 of the JPMC software engineering program import json import random import urllib.request

Server API URLs

QUERY = "http://localhost:8080/query?id={}"

500 server requests

N = 500

def getDataPoint(quote): """Produce all the needed values to generate a datapoint""" stock = quote['stock'] bid_price = float(quote['top_bid']['price']) ask_price = float(quote['top_ask']['price']) price = (bid_price + ask_price) / 2 return stock, bid_price, ask_price, price

def getRatio(price_a, price_b): """Get ratio of price_a and price_b""" if price_b == 0: # when price_b is 0, avoid throwing ZeroDivisionError return None return price_a / price_b

Main

if name == "main": # Query the price once every N seconds. for _ in iter(range(N)): quotes = json.loads(urllib.request.urlopen(QUERY.format(random.random())).read())

    # Extract data points and calculate ratio
    prices = {}
    for quote in quotes:
        stock, bid_price, ask_price, price = getDataPoint(quote)
        prices[stock] = price
        print("Quoted %s at (bid:%s, ask:%s, price:%s)" % (stock, bid_price, ask_price, price))

    # Check if both stocks are in the prices dictionary
    if "ABC" in prices and "DEF" in prices:
        ratio = getRatio(prices["ABC"], prices["DEF"])
        if ratio is not None:
            print("Ratio %s" % ratio)
            # Add your trading strategy based on the ratio here

About

Starter repo for task 1 of the JPMC software engineering program

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%