Python/VBA Skills in S&T

I see a lot of folks talk about how valuable knowing some python skills can be as a junior on the trading floor. What are some tangible tasks/skills that I should be comfortable with in python and/or vba for purposes of a summer internship? Regression analysis? Manipulating/Filtering dataframes? ARIMA or other time-series analysis? The more granular you can be, the better. 

6 Comments
 

Really depends on the desk, so best to ask around after you accepted an offer.

VBA or python to automate spreadsheets is enough to be a value add for most desks. Simple things like copy pasting from different files, processing data, formatting reports etc.

More quanty desks, usually on the trading/structuring/research side would make more use of more complex stuff, but it’s pretty product specific, and what coding you do as an intern will depend on how Mathy your manager and senior colleagues are.

Once you know where you’re placed pick a textbook or too and try to program some simple examples from it.

 
Most Helpful

The first comment sums it up great. I would add that no matter what desk your on, being able to automate a task is huge.

Whether it’s an email that sends out a report or a script that scrapes market data, understanding the fundamental programming building blocks is very important (variables, if/else statements, for loops, etc..)

If you have no programming experience at all, I’d start with VBA as almost all trading desks have tools written in that. There are tons of free learning sources out there so a simple google search is all you need to do.

I wouldn’t spend weeks of your time reading books.. once you understand the basic building blocks (mentioned above), I would try to automate or create a script of your own.

Here’s a practical example:

  1. on your own PC create a folder called daily PNL files and fill it up with files in a naming convention like YYYYMMDD.csv.
  1. You can put fake PNL data in the sheet based off each portfolio on the desk for each trading day.
  1. From there, create an excel sheet that has a macro in it that goes into that folder, finds the latest daily PNL file (based off the names of the files or time stamps of the files).
  1. After that, have the macro open the file and bring the data into the Main excel sheet your coding in.
  1. Once the data is in the main sheet you can manipulate the data in some way (for example, hove the script prompt the user to input an fx exchange rate and then convert the PNL numbers from USD to CAD.
  1. Once you did some sort of data manipulation, have the script save the data as a new file in a new folder and then have the script create an outlook email and attach the new saved file to the email.

While this is a simplified example, it will teach you a lot of fundamental programming logic. Also, If you do choose to start with VBA try to avoid using the “record macro” button as that does the programming for you.

If you can add value like this on a desk for a summer internship, the odds of the desk brining you back on full time is good (Atleast in my experience).

Good luck!

 

craig_ferguson

The first comment sums it up great. I would add that no matter what desk your on, being able to automate a task is huge.

Whether it's an email that sends out a report or a script that scrapes market data, understanding the fundamental programming building blocks is very important (variables, if/else statements, for loops, etc..)

If you have no programming experience at all, I'd start with VBA as almost all trading desks have tools written in that. There are tons of free learning sources out there so a simple google search is all you need to do.

I wouldn't spend weeks of your time reading books.. once you understand the basic building blocks (mentioned above), I would try to automate or create a script of your own.

Here's a practical example:

  1. on your own PC create a folder called daily PNL files and fill it up with files in a naming convention like YYYYMMDD.csv.
  1. You can put fake PNL data in the sheet based off each portfolio on the desk for each trading day.
  1. From there, create an excel sheet that has a macro in it that goes into that folder, finds the latest daily PNL file (based off the names of the files or time stamps of the files).
  1. After that, have the macro open the file and bring the data into the Main excel sheet your coding in.
  1. Once the data is in the main sheet you can manipulate the data in some way (for example, hove the script prompt the user to input an fx exchange rate and then convert the PNL numbers from USD to CAD.
  1. Once you did some sort of data manipulation, have the script save the data as a new file in a new folder and then have the script create an outlook email and attach the new saved file to the email.

While this is a simplified example, it will teach you a lot of fundamental programming logic. Also, If you do choose to start with VBA try to avoid using the "record macro" button as that does the programming for you.

If you can add value like this on a desk for a summer internship, the odds of the desk brining you back on full time is good (Atleast in my experience).

Good luck!

Quoted because I plan to take a VBA class this fall (returning to school).

The CC I’m attending offers VBA as a specialized class.

A lot of the firms I’m looking to apply to would like to have people know Python or VBA. Most of their applications do not have any experience.

 

Thank you for this post, this is really useful as planning to spend some of my downtime over next couple of months brushing up on VBA/Python before starting SA in June. Q re record macro functionality within VBA - good idea to practice familiarising myself with what the outputs look like using record macro as a way of starting, before moving onto writing myself without? Only having just started and not entirely sure what the notation should exactly read like. Would appreciate any tips or steer here - thanks!

 

Beatae omnis facilis fuga assumenda omnis. Ex accusantium quisquam eligendi et voluptatibus. Iure neque ut possimus repellat totam nisi.

Qui itaque aspernatur enim laudantium odio repellendus ut. Sint sit similique veritatis. Accusamus aut quas consequatur tempora. Aliquid aut numquam saepe iste maxime. Quasi dolor perspiciatis ad.

Molestiae reiciendis et nesciunt sit eius officiis eius libero. Error laudantium et corrupti atque nihil. Autem natus adipisci blanditiis autem accusamus.

Career Advancement Opportunities

June 2026 Investment Banking

  • Evercore 01 99.4%
  • Moelis & Company 01 98.8%
  • JPMorgan 01 98.3%
  • Guggenheim Partners 01 97.7%
  • Morgan Stanley 07 97.1%

Overall Employee Satisfaction

June 2026 Investment Banking

  • Moelis & Company No 99.4%
  • Morgan Stanley 02 98.8%
  • Evercore 01 98.2%
  • BMO Capital Markets 12 97.7%
  • Banco Santander 01 97.1%

Professional Growth Opportunities

June 2026 Investment Banking

  • Evercore 01 99.4%
  • Moelis & Company 01 98.8%
  • Morgan Stanley 05 98.3%
  • JPMorgan No 97.7%
  • BMO Capital Markets 12 97.1%

Total Avg Compensation

June 2026 Investment Banking

  • Vice President (14) $434
  • Associates (44) $258
  • 3rd+ Year Analyst (8) $210
  • 2nd Year Analyst (22) $179
  • Intern/Summer Associate (13) $156
  • 1st Year Analyst (78) $151
  • Intern/Summer Analyst (72) $101
notes
16 IB Interviews Notes

“... there’s no excuse to not take advantage of the resources out there available to you. Best value for your $ are the...”

Leaderboard

1
redever's picture
redever
99.2
2
Secyh62's picture
Secyh62
99.0
3
kanon's picture
kanon
99.0
4
BankonBanking's picture
BankonBanking
99.0
5
DrApeman's picture
DrApeman
98.9
6
dosk17's picture
dosk17
98.9
7
GameTheory's picture
GameTheory
98.9
8
Betsy Massar's picture
Betsy Massar
98.9
9
CompBanker's picture
CompBanker
98.9
10
Linda Abraham's picture
Linda Abraham
98.8
success
From 10 rejections to 1 dream investment banking internship

“... I believe it was the single biggest reason why I ended up with an offer...”