ElasticNet from Portfolio Performance Tracking

Author
Affiliation

Mingze Gao, PhD

Macquarie University

Published

July 1, 2025

This post is adapted from one of my research projects from years ago, which has been suspended due to time constraints and my limited experience in mutual fund studies. If you’d like to revive this project, please let me know.

Very often I find research super interesting in that methods across fields can be related. In this post, I explain how I somewhat derived the core concepts of ElasticNet when trying to solve a practical finance question. To some degree, this can also serve as an intuitive example for teaching and understanding the ideas behind ElasticNet.

Motivation

Mutual funds in the United States report their portfolio holdings on a quarterly basis (Form N-PORT since 2019, Form N-Q previously) with a 60-day delay allowed. Higher-frequency disclosure of fund holdings is rare and would inevitably disclose the fund’s strategy. However, the disclosure frequency of fund holdings data affects the evaluation of fund performance (e.g., ; ; ).

1 Funds report in Form N-PORT their monthly holdings to the SEC, but only the last month of each quarter’s holdings are made publicly available.

I therefore had an idea, what if we could estimate a fund’s daily fund holdings data using publicly available 1) the fund’s quarterly disclosure, 2) its daily return computed from net asset value (NAV), and 3) the daily returns of all stocks? Arguably, the estimates are ex post but can still allow for some interesting studies, especially when we cannot access the monthly fund holdings like the SEC does.

Conceptualization

To me, this is an optimization problem à la portfolio performance tracking. We choose the daily weights of all securities so that the portfolio’s returns closely track the changes of NAV, after various adjustments, subject to the constraint that the quarter-ends’ weights must conform to the reported holdings.

The problem

Formally, there are N assets indexed by i, each with daily returns rit from t=1 to T. A long-only portfolio of these N assets reports its daily returns Rt=i=1Nwitrit, where wit is the unobservable actual dollar weight of asset i in the portfolio at time t. The dollar weight wit=Pit×SitPit×Sit, where Pit is the observable price of asset i and Sit is the unobservable units of asset i in the portfolio at time t. The portfolio periodically discloses the actual holdings Sit if t is a quarter’s end. Given the asset returns rit, portfolio returns Rt and certain actual holdings wit (available for some t), is there a way to estimate the daily portfolio holdings wit (or Sit) for all i and t?

My attempt to solve the problem

As discussed earlier, the problem is similar to index tracking. The “index” to track is the observed portfolio’s daily returns.

Quadratic problem

The simplest solution formulates a constrained quadratic program that solves for the daily portfolio holdings {witPit×SitiPit×Sit} which minimize the sum of tracking error and total costs:

2 Note that {w} contains N×T parameter to estimate, while I have (N+1)×T observations. I may occasionally know some actual wt when fund managers report the quarterly portfolio holdings, which can be used as additional constraints in the optimization.

(1)minSitt=1T(Rti=1Nwit×rit)2tracking error+k=1KλkCk(S)cost penaltiess.t.wit=witt{τ|τ is a quarter’s end}wit0i,t

Here, Ck(S) is one of the K cost functions (of my choices) of {Sit} and λk>0 is a regularization parameter that controls the intensity of such cost in the overall objective function.

Cost functions

So, what cost functions should there be? I design the cost functions Ck(S) in based on some stylized facts about mutual funds.

3 For example, around 30% of time, an asset’s number of shares in a fund does not change. About 30% of time, the fund’s holding of an asset decreases. The remaining 40% of time an asset’s holding increases, 20% of which increases from 0 (i.e., new addition to the portfolio). These are based on my own checks of the 13F data.

At first, I wanted to minimize transaction costs from frequent and/or large portfolio changes. For instance, I do not want the portfolio to have 1M shares in a stock today, 0 shares the next day, then again 1M shares two days later. In practice, fund managers rarely make major adjustments every day. To capture this, I added a penalty that discourages large day-to-day changes in asset weights. The idea is simple: if today’s holding of an asset is very different from yesterday’s, there should be a cost.

Mathematically, this first cost function penalizes the squared difference in weights over time. It heavily penalizes large changes, but allows small fluctuations without too much penalty. This helps enforce smoothness — encouraging the portfolio to evolve gradually over time rather than jump around.

(2)C1(w)=t=2Ti=1Nγi(witwi,t1)2 where γi is a parameter of the transaction cost of trading asset i, e.g., the asset’s average price impact or illiquidity. I assume γi=1 for all assets for now.

This penalty works well to ensure that each asset’s weight moves gently across time, rather than sharply reacting day by day.

But then I noticed something not ideal. With this “smoothness” term, the estimated portfolio showed small, frequent adjustments — tiny tweaks in asset weights every day. That didn’t look realistic. In real data, a fund might hold a position constant for weeks or months. I needed a way to reflect that.

So I found out that I needed to add a second cost function that also penalizes the presence of any change at all.

(3)C2(w)=t=2Ti=1Nφi|witwi,t1|

where φi is a parameter assumed to be 1 for all assets for now.

This new term penalizes the absolute difference in weights between days, rather than the squared difference. Unlike the first penalty, this one grows linearly with change size — and, more importantly, it applies the same cost whether a change is small or large (no squared diff!). This naturally leads the model to avoid unnecessary small trades, which matches fund behavior much more closely.

In other words, this second term promotes sparsity in changes. It encourages the model to stick with yesterday’s holdings unless there’s a strong reason to adjust.

ElasticNet?!

Together, these two cost functions balance each other.

  1. The first (squared difference, ) smooths weight paths, allowing gentle adjustments rather than big shifts day to day.
  2. The second (absolute difference, ) discourages daily churning and encourages periods of no change.

This combination turns out to be conceptually similar to the ElasticNet approach in regression — linearly combining the L1 and L2 penalties of the lasso and ridge methods.

What’s next?

This project began as an attempt to reverse-engineer daily portfolio holdings from limited disclosure data and observed returns. The early results are promising: even without hard constraints, the optimization recovers plausible dynamics using cost functions inspired by fund behavior. But the model remains incomplete. I haven’t yet imposed the binding constraints from known quarterly holdings nor have I incorporated richer institutional features about mutual funds.

More broadly, this is a problem that could benefit from machine learning and AI that could capture more realistic adjustment patterns, while data-driven regularization might outperform hand-crafted penalties. Methodologically, this line of work offers tools for inferring fund behavior from noisy or partial data. It could shed light on the hidden mechanics of portfolio management. But to be truly useful, significant more work is needed.

Back to top

References

Elton, Edwin J., Martin J. Gruber, Christopher R. Blake, Yoel Krasny, and Sadi O. Ozelge. 2010. “The Effect of Holdings Data Frequency on Conclusions about Mutual Fund Behavior.” Journal of Banking & Finance 34 (5): 912–22. https://doi.org/https://doi.org/10.1016/j.jbankfin.2009.10.002.
Jiang, George J., Tong Yao, and Tong Yu. 2007. “Do Mutual Funds Time the Market? Evidence from Portfolio Holdings.” Journal of Financial Economics 86 (3): 724–58. https://doi.org/https://doi.org/10.1016/j.jfineco.2006.09.006.
Parida, Sitikantha, and Terence Teo. 2018. “The Impact of More Frequent Portfolio Disclosure on Mutual Fund Performance.” Journal of Banking & Finance 87 (February): 427–45. https://doi.org/https://doi.org/10.1016/j.jbankfin.2015.01.018.