Code Monkey home page Code Monkey logo

summer2024's Introduction

Introduction

This is for Guzman Energy 2024 Summer Full-Time/Part-Time Quant Internship recuriting.

  • Assignment 1-3 are required. Assignment 4 is optional. (if you apply Full-Time position instead of Part-Time Intern, Assignment 4 is required.)
  • You can use either R or Python (Recommended) for coding.
  • Requirements:
    • create your own github repository for result delivery
    • a summary report for each assignment is required.
    • for python, create jupyter notebook file
  • Due: before May 24th(Friday), 2024 5pm ET. early delivey is welcomed.
  • Hints:
    • make your code neat and self explanatory
    • in summary report, provide your insights and conclusions

Assignment 1: Power Calendar function

Objective: write R/Python function which returns number of hours by iso/peak.type/period

In power market, the industry defines certain hour of each day to peak type for block trading, so we need to calculate correctly how many hours belongs to certain block. Each ISO has a little different definition of it. Note: don't scrape data from the reference link. It's for reference only. You shall learn/understand the logic and calculate without access to any website.

Required Function: get.hours(iso, peak.type, period)

Params: (all params are required in the function)
  • iso (character): one of PJM/MISO/ERCOT/SPP/NYISO/WECC/CAISO (see item 1 below)
  • peak.type (character): one of onpeak/offpeak/flat/2x16H/7x8
  • period (character): has 4 types: “2018-2-3” as a daily, “2018Mar” as a monthly, “2018Q2” as a quarterly, “2018A” as an annually.
Return: a list variable giving iso/peak.type/start.date/end.date/num.hour where num.hour is the total number of hours of that peak type in that period.
##### Sample Run #####
> results = get_hours("ERCOT", "onpeak", "2019May")
> results
{
  'iso': 'ERCOT',
  'peak_type' : 'ONPEAK',
  'startdate': '2019-05-01',
  'enddate': '2019-05-31',
  'num_hours': 352
}

Hint:

  1. In US, there are 7 major ISOs (PJMISO, MISO, ERCOT, SPPISO, NYISO, WECC(soon to be integrated into SPP) and CAISO) see https://www.ferc.gov/power-sales-and-markets/rtos-and-isos
  2. HE, short for Hour Ending. HE2 means 01:00 - 02:00, HE14 means 13:00 - 14:00. For each single day, we have HE1 to HE24.
  3. peak.type, eastern power market considers a HE to be onpeak, if it's a non-NERC holiday weekday from HE7 to HE22, the rest are offpeak HEs. If the peak.type is flat, that means every hour. 2x16H is HE7 to HE22 for the weekend and the NERC holiday. 7x8 is non HE7 to HE22 through the week. Different ISO has different definition of peak type.
  4. MISO does not have the daylight-saving setting, the rest have. (Hint: daylight-savings will impact the function for certain month/peak.type.)

Assignment 2: Meter Data formatting

Objective: merge different data sources into single dataset and evaluate the dataset for anormaly (if any)

For analysis purpose, we always have different data sources to merge and format. It’s important to understand the data and format it correctly.

Data Files:

  • USA_AL_Auburn-Opelika.AP.722284_TMY3_BASE.csv This file gives hourly electricity consumptions for a resident with unit in kw (kilowatt).
  • new.app4.csv Assuming this is one appliance’s electricity consumption minute by minute which is not captured in the previous file. The unit in the file is in watt.

Requirements:

  • Create script to load both files and merge.
  • Given the limitation of data period, try to find the overlap period and merge the data into hourly. (ignore the year but making sure the date/hour matched)
  • After merging the source files correctly, please create one more column in the output file to give total hourly consumption of electricity. (sum all columns)
  • Create plots of the data and see if there’s any abnormal in the dataset and summarize any pattern observed from the data by hourl/weekday/month
  • Wirte code with clear documentation.

Hint:

  • try to show smart/efficient way to merge and sum column
  • try not to hard code by column number or name but making the script re-usable for general data formatting

Assignment 3: EDA and forecast model

Objective: create EDA and forecast model to predict RTLMP

We need to analyze and create predictive modeling in daily basis as quantitive analyst. Create EDA using the data and make your model to predict RTLMP from the data.

Data Files:

In the data file timeseries_data.xlsx, you can find following timeseries (hourly):

  • RTLoad: ERCOT real-time hourly actual load
  • WIND_RTI: ERCOT real-time hourly wind generation
  • GENERATION_SOLAR_RT: ERCOT real-time solar generation
  • RTLMP: ERCOT North hub real-time price

Requirements:

  • Create Exploratory Data Analysis (EDA)
  • Create forecast model to predict RTLMP

Hint:

  • notice the timestamps between independent and explanatory variables

Assignment 4 (Optional): Learn products of Futures

Objective: self-learning of market products and create hedging method

This assignment will give some information to guide you to learn U.S. Power Futures market products. The goal is to demonstrate self-learning skill and passion to explore/learn new market/products.

Products:

Data Files:

  • dataset.xlsx the file provides the time series of daily settlement prices for same strip (December 2016 product).

Requirements:

  • create understanding of the products from the links provided. (do more research with uncleared concepts)
  • assume Product 1 has no liquidation in the market and we are holding the physical power (same settlement as Product 1), how to use Product 2 & 3 to hedge our exposure to physical power (again, same settlement as Product 1)?
  • create Excel file model with weekly rebalance of your positions (only rebalance Product 2) to try to achieve hedging. within the Excel file, use parameter to decide your rebalance and summarize the efficiency of hedging.

Hint:

  • make your own assumptions and explain in summary report
  • notice contract size limit

summer2024's People

Contributors

bwu99 avatar twang96 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.