Skip to content
View Milanpeter-77's full-sized avatar
🎓
🎓

Block or report Milanpeter-77

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Milanpeter-77/README.md

Bumpy Road to Becoming a Quant

TL;DR: my journey from reluctantly learning C for a high school final exam to embracing R and Python for econometrics, finance, and machine learning, leading up to professional applications of coding in banking and stock market analysis.

My experience with coding is a bit ambiguous and sometimes even controversial. Back in 2020, I was about to leave my secondary school and take my final exams. One of the exam subjects was IT, which consisted of solving tasks in text, table, and slide editing software (basically in Microsoft Office programs) alongside a chosen programming language. This was part of the advanced level exam I took. I liked IT-related matters (i.e., building and configuring PCs for myself, setting the router as a request of my family, etc.), and I think I was a bit better at it than a common user, but programming just never attracted me. However, I had to learn it (against my will to some extent) for this exam. I felt that I had the greatest chance to achieve the best scores with this IT final exam, as it was needed for university application. “If I need to, I want to learn how to code in Python – a versatile, easy-to-learn (kind of) programming language.” That’s what I thought, because that was the only language I knew. On the advice of my teacher, we (he) decided I should learn C as “I can build my knowledge on it later.” With his help and guidance, I was able to learn it at the required level; I got to understand the basic concepts and purpose of programming in only 3 nerve-wracking months. As a result, I achieved almost the highest score on the final exam, and then I swore that I would never touch any codes in my life after this – aged like fine wine. The repository containing the exam task and solution can be accessed here, although only in Hungarian (which is a far more difficult language than C itself).

I kept my promise of avoiding any programming at the university up until the 4th semester. I really enjoyed taking my two mandatory statistics (descriptive and mathematical/inferential) courses, so I decided to choose econometrics as my elective course. It was advertised as a “sequel of statistics”; therefore, the decision was somewhat evident. I didn’t know that econometrics required more code work than SAS can provide. When I saw the syllabus, I felt a little discomfort. It brought up some old memories, seeing that the programming language was a single letter again – it was R. However, during the first two years at university, I became more open-minded to new knowledge, so I took the course. To my surprise, the econometrics professor was a well-recognised biostatistician and an enthusiastic R programmer. For the first couple of weeks, he only taught us programming, syntaxes, and pure understanding of how R works. The course could have been described as “studying R accompanied by econometrics” rather than “studying econometrics accompanied by R”. During the semester, he could actually teach us the R fundamentals. Our task, as a small group of students, was to find an econometric problem and dataset that can be used for prediction and explanatory modelling. We selected a dataset consisting of yacht prices and specifications, which raises the issue of mutual causality – for example, are larger yachts more expensive because of their size, or are more expensive yachts larger because they tend to be higher-end? The code is kind of half-baked and unorganised, but this is often the result of a group work where not every member has the same attitude. I cannot blame anyone, because at this point, I still didn’t really like R or coding itself. If anything, it was data analysis that started to draw my attention. I “accepted” the fact that for more complex data analysis, some sort of programming is required.

The following semester, I focused on taking elective courses related to data analysis. The first one was called “Introduction to Data Analysis in Scientific Practice”. Despite its long name, it was a one-week-long intensive course held before the semester started. Here I could finally understand why these more complex analyses need to be done using programming. For transparency, easy follow-up, recreating, and modifying the project – especially if it is part of teamwork. On this course, we learnt to use a new language and statistical software: Stata. Compared to R, it was more streamlined and oversimplified. “It is mainly used by government institutions and researchers, who don’t really like coding”, said my professor. It explains a lot. I used to like it, but I recognised its limitations and decided to direct my time and effort to learn coding in R. (That is to say, Stata being a paid software definitely didn’t help.) During the course, we gained some theoretical knowledge, then we could work on our research project individually. This task involved analysing a dataset of Airbnb rentals in Vienna to explore the factors driving a rental’s popularity. My goal was to build a model that explains what made certain listings more popular among guests. You can see the code here, but beware, the comments are in Hungarian!

The second course was the “Introduction to Financial Data Analysis.” I felt that I had way too few finance-related courses during my bachelor years, so it was a lucky coincidence being able to study both finance and data analysis. This course brought about some breakthroughs regarding my orientation in the labour market, or at least the direction I wanted to focus on. I could learn about how to implement coding on financial data, mainly on time series data. In classes, we could choose our preferred programming language, and of course we picked the one we knew – R. The course’s final project was a team assignment. I think we selected an intriguing topic and conducted it very well, because our professor recommended extending it to a research paper. So, we did that, and an event study analysis on the stock market reaction was born. I gained a lot of knowledge of R during this work, from data manipulation to visualisation. With this new knowledge and the learnt methods and tools, a new world of opportunities opened before me. I wanted to work on many projects like that – and I still do. In the following two years, I wrote two other papers as well. One investigated the impact of monetary policy decisions on the exchange rate market, while the other one was a follow-up extension of it. Both papers required coding and modelling.

Later that year, we got an opportunity to participate in a competition held by Morgan Stanley Hungary. This was a great way to experience what kind of work they actually do out there in the market. The first round’s task was to forecast the effects of climate change on agricultural crop yields. We solved it, using R of course, and got into the final round. We would have 24 hours to solve an option pricing problem of the derivatives of these particular agricultural crop yields. Honestly, we got a serious headache and failed to solve it. It was a hard way to acknowledge that I still have to learn a lot about programming and its financial applications.

Next semester spent abroad on Erasmus exchange – many new opportunities that I wanted to grab. The most important course I took was “Machine Learning”, moreover, at master level. My first encounter with Python. We got a handful of learning material for theories as well as for coding. Finally, I felt that “I want to do this in my professional life”. It was a result of a supporting environment at the university and their progressive teaching methods. We could learn from professionals and work together with institutions. The final project was a competition to classify which customer profiles are more likely to convert offers into car insurance contracts. Unfortunately, my team did not win. (Which was especially disappointing, as the award would have been a ticket to Tomorrowland.) I personally, however, won the chance to be introduced in the world of Python. I realised why is it among the most used and widespread programming language among (financial) corporations. Even if it was mandatory to use and learn it, it was very useful to me.

Back to Hungary to my final semester, time for doing my required internship. I landed a job at a commercial bank as a Credit Risk Modelling Intern. Finally, using programming at a real working environment – except for I had to use SQL and SAS. I knew the most basic syntaxes and purposes of SQL, but I’ve never actually worked with it; not to mention SAS. During these couple of months working here, my only “coding” task was to modify some input information (e.g., dates). It would have not attracted me anyways, because of their structure, user interface and performance. I know that these factors can be changed, but that didn’t help me in this situation. My experience with SQL and SAS is the shortest one. On the other hand, it was exciting to learn about how credit risk classification works in practice. Of course, the tasks I was working on are confidential and the property of the bank, therefore I decided to build my own analysis. It is to show my knowledge that I have about credit risk and to practice coding in Python.

The next thing I realise is that my internship is finished, my bachelor years are finished, I have my diploma and I’m out on the labour market. After a (fortunately) short searching, I landed a junior role at another bank – this is the 3rd one so far. To be more precise, it is an investment bank, and I am a Stock Market Analyst now. I honestly did not know what to expect for this job as I have never even thought of working with anything related to the stock market. This role itself did not require heavy amount of coding, rather relied on qualitative analysis. My team was however open-minded, and I could push through my ideas of research. Which included more than calculating only in Excel. One of my first task was to measure our analyst team’s past trade recommendations. As a result, only percentage returns were expected, but I wanted to show more. Therefore, I created a tailored made backtesting script (initially in R) that presents the results visually too. An extended and modified version of this (rewritten in Python) can be found in this repository. This is also intended to demonstrate my knowledge of basic trading orders and the algorithms behind them. As a new member of the team, of course, I was responsible for recommending stocks to invest too. For that I tried to apply my previously gained knowledge and develop some kind of machine learning model. This work is also the property of the company, so I cannot share it. This is why I created a very similar, and rather demonstrative asset classifying model and dashboard.

While working at the equity analyst team, I began to be more and more interested in the quantitative side of investing. I started to get to know how and in what ways analyst use statistics, econometrics and machine learning for investing in different periods. In short, I discovered what Quants do in a broad term. I felt – as I still do – that I’m only scratching the surface with my models and methods. Here came the realisation: I want to deepen this base knowledge and do a master’s degree. After the application, I was admitted to VU Amsterdam’s Finance Master (with the Honour Program of Quantitative Finance).Right now, I am preparing for the semester, using Python for each of my new projects.

Popular repositories Loading

  1. Competition-Morgan-Stanley-Quant-Challenge Competition-Morgan-Stanley-Quant-Challenge Public

    Morgan Stanley's Quant Challenge Qualifier Competition

    R 1

  2. Project-Trade-Recommendation-Backtesting-System Project-Trade-Recommendation-Backtesting-System Public

    Showcase of my logical thinking and understanding of trading orders

    Jupyter Notebook 1

  3. Project-MACD-Long-Trading-Strategy Project-MACD-Long-Trading-Strategy Public

    Jupyter Notebook 1

  4. Project-Credit-Risk-Analysis Project-Credit-Risk-Analysis Public

    German Credit Data - 1994

    Jupyter Notebook 1

  5. Research-Monetary-Policy Research-Monetary-Policy Public

    R 1

  6. Research-Mass-Layoffs-Event-Study Research-Mass-Layoffs-Event-Study Public

    R