Skip to content

ecesisllc/Summer2024

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

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

Releases

No releases published

Packages

No packages published