💻 Development Journey

From Trading Limitations to Programming Solutions

The first time I realized the need to learn programming was when I worked as a trading desk strategist. As I was engaged in the global macro trading scheme, I had to manage large databases with multiple sources - BLS, BEA, and Census to name a few, and as database grew I started to feel the limitations of Excel-based data management. I wanted more flexible data handling and functions such as automated updates and revision tracking. At this point, I knew that coding was the answer.

However, memories of my struggles with Borland C++ when I was in middle school carved fear in my soul and initially made me hesitant (yes, I was a techboy even then) to learn. The turning point came when I realized the second limitation - trading. After spending years on a global macro-driven trading desk, I clearly recognized the shortcomings of traditional qualitative approaches of self-claimed trading beasts. I felt that us, as quoted in the book "The Man Who Solved the Market," being one of trader groups infamous for both their excessive trading and overconfidence when it came to predicting the direction of the market, made us a source of easy profits for computerized hedge funds.

"Being one of trader groups infamous for both their excessive trading and overconfidence when it came to predicting the direction of the market, made us a source of easy profits for computerized hedge funds."
— The Man Who Solved the Market

I realized that strict risk management and precise, quantitative position control are foundational to success. This realization inspired me to envision a system that could constantly monitor the market and execute trades with discipline and precision. And the tools to execute such disciplined and quantitaive tasks, dry lines of binharic were quintessential - and it was the moment I decided to develop the other side of capabilities.

I began developing my programming skills alongside my quantitative mindset. The onset of COVID-19 granted me more time to focus, which I used to learn how to integrate Python with my beloved Bloomberg terminal. From there, I honed essential tools for finance professionals such as numpy, pandas, and libraries like scipy and statsmodels, which significantly deepened and enhanced my data analysis capabilities.

Given that my initial interest in programming stemmed from a need for better data management, learning MySQL became a natural progression. The days of dragging around heavy Excel files, updating sheets manually, and wrestling with cell references are long gone. Now, the price data on stocks, interest rates, futures, and cryptocurrencies are all updated automatically, enabling more scientific and rational trading decisions.

I also transitioned to a Linux environment to maximize efficiency of these automated systems, building a data server accessible from anywhere to support ongoing analysis and development. This effort culminated in the creation of my personal work-support platform, Financial Universe Cartography Kiosk, which maximizes productivity by leveraging databases automatically updated via various data source APIs to perform deep-dive analytical tasks such as macro analysis and asset price simulations.

In trading, I moved away from "animal spirit" driven approaches toward strategies based on logic and rules. As a result, I developed Mechanicum, an automated trading system used for both business and personal investments. This system includes ultra-short-term models based on tick-by-tick flows, short-term models utilizing technical analysis, and medium-to-long-term models based on asset allocation and regime analysis. Each system is continuously refined with suitable strategies tailored to its timeframe.

Beyond trading, I am engaged in various business projects that can be explored in the Projects and Apps sections of this site, driven both by interest and for fun. If you share similar passions, especially in the tech-desolate Korean fixed income market, please feel free to reach out to admin@igusami.com.

For TL; DR

🛠️ Technical Skills

Python: Primary Language

Python is my main language. Utilizing libraries suited to each purpose, I handle tasks including data collection, analysis and trading via APIs. I am also capable of visualization, documentation, and development of simple web apps using tools like Streamlit. Libraries I mainly use:

  • Finance: pandas, blp, ta-lib
  • Statistics: scipy, statsmodels
  • Visualization: matplotlib, plotly, streamlit
  • Others: pymysql (and other SQL tools), telegram, etc.

MySQL: Database Management

While data communication procedures through APIs and analysis with libraries are primarily handled in Python, MySQL is essential for designing and managing database structures. I manage vast database, mostly with automated updates:

  • Economics: Virtually all economic data from major economies.
  • Prices: Covers individual stocks, ETFs, futures, cryptocurrencies, indices, rates, fx, commodities and others with reliable price data. Intervals vary from tick data for trading to daily.

Linux: Central Workstation

As databases expanded and the need for simulations and real-time price monitoring grew, it became necessary to build a powerful standalone server. This need for efficiency and remote accessibility led me to switch to a Linux environment, allowing accumulate valuable experience in Linux development.

C#: the Next Stage

Initially focusing on Python script-based programming, I have started learning C# for its speed, efficiency, and the potential to develop GUI-based programs for broader user accessibility, other than myself. I am gradually building skills by porting existing projects and attending lectures.

Frontend: Novice

As I developed this website with my frontend master, I've been gradually learning frontend skills as well. Thanks to my master!