Core Projects

October 2025–Present

Volatility-Targeted Momentum Asset Allocation Engine

A Python model that uses market trends, momentum, and volatility to manage a portfolio.

I had wanted to understand financial markets for a long time, but finance always seemed like a completely separate and very complicated field. Eventually, that complexity became the reason I wanted to learn more about it.

I started with regular investing and simple indicators, mostly trying to understand how markets move and why certain ideas seem to work for a while and then stop working. That eventually became the part I found most interesting. The same strategy could behave very differently depending on the market environment, and I wanted to understand why.

Parameter heatmap showing a stable region of Sharpe-ratio results
A parameter heatmap used to find stable regions where nearby settings produce similar results.

That led me toward quantitative finance. Instead of relying only on judgement, I could turn an idea into code, test it on historical data, and compare how it behaved under different conditions.

I started reading research, discussing ideas with other people, and testing different approaches. Trend following became the main direction of the project because I liked the simplicity of the idea and the fact that it could be tested systematically. From there, I gradually built a Python-based asset-allocation engine.

AMD price series with fast, medium, and slow exponential moving averages and trade shading
Price, moving-average signals, and entry and exit periods shown together for diagnostic review.

The system looks at broader market trends, ranks assets using momentum, adjusts position sizes based on volatility, applies stop-loss rules, and rebalances the portfolio automatically. The main goal is not to predict every market movement. It is to follow a consistent process and keep risk under control.

One of the biggest lessons from this project has been how easy it is to overfit a strategy. A backtest can look very good simply because the settings happen to match one period of history. To reduce that problem, I tested ranges of parameters instead of searching only for the single best result. I also developed a neighbour-stability method that looks for areas where nearby parameter values behave in a similar way. The idea is to avoid choosing a setting just because it happened to produce the best historical result.

Monthly strategy return heatmap arranged by year and month
A monthly return heatmap used to inspect how results vary across time rather than relying on one aggregate metric.

I also started looking at how different market regimes affect the system. The current version is mainly trend-following, while other types of market behaviour, such as mean-reverting conditions, are still areas I want to explore.

The model is now being tested and refined further. I do not see this project as a finished trading system. It is more of an ongoing experiment in how to take a complicated and changing system, break it into smaller parts, test ideas properly, and avoid convincing myself that something works just because a backtest looks good.