Minervini Algorithmic Approach

Download as pdf or txt
Download as pdf or txt
You are on page 1of 99

Linköping University — Department of Management and Engineering

Master’s thesis, 30 ECTS — Industrial Engineering & Management Programme


Spring 2023 — LIU-IEI-TEK-A–23/04717–SE

Mimicking Claimed Alpha Generating Strategies


Master Thesis

Patric Torén

Examiner: Helene Lidestam


Supervisors: Øystein Fredriksen and Martin Ludvigsson
June 21, 2023
Abstract

This research paper focuses on the implementation and evaluation of Minervini’s momentum analysis
techniques in an algorithmic approach. The study aimed to assess the limitations and challenges associ-
ated with executing Minervini’s strategy in an algorithmic trading system. Several technical restrictions,
practical application problems, and the exclusion of fundamental and catalyst aspects contribute to the
implementation of a primitive variant of Minervini’s strategy. The challenges included the subjective
nature of base patterns making bases difficult to identify and limitations in risk and position sizing.
However, despite the challenges, the algorithmic approach offers advantages such as the ability to analyze
a large number of stocks rapidly. It is suggested to use the algorithm as a tool for stock exclusion rather
than fully automating the buying and selling decisions.

The research investigates the possibility of generating excess returns in Sweden, Denmark, and Finland
using the implemented algorithm over different time periods from 2008 to 2023. Hundreds of stocks
were divided up into 18 stock portfolios based on market capitalization size calculations for a given year.
These portfolios were traded using both the momentum strategy and an index strategy. The empirical
results indicate that small-cap portfolios exhibited consistent excess returns compared to mid-cap and
large-cap portfolios, particularly during high volatility periods. However, the research did not account
for transaction costs, which are essential to evaluate the strategy’s net returns in real-world scenarios.
Despite the exclusion of transaction costs in the study, the significant excess returns observed in small-
cap portfolios indicate that the implemented momentum strategy performs notably better for small-cap
stocks compared to mid-cap and large-cap stocks. This finding contradicts the efficient market hypothesis,
assuming equal transaction costs across different market capitalizations. Further research should consider
incorporating transaction costs to gain a more comprehensive understanding of the strategy’s overall
performance and its practical implications for various market segments. Future research should consider
incorporating transaction costs and optimizing the stop-loss and profit-taking levels, and exploring a
weekly-based approach instead of a daily-based approach. Additionally, volume analysis, data handling
improvements, and a more detailed analysis of buy and sell decisions are recommended to optimize the
algorithm’s performance for future research.

To summarize, while the implemented algorithm does not fully mimic Minervini’s strategy, it offers
valuable insights and potential value, especially in small-cap stocks. Further research and optimization
are required to enhance its effectiveness and address the identified limitations.

I
Acknowledgments

Writing the thesis alone has presented occasional challenges and the author would like to give a special
thanks to the student Marcus Alvebro who gave valuable input in the process of designing the algorithm
and the student Fredrik Åslin who has inspired during many long days of writing and programming
at Island, Linköping University. Furthermore, I am grateful for the support and laughter provided
by my girlfriend Emma, the incredible curvecrash-team, and the welcoming community of Karlavagnen
- En fristad. I also want to thank my supervisor, Øystein Fredriksen, for accepting the subject of
the master thesis, even though the subject may have been outside Øystein’s comfort zone considering
the programming aspect of the thesis. I also want to thank my supervisor Martin Ludvigsson for his
availability on short notice where meetings with Martin have helped me keeping the birds eye view of
what is important on an overview level in the research. The author would also like to thank the examiner
Helene Lidestam for her valuable feedback. Lastly, the author expresses an immense gratitude to Mark
Minervini, whose remarkable achievements have served as the inspiration for this research. Minervini’s
brilliance radiates like a shining star, igniting the fire within to aspire and excel.

Signature:

II
Nomenclature

Basing Period Base formation time period.

Large Cap OMX Stockholm Large Cap

Mid Cap OMX Stockholm Mid Cap

Small Cap OMX Stockholm Small Cap

First North Nasdaq First North Growth Market

large-cap Simulated Large Cap for a given year.

mid-cap Simulated Mid Cap for a given year.

small-cap Simulated Small Cap for a given year.

III
Table of Contents

1 Introduction 1

1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Problem Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Purpose and Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Delimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Frame of Reference 4

2.1 Compilation of Research on the EMH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Theoretical Explanations for Momentum Strategies’ Success . . . . . . . . . . . . . . . . . 4

2.3 The Definition of a Momentum Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 Compilation of Previous Momentum Research . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.5 Summary of Momentum Strategy Research . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.6 Momentum Research in Relation to Market Efficiency . . . . . . . . . . . . . . . . . . . . 6

2.7 Momentum Analysis Techniques of Minervini’s Stock Trading Strategy . . . . . . . . . . . 7

3 Replicable Method 12

3.1 Algorithmic Implementation of Minervini’s Momentum Techniques . . . . . . . . . . . . . 12

3.2 Summary of Parameter Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Comprehensive Walkthrough of the Algorithm Iteration Process . . . . . . . . . . . . . . . 15

4 Method 17

4.1 Scientific Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3 Python Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.4 Portfolio Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.5 Selected Portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.6 Overview of the the Algorithm Iteration Process . . . . . . . . . . . . . . . . . . . . . . . 20

4.7 Algorithm Performance Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.8 Ethical Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.9 Method Criticism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.10 Quality Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

IV
5 Results 24

5.1 Statistically Outperforming Portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2 Statistically Non-outperforming Portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.3 Hypothesis Tests for All Portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6 Analysis 31

6.1 Analysis of the Replicable Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6.2 Data Quality and Data Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.3 Empirical Results in Relation to the Efficient Market Hypothesis . . . . . . . . . . . . . . 35

6.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7 Conclusion and Further Research 41

7.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7.2 Further Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

A Appendix A - Evaluated Portfolios 2

B Appendix B - All Shares Analyzed in the Report 3

B.1 Swedish companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

B.2 Finnish companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

B.3 Danish Companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

C Appendix C - Example of a Trade History 13

D Appendix D - Algorithm Run Extract 14

E Appendix E - Date Range Dataframe Extract 15

F Appendix F - Price Dataframe Extract 16

G Appendix G - Return and Active Trades for All Portfolios 17

G.1 Small-cap portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

G.2 Mid-cap portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

G.3 Large-cap portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

V
List of Figures

1 An overview of an iteration over one stock in the algorithm. . . . . . . . . . . . . . . . . . 16

2 An overview of the implemented algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Return and active trades for the Sweden small-cap portfolio between 2008-2023. . . . . . . 25

4 Return and active trades for the Finland small-cap portfolio between 2008-2023. . . . . . 26

5 Return and active trades for the Finland small-cap portfolio between 2018-2023. . . . . . 27

6 Return and active trades for the Sweden mid-cap portfolio between 2008-2023. . . . . . . 29

7 The figure above shows excess return which is defined as the momentum strategy return
subtracted by the index portfolio return . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

8 The figure above shows excess return which is defined as the momentum strategy return
subtracted by the index portfolio return . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

9 Finland 08-23 portfolio with highlighted volatility zones . . . . . . . . . . . . . . . . . . . 37

10 Active trades in Finland 18-23 portfolio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

11 Return and active trades for the Sweden small-cap portfolio between 2008-2023. . . . . . . 18

12 Return and active trades for the Finland small-cap portfolio between 2008-2023. . . . . . 19

13 Return and active trades for the Denmark small-cap portfolio between 2008-2023. . . . . . 20

14 Return and active trades for the Sweden small-cap portfolio between 2018-2023. . . . . . . 21

15 Return and active trades for the Finland small-cap portfolio between 2018-2023. . . . . . 22

16 Return and active trades for the Denmark small-cap portfolio between 2018-2023. . . . . . 23

17 Return and active trades for the Sweden mid-cap portfolio between 2008-2023. . . . . . . 24

18 Return and active trades for the Finland mid-cap portfolio between 2008-2023. . . . . . . 25

19 Return and active trades for the Denmark mid-cap portfolio between 2008-2023. . . . . . 26

20 Return and active trades for the Sweden mid-cap portfolio between 2018-2023. . . . . . . 27

21 Return and active trades for the Finland mid-cap portfolio between 2018-2023. . . . . . . 28

22 Return and active trades for the Denmark mid-cap portfolio between 2018-2023. . . . . . 29

23 Return and active trades for the Sweden large-cap portfolio between 2008-2023. . . . . . . 30

24 Return and active trades for the Finland large-cap portfolio between 2008-2023. . . . . . . 31

25 Return and active trades for the Denmark large-cap portfolio between 2008-2023. . . . . . 32

26 Return and active trades for the Sweden large-cap portfolio between 2018-2023. . . . . . . 33

27 Return and active trades for the Finland large-cap portfolio between 2018-2023. . . . . . . 34

28 Return and active trades for the Denmark large-cap portfolio between 2018-2023. . . . . . 35

VI
List of Tables

1 Summary of Momentum Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Table exemplifying MA50 and MA50 with flex factor. . . . . . . . . . . . . . . . . . . . . 12

3 Table showing example of stock price, buy price, gain percentage, and stop-loss price for
two dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Table showing how the risk could vary for a trade with a fixed stop-loss of 8% and a varying
position size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Table showing an example of how the position sizing of various equities will vary from one
day to another as the number of active trades varies. . . . . . . . . . . . . . . . . . . . . . 14

6 Available stock indexes/lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

7 Hypothesis tests for all portfolios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

8 Table showing an example of how the risk varies for a trade with a when stop-loss and
position size is altered. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

9 Sharpe ratios for the portfolios where the momentum strategy generated statistical excess
return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

10 All analyzed portfolios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

11 Stock Performance: Modern Times Group B (Stock ID: 148) . . . . . . . . . . . . . . . . 13

12 Example table showing how the position sizing of various equities will vary from one day
to another. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

13 The date range dataframe above shows how many active trades there are for a given date.
For there was one active trade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

14 The date range dataframe above shows how the date range dataframe looks like for the
buy and hold strategy active trades there are for a given date. . . . . . . . . . . . . . . . . 15

15 A condensed version of a price dataframe used for every stock. The data in the table comes
from stock id 750 which is Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

VII
1 Introduction

1.1 Background

The efficient market hypothesis (EMH) originates from Fama (1963) who stated that markets are ratio-
nally priced when taking in consideration all the information that is available. A little further down the
road Damodaran (2015) argued that even though equities in markets have random fluctuations, markets
could still be efficient. Damodaran’s (2015) modified version of the EMH defined the efficient market as
one where “the market price of an asset is an unbiased estimate of the true value of the investment”.
According to Damodaran (2015), a market can therefore still be considered efficient even if the prices of
equities deviate from their true value, as long as these deviations are random in nature. If the valuation
of assets only differs by randomness from the true value this would imply that no investor can consistently
outperform the market. Today there are both believers and non-believers of the EMH. On the believer
side, Malkiel (2003) stated in a research report that “a monkey throwing darts with a blindfold could
pick stocks as well as a fund manager”. On the non-believer side there are still many market participants
who believe that there are certain market inefficiencies that can be exploited to achieve market-beating
returns. One such group of investors are momentum traders. Momentum traders believe that stock
prices tend to continue moving in the same direction for some time after a trend has been established.
One theory explaining the existence of momentum in markets is that initial market reactions to new
information may be irrational, causing prices to either overreact or underreact (Moskowitz and Daniel
2011. According to Jegadeesh and Titman (1993) the momentum strategy that was implemented in their
report managed to generate excess return. In their research report the conclusion was that buying stocks
that performed well and selling stocks that performed poor on the selected time period of a year is a
strategy that generates excess returns (Jegadeesh and Titman, 1993). The same momentum strategy
used by Jegadeesh and Titman (1993) has been replicated and the applied on various markets and time
frames and the excess return generated has been confirmed by Rouwenhorst (1998); Moskowitz and Grin-
blatt (1999). However not all studies find evidence of momentum strategies, Agathee (2012) found that
momentum strategies does not generate excess return. To summarize some studies have found evidence
of momentum, others have failed to find a significant effect. This has led to a debate in the academic
literature about whether momentum trading is a real phenomenon or whether it is simply a statistical
artifact.

Aside from the scientific researchers there are notable momentum traders who have achieved significant
returns over long periods of time. One notable momentum trader is Mark Minervini. Minervini (2022)
won the U.S. Investing Championship in 1997. Pure luck one might say? Which is why Minervini
(2022) engaged and won the same championship in 2021 with an annualized return of 155%. Minervini
has achieved exceptional returns over a long period of time using Minervini’s proprietary momentum
trading strategy. Minervini’s performance could be based on consistent luck over the last 20 years, but
it is improbable which is what makes Minervini’s trading strategy interesting to research. This research
seeks to investigate the replicability of Minervini’s momentum trading strategy in the Swedish, Finnish
and Danish equity markets. The purpose of this research is to evaluate whether it is possible to achieve
market-beating returns using an algorithmic implementation of Minervini’s approach. The study will also
examine the potential limitations and delimitations of the strategy, as well as its implications for the EMH.
The implementation of Minervini’s strategy in an algorithmic approach to research momentum is different
from the research by Jegadeesh and Titman (1993), Moskowitz and Grinblatt (1999), Rouwenhorst (1998)
and Agathee (2012). In the algorithmic implementation of the momentum strategy used by Minervini,
buy and sell decisions will be based on a daily price analysis compared to the aforementioned momentum
research were the buy and sell analyses were made on a time span of at least three months.

1.2 Problem Specification

Jegadeesh and Titman (1993), Rouwenhorst (1998), Moskowitz and Grinblatt (1999), and Agathee (2012)
conducted extensive research on the momentum effect using historical prices spanning a 3–12-month
period and holding periods that varied from 3-12 months as well. However, as the momentum effect is

1
not defined within a specific time frame, it could be studied on a shorter time interval. The momentum
effect using a shorter time frame where decision making is made daily has not been extensively explored
and warrants further investigation. Minervini is a momentum strategy trader that claims to have a
proven method to generate excess returns within the equity market which makes Minervini’s (2013)
strategy relevant to initiate shorter term momentum research on. Minervini’s momentum strategy (2013)
primarily relies on daily spot price analysis and volume of a traded stock, which is different from the
research mentioned earlier. Minervini (2022) is a full-time equity trader who has released multiple books
to explain Minervini’s trading strategy. These books create the basis of the momentum strategy that will
be implemented by programming a buy and sell algorithm in python. The algorithm analyses stocks on
the daily time frame and buys and sells the stock depending on if the conditions from the chosen strategy
are achieved.

1.3 Purpose and Research Questions

The purpose of this study is therefore to analyze and examine the technical analysis techniques of Mark
Minervini’s stock trading strategy and evaluate the effectiveness of implementing the strategy in an
algorithmic approach. The study aims to identify the limitations and challenges of executing Minervini’s
momentum trading strategy using an algorithm and assess the possibility of generating excess returns in
the stock markets of Sweden, Denmark, and Finland over different time periods ranging from 2008-2022.
To achieve this purpose, the following research questions has been formulated:

1. What are the limitations and challenges of executing Minervini’s momentum analysis techniques in
an algorithmic approach?
2. Is it possible to generate excess returns in Sweden, Denmark, and Finland by using the implemented
algorithm over different time periods ranging from 2008-2022?

The research questions have been determined through the logical process of understanding if and how it is
possible to implement Minervini’s trading strategy and determine the effectiveness of the implementation.
By answering the research questions, the study aims to provide private investors with valuable insights
into the practical implementation of Minervini’s momentum techniques and contribute to the existing
momentum strategy research.

1.4 Delimitations

The study assumes that all trades can be executed without any restrictions on liquidity or transaction
costs. By assuming that trades can be executed without any restrictions on liquidity or transaction costs,
the study can provide a more straightforward analysis of the trading strategy’s performance without the
added complexity of real-world constraints. However, it’s important to note that these assumptions may
not hold in practice, and the results may differ when real-world limitations are considered.

The analysis is limited to the Swedish, Danish, Finnish stock markets and covers the period from January
2008 to January 2023. This delimitation sets the geographical and temporal boundaries of the study. By
focusing on the Nordic region and a specific time period, the study can provide a more focused analysis
of the trading strategy’s performance in these markets. However, it’s important to acknowledge that the
results may not be applicable to other markets or time periods, and further research would be necessary
to evaluate the strategy’s performance in different contexts.

Furthermore, it is difficult to perfectly mimic Minervini’s trading strategy in the algorithm due to several
reasons. Firstly the research report covers only a part of Minervini’s full strategy, the research is therefore
not testing Minervini’s full trading strategy only the momentum techniques and the momentum analysis
in the strategy. This is further discussed in Chapter 6.1.3. Moreover, the momentum technique is not
possible to implement with the time frame that was given. The algorithmic implementation is essentially
a simplification of Minervini’s strategy even when it comes to the momentum analysis aspects. For

2
example the buying point is different in the implemented algorithm compared to how Minervini applies
it in real life because of the difficulty of precisly mimicking something in a algorithmic approach. The
buying will be delimited from Minervini’s strategy primarily in two ways. Firstly Minervini might not buy
a share even though it fulfills all Minervini’s criteria because the current market sentiment (Minervini,
2013). In this research report the assumption is that a negative market will generate an insignificant
amount of buy signals and thus there will be significantly less buy signals during a negative market trend.
Secondly, Minervini always identifies a so-called “base pattern” of a specific stock before buying. This base
pattern is difficult to implement in an algorithm partly because of the complexity of condensing basing
patterns into an algorithm and partly due to the subjectivity of basing patterns. Therefore, instead of
fully implementing base patterns in the algorithm, a simplified version that mimics the base patterns will
be implemented. These are just two examples of implementations that needs to be simplified. This is
evaluated and discussed further in Chapter 3.1.

Moreover, the execution of the strategy also involves a lot of discretionary decision-making, which can be
difficult to replicate in an algorithm. For instance, Minervini often emphasizes the importance of staying
flexible and being able to adjust the strategy as per the market conditions. This requires a high degree
of situational awareness and a deep understanding of the market dynamics, which may not be possible
to automate using an algorithm. This is further discussed in Chapter 6.1.1.

3
2 Frame of Reference

2.1 Compilation of Research on the EMH

There are research reports concluding that markets are efficient, a research report by Maxey (2017)
concluded that 92% of the actively managed funds were not able to beat their comparative index over a
15-year period making a statement regarding the efficiency of markets. However, other research reports
such as Amenc and Le Sourd (2015) and Lo (2004) have a more dynamic view regarding the efficiency
of markets in comparison to the EMH by Fama (1963), Damodaran (2015) and Maxey (2017) . Amenc
and Le Sourd (2003) concluded in their research that the ability for a portfolio to surpass a market index
is associated with the market’s assessment of the securities and their inherent value, and the capacity to
take advantage of imbalances in the market equilibrium. Whether these imbalances exist is dependent on
the speed and effectiveness in which new information is incorporated into the financial market, and the
valuation of the securities in the market (Amenc and Le Sourd, 2003). This aligns well with Lo (2004)
who takes a more evolutionary perspective. According to Lo (2004), a market’s efficiency and the effect
of momentum can vary in different contexts. Lo (2004) argues that in a stock market environment where
there are plenty of resources, the number of market participants will increase, which in turn will lead to
greater consumption of these resources. Fewer resources have a negative impact on the number of market
participants (Lo, 2004). Therefore, the researcher concludes that the efficiency of markets depends on
the survival of market participants (Lo, 2004). This could mean that momentum strategies are more
or less suitable depending on the economic climate in which they are applied (Lo, 2004). To conclude,
there is research on both sides of the spectrum regarding market efficiency, the EMH might be more
dynamic than what Fama (1963) suggested and Damodaran (2015) later built on to. Markets might be
more varying than this as suggested by by Lo (2004) and Amenc and Le Sourd (2003). Markets might
be varying in efficieny and this leaves some room to discuss when and why markets could be temporarily
less efficient as suggested by Fama (1963) and Damodaran (2015).

2.2 Theoretical Explanations for Momentum Strategies’ Success

As was stated earlier in the background section of this report there have been multiple research reports
that have found momentum strategies to consistently generate excess return. According to Moskowitz and
Daniel (2011) the reason why momentum strategies work is based on the theory of delayed overreactions
and initial underreactions. According to Moskowitz and Daniel (2011) equities initially have over- or
under reactions meaning prices of equities move either too much or too little when news reaches the
market. This is the explanation as to why momentum strategies could work. Similar perspective on the
momentum strategy is brought forward by De Bondt and Thaler (1985) who claim that investor emotions
is the reason for initial overreactions as well as initial underreactions.

2.3 The Definition of a Momentum Strategy

Traditionally the momentum strategy used by Jegadeesh and Titman (1993) incorporated only one factor,
the price of an equity. More specifically the price trend, where prices are expected to keep moving in the
current direction they are currently heading, whether that is increasing or decreasing in price. However,
according to more modern interpretations (Investopedia 2023), a momentum strategy usually includes
both the price and volume analysis of a stock. For this research, the more modern definition of momentum
strategies is used, thus including both price and volume analysis of an equity.

2.4 Compilation of Previous Momentum Research

In “Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency” Jegadeesh
and Titman studied the stock market in the USA between 1965-1989 (Jegadeesh and Titman, 1993).

4
The study concluded that positive significant excess return was generated by buying equities that had a
positive momentum and selling equities that had a negative momentum (Jegadeesh and Titman, 1993).
Jegadeesh and Titman ranked equities based on their returns from the last 3, 6, 9 and 12 months. For
every time interval they picked out the strongest performing 10% of equities and added them to an equally
weighted portfolio which they held for 3, 6, 9 or 12 months. In conclusion they studied a total of 16
portfolios. The most significant excess return was generated by using 12 months of input stock price
data and holding the stocks for 3 months (Jegadeesh and Titman, 1993). It is also notable that all the
portfolios from the research generated excess return (Jegadeesh and Titman, 1993). From the research,
Jegadeesh and Titman also estimated the risk for the different portfolios by calculating portfolio betas.
It was concluded that the risk of the portfolios could not explain the generated excess return, thus the
risk taken, and the returns given were not congruent(Jegadeesh and Titman, 1993). The authors stated
that outperformance is unlikely to be inferred from a higher degree of risk because of the “magnitude
and persistence” of the results (Jegadeesh and Titman, 1993).

In “Profitability of Momentum Strategies: An Evaluation of Alternative Explanations” (2001) by Je-


gadeesh and Titman the research from 1993 was repeated in 2001 with the same method. The scientists
updated the study for two reasons. Firstly, they wanted to reinforce their prior findings and secondly,
they wanted to investigate new explanations for the momentum effect. The Efficient Market Hypothesis
proposes that predictable patterns should be immediately capitalized upon, which in this instance would
imply that the momentum effect would be neutralized (Fama, 1963). However, the researchers were
able to demonstrate that the momentum effect continued to generate excess return and the momentum
strategy was established as a profitable strategy on the American market. Jegadeesh and Titman further
developed their research by adjusting the returns of portfolio for risk using the Fama-French three-factor
model. Despite considering risk, the excess returns remained statistically significant, which was congruent
with their earlier research from 1993. Jegadeesh and Titman argue that the persistence of the momentum
effect from their study in 1993 still was viable represents a strong argument against the Efficient Market
Hypothesis (Jegadeesh and Titman, 2001).

Rouwenhorst (1998) conducted a study of twelve European countries between 1978 and 1995, using a
similar investment strategy as Jegadeesh and Titman (1993). The research showed that the momentum
effect exists in all European markets examined (Rouwenhorst, 1998). Portfolios that included buying
winners and selling losers generated significant outperformance (Rouwenhorst, 1998). The study indicated
that the best-performing momentum strategy was to pick the strongest performing stocks on a 12-month
historical interval and then hold the stocks for a period of three months. This result is congruent with
the conclusions from the research by Jegadeesh and Titman (1993). The optimal portfolio outperformed
the market with an average of 1.84% per month. Furthermore Rouwenhorst (1998) concluded that the
outperformance could not be explained by an increase in risk and that the momentum strategy had a
weaker performance in emerging markets.

Moskowitz and Grinblatt conducted a similar study to Jegadeesh and Titman (1993) on the US mar-
ket with equities, but with the difference that the study tested industries instead of individual stocks
(Moskowitz and Grinblatt, 1999). The research concluded that the reason behind the effectiveness of
momentum strategies can be explained by momentum within stock industry groups and not individ-
ual stocks themselves(Moskowitz and Grinblatt, 1999). According to Moskowitz and Grinblatt there is
no excess return from momentum strategies after controlling the returns from the underlying industry
(Moskowitz and Grinblatt, 1999). However, in 1998 the researchers Grundy and Martin indicated that
industry performance was not relevant for the performance of a momentum strategy for an individual
stock (Grundy and Martin, 1998). The conclusions thereby contradicting the research by Moskowitz and
Grinblatt (1999).

In “Momentum Has Its Moments” by (Barroso and Santa-Clara, 2015) the research acknowledges that
momentum strategies can be profitable over certain periods, but argues that the effect is not consistent
across all markets and time periods, and may be driven by behavioral biases rather than true market
inefficiencies. This is similar to De Bondt and Thaler (1985) because emotions are the underlying factor
behind momentum strategies.

The paper ”Momentum in the UK Stock Market” (Tonks and Hon, 2003) examines momentum strategies
in the UK stock market using data from 1965 to 2000. They discovered that momentum strategies

5
generate excess return over the period studied, even after accounting for transaction costs. The authors
also found that momentum strategies work better for small stocks than for large stocks. Moreover, they
also found that the effectiveness of momentum strategies has weakened in more recent years and varies
across different industries. According to Lesmond, Schill and Zhou (2004) the transaction costs perfectly
balances out the potential excess return created from momentum investing.

2.5 Summary of Momentum Strategy Research

Several studies have found that buying equities with positive momentum and selling equities with negative
momentum generates significant excess returns. Jegadeesh and Titman’s research on the US market in
1993 and 2001, as well as Rouwenhorst’s study on twelve European countries, demonstrated that the
momentum effect exists in all markets and could not be explained by increased risk. Moskowitz and
Grinblatt’s study on the US market found that the momentum effect can be explained by momentum
within stock industry groups. The profitability of momentum strategies has been shown to vary across
markets and time periods and may be driven by behavioral biases. A compilation of some relevant results
from the discussed momentum studies can be seen in Table 11 below:

Publication Monthly Excess Return t-value Sample Period


Jegadeesh and Titman (1993) 1.84% 3.07 1965–1989
Rouwenhorst (1998) 1.63% 3.24 1965–1994
Moskowitz and Grinblatt (1999) 1.03% 4.35 1963–1993
Jegadeesh and Titman (2001) 1.27% 4.51 1970–1996
Tonks and Hon (2003) 0.91% 2.36 1975–2000
Barroso and Santa-Clara (2015) 1.06% 2.73 1990–2011

Table 1: Summary of Momentum Studies

Notable, is that none of the studies in Table 1 above used daily price analysis to buy and sell equities.
The momentum strategies in the studies analyzed all involved holding periods of at least one week, which
means that the portfolios were typically rebalanced on a weekly or less frequent basis. In other words,
the momentum portfolios were not traded on a daily basis but rather held for a minimum of one week
before being adjusted based on the chosen momentum criteria.

2.6 Momentum Research in Relation to Market Efficiency

The studies regarding momentum strategy research align well with the research of market efficiency by
Lo (2004) and Amenc and Le Sourd (2003) suggesting that markets are more dynamic than Damodaran
(2015) and Fama (1963) suggested. However, there are too many cross-sectional variables to reach a
unanimous conclusion. Even though the research conducted by Jegadeesh and Titman (1993, 2001),
Rouwenhorst (1998), Moskowitz and Grinblatt (1999), and Tonks and Hon (2003) all demonstrate that
momentum strategies can generate significant excess returns the conclusions might have been different
if the research was done on another market or another time frame. The difficulty to reach a conclusion
regarding market efficiency could align well with Lo (2004) that suggests that there are some periods
where momentum strategies are profitable and other periods with higher market involvement where
momentum strategies might not be making excess returns. The interpretation could be done that the
effect of initial under- and over reactions is lessened the more actors there are within a market because
the efficieny of a market increases with the number of participans in the market. In this study the scope is
of the Swedish, Danish, and Finnish equity markets. All these markets are considered developed markets
in Europe and momentum strategies might therefore have a slightly smaller impact than with other less
developed equity markets. Another aspect brought forward is that transaction costs from momentum
strategies might perfectly balance out the excess return generated as suggested by Lesmond, Schill and
Zhou (2004).
1A high t-value indicates that the momentum effect is more likely to be real and not due to random variation.

6
2.7 Momentum Analysis Techniques of Minervini’s Stock Trading Strategy

Inspired by Love (1977) and Reinganum (1988) who discussed and researched the commonalities between
stocks that performed well on the stock market Minervini came up with a framework to understand when
and which stocks to buy. Minervini’s strategy (2013) includes the following factors when assessing a
stocks potential trading performance:

• Momentum analysis
• Fundamental analysis
• Catalysts

The Momentum analysis aspects of Minervini’s trading strategy are contained in the Momentum analysis
section and thus the chapters regarding Fundamental analysis and Catalysts will be excluded from the
research. In this chapter, the components of Minervini’s Momentum analysis techniques will be examined,
as they form the core focus of this research. However, this chapter will not discuss the implementation
of these techniques, only discuss the strategies brought forward in the book. This chapter creates the
framework from which the algorithm will be implemented. In Chapter 3, the algorithmic implementation
of the theory from this chapter is discussed and explained.

2.7.1 Stage Analysis

A stock is always in one of four stages (Minervini, 2013). These four stages are:

1. Consolidation (neutral trend)


2. Accumulation (positive trend)
3. Distribution (neutral/negative trend)
4. Capitulation (negative trend)

Minervini (2013) wants to own a stock during stage 2 (accumulation) when the momentum is strong and
sell a stock during later stage 2 or in stage 3 (distribution). As an initial guide to conclude whether a
stock is in stage 2 or not Minervini does momentum analysis by using a momentum template described
in the chapter below.

2.7.2 Initial Momentum Analysis (the momentum template)

To find potential buy candidates Minervini always performs a stock screening process to identify the
momentum of a stock (Minervini, 2016). In this stock screening process, a stock must satisfy certain
characteristics contained in the momentum template below to be considered for a buy (Minervini, 2016).
One could argue that the initial momentum template acts as a hygiene factor for the stock that will be
bought. The momentum template consists of the following criteria (Minervini, 2016):

1. The current stock price is above MA150 and MA200.


2. MA150 is above MA200.
3. The MA200 line has been trending up for at least 1 month.
4. MA50 is above MA150 and MA200.
5. The current stock price is above MA50.

7
6. The current stock price is at least 30% above its 1 year low.
7. The current stock price is within at least 25% of its 1 year high.
8. The relative strength (RS) ranking is at least 70.

Where the moving average (MA) is calculated as follows where n is the number of historical trading days:

Pn
i=1 Pi
M An = (1)
n

The relative strength (RS) ranking is a measure of a stock’s performance over the past 12 months relative
to other stocks in the market (Minervini, 2016). The ranking is calculated by comparing a stock’s return
over this period to the returns of all other stocks in the selected market (Minervini, 2016). RS Ranking
is therefore a kind of momentum indicator.

Stock’s Price Performance over the last 12 months


RS = (2)
Price Performance of all other stocks in the market over the same period

After the relative strength of all the stocks in the index are calculated the relative strength ranking is
created by sorting all the RS scores. The ranking ranges from 0 to 100, with a score of 99 indicating that
the stock has outperformed 99% of all other stocks in the market (Minervini, 2016). Once a stock fulfills
the momentum template, Minervini will consider the stock for a buy. However, fulfilling the momentum
template is only the first stage of Minervini’s buy analysis. Within a stage 2 phase the stock will form
base patterns that will be discussed in the next chapter.

2.7.3 Base Patterns

Within a stage 2 advance of a stock the stock will decline temporarily before accelerating further to
continue its stage 2 advance (Minervini, 2016). When a stock temporarily declines during a stage 2
advance phase the stock will form a base pattern. A base pattern can last from anywhere between 5 to
26 weeks. In addition to varying base length the base patterns vary as well. After the stock has fallen
more drastically when profit taking has occurred the base pattern is recognized by the volatility in the
stock getting smaller and smaller until the end of the base (Minervini, 2013). Essentially, as the base
pattern develops and finishes the stock will break out from the base upwards or downwards. If the stock
breaks downwards to keep developing the basing area or turn into stage 3 the stock will not be bought.
If, however, the stock breaks out from the base upwards to continue its stage 2 move the stock will move
through the buy point from the basing area.

2.7.4 The Buy Point

The buy point for a trade is when the price of a stock breaches the “pivot point” from a basing area
(Minervini, 2013). According to Minervini, at the pivot point a stock has the highest probability of
keeping its momentum upwards therefore the stock should be bought at the pivot point (Minervini,
2013). Minervini states:

“Specifically, the point at which you want to buy is when the stock moves above the pivot point on
expanding volume.”

So, what then is a pivot point? The Pivot point occurs when the base pattern has finished developing
and the stock reaches a new local high from the basing area. Pivot points can occur in connection with
a stock reaching a new high or below the stock’s high (Minervini, 2013). In conclusion, after a stock

8
has reached a local maximum during a stage 2 advance the stock starts declining and creates a new base
pattern that is between 5 to 26 weeks long (during a so called basing period). This means that a stock
that is set up correctly should develop a new pivot within every 5 to 26 weeks after the previous high
was made. If the stock does not create a new buy point and instead declines in price after the basing
period the stock is considered to no longer be in the stage 2 consolidation phase and should therefore not
be bought. Moreover, in the quote above there needs to be explanation regarding “expanding volume”.

2.7.5 Volume Analysis

Expanding volume in the quote above means that the volume (no. of traded stocks during a day) should
show an increase on the day of the buy point occurring compared to historic levels in a decided time
frame Minervini (2013). Minervini’s comparison of volume varies but one of the common measures seems
to be the 50-day average for volume. On the day of the pivot point breakout Minervini states that it
is “not uncommon to see a surge of several hundred percent or even as much as 1,000 percent compared
with the average volume”.

2.7.6 Stop-loss

Before understanding the selling point for a trade, a concept called stop-loss needs to be introduced.
Minervini (2013) always defines a sell stop-loss before the trade is entered, this way the stock will be
sold if the trade is not showing profits in order to protect against a bigger loss. Minervini (2013) varies
where the stop-loss is set depending on several variables. However, Minervini (2013) always sets his
stop-loss between 2-8% below the current stock price. The stop-loss % partly depends on whether trades
in the near historical time frame have been showing profit or not (Minervini, 2013). Minervini (2013)
applies progressive exposure which means that if nearby historical trades have not been working out he
sets a stop-loss closer to the buy price, hypothetically between 2-6%. The stop-loss is generally adjusted
upwards in price if the trade is showing profit. However, the detailed conditions for moving the stop-loss
will be defined later in the report in the chapter of algorithm implementation. The stop-loss function is an
essential part of Minervini’s momentum strategy. Minervini (2013) argues that the number of successful
trades can drop to as low as 30% which infers that cutting the losses using a stop-loss is important to
stay profitable.

2.7.7 The Selling Point

Once the stock has been bought there are various scenarios that can occur. As stated previously, the
stock should be held for as long as possible until the trade loses its momentum. In practice there are
three choices that will affect the size of the gains (Minervini, 2016):

1. When to sell if a trade is not profitable

2. When to raise the stop-loss if the trade is profitable, thus giving the share smaller room for a
pullback but locking in some profits.
3. When to sell if the trade is profitable.
4. When to add equity to a position

The selling point therefore has more varying rules and more subjectivity compared to the buy point. Since
Minervini uses subjective assessment and hours and hours of trading experience to guide Minervini’s
decisions it is difficult to dense down his knowledge into rules that are followed without exception.
However, no matter how a trade is working out Minervini (2013) always has a pre-defined stop-loss point
where the stock is sold. This stop-loss point is set at a maximum of -8% from the initial buy price.
The other selling rules vary depending on how long the current trade has been active. When a position

9
initially has been taken and has been active for a short amount of time the following rules are, especially
in combination, acting as sell signals:

• Three or four lower lows without supportive action (Minervini, 2016)


• More down days than up days (Minervini, 2016)
• A close below MA20 (Minervini, 2016)
• A close below MA50 on heavy volume (Minervini, 2016)
• Full retracement of a good size gain (Minervini, 2016)

If the trade has not reached the stop-loss or violated any of the initial sell rules Minervini (2013) will
give the stock more room to fluctuate and apply primarily other selling rules. For trades that have been
active for a longer period of time or for trades that are showing profit some of the other rules applied can
be seen below:

• ”Move your stop up when your stock rises by two or three times your risk, especially if that number
is above your historical average gain”. For example, if the stop-loss is set at 8% and the stock
gains 24% the stop-loss will be raised to at least the buy price. The historical average may vary,
Minervini (2013) states that his average gain for an example year was 18.4%.
• A trailing stop can be used to ride out the trend fully (Minervini, 2013). A trailing stop follows the
price of the stock upwards with a moving average and when the price crosses the moving average
line the stock should be sold (Minervini, 2013). However, Minervini usually uses a back-stop rather
than a trailing stop (Minervini, 2013). Minervini likes to use a trailing stop in stocks that increase
in price drastically in a short amount of time (Minervini, 2016).
• After the stop-loss has been raised, Minervini (2013) explains “If the stock continues to rise, I start
to look for an opportunity to sell on the way up and nail down my profit”.

From this information it can be inferred that Minervini distinguishes between different types of selling
signals based on the trade’s duration and the level of gain it has accrued. Initially a trade has stricter
rules, but as the trade shows profit Minervini (2013) gives the stock more room to fluctuate in price.

As stated earlier one can see that various rules are sometimes in contradiction to each other. The reason
for that is because Minervini analyzes every stock individually to conclude how to handle the every trade.
There is no fixed rule that is applied to every trade. This will be discussed further down in the report
but it is worth noting..

2.7.8 Position Sizing

According to Minervini (2013) a larger portfolio should consist of no more than 20 stocks at any given
time. This implies 5% position sizes in every stock. However, Minervini (2016) adjusts the position sizes
depending on several factors such as quality of the stock price movement and current market climate.
Minervini’s portfolio can sometimes take positions that are up to 25-50% of the portfolio. Minervini uses
the following rule for position sizing: the total risk of a trade cannot exceed 1.25% of the total equity on
average. Where the risk is calculated as:

Risk (%) = Stop-loss (%) × Position size (%) ≤ 1.25% (3)

Minervini (2013) also applies progressive exposure for the position sizing (same way as progressive ex-
posure is discussed in Chapter 2.7.6 for stop-loss) for his position sizing. Namely, if trades in the near
history has been working out Minervini (2013) can take larger positions and scale up those positions in
size fast.

10
2.7.9 Industry Groups

Minervini 2013 puts a lot of emphasis on finding the winning industry groups, however Minervini uses a
top-down approach and first finds the stocks performing well to then guide him to the best performing
sectors.

11
3 Replicable Method

3.1 Algorithmic Implementation of Minervini’s Momentum Techniques

This chapter will discuss the implementation of Minervini’s momentum techniques from Chapter 2.7.
Note that the names of the chapters indicate the corresponding chapters from Chapter 2.7.

3.1.1 Stage Analysis

There will be no analysis regarding which stage a stock is in. The subjectivity of the stage analysis
makes it difficult to implement in an algorithm. Rather, the stock is assumed to be in stage 2 when the
momentum template is true for a stock at a given date.

3.1.2 Initial Momentum Analysis (the momentum template)

The full momentum template (from 2.7.2) is applied with only two modifications. Firstly, the relative
strength calculation will not be accounted for. This is discussed further down in the report. Secondly,
Minervini urges the trader not to be too strict in the screening process. Minervini explains “Otherwise,
you may inadvertently eliminate good candidates that meet all your criteria except for one. . . and misses
by a hair” Minervini (2013). Because the algorithm will apply one screen this is compensated for by using
a parameter called the flex factor which makes the momentum template less strict. The flex factor is a
multiplier to slightly relax the strict limitations from the momentum template. In the algorithm this flex
factor is set to 0,95. To exemplify, let’s use condition number 4 in the momentum template that state
“the current stock price must be above MA50”.

MA50 Flex factor MA50 (with flex factor)


100 0.95 95

Table 2: Table exemplifying MA50 and MA50 with flex factor.

3.1.3 Base Patterns, Buy Points and Volume Analysis

As stated in Chapter 2.7.3 base patterns can vary both in length and structure. The patterns are complex
to program and thus separate base patterns will not be identified by the algorithm. However, in order
to establish a buy point there needs to be some estimation of when a stock breaks out of a base since
that is where the pivot point occurs. According to Minervini (2013) the base length varies between 5-26
weeks. If the basing period is set to a low number of weeks, the algorithm will recognize more breakouts
as compared to if the basing period is set to a higher number of weeks. In the span of 5-26 weeks lays 17
weeks which is the average base length according to Bulkowski (2000) and thus the base length parameter
is set to be 17 weeks (85 days). A spot price is therefore considered a pivot point when the stock price
reaches a minimum of 17 week maximum in connection with a volume that should exceed 1.5*Volume
MA 50.

To conclude the following conditions need to be met on the same date:

• The stock price breaks through the previous high on a minimum of a 17-week time frame.
• The volume of traded stocks increases of at least 50% from the average volume on the 50 day time
frame.

In addition to a breakout there also needs to be liquidity available to buy the stock, this liquidity condition
is evaluated in detail in Chapter 3.1.7.

12
3.1.4 Stop-loss

As stated in Chapter 2.7.6 the stop-loss varies between 2-8% where in Minervini’s (2013) opinion if a
stock declines more than 8% from the buy point the the buy signal is faulty. Therefore, the stop-loss is
initially set at 8% below the buy price. As stated in Chapter 2.7.6 the stop-loss is raised when a trade is
showing profit. Inferred from the description in Chapter 2.7.6 the stop-loss will be raised the buy point
if the trade shows a profit of 3x the initial stop-loss. An example of the outcome is illustrated below:

Date Stock Price Buy price Gain (%) Stop-loss price


Jan-01 100 100 0% 92
Jan-02 124 100 24% 100

Table 3: Table showing example of stock price, buy price, gain percentage, and stop-loss price for two
dates.

3.1.5 The Selling Point (short holding time)

As stated in Chapter 2.7.7 initially after a trade has been taken there are several rules that Minervini
sees as sell signals. Firstly Minervini applies varying sell signals depending on how long the trade has
been active. The short holding period is set to 100 days and there is also one rule regarding a large gain
on a small period of time to lock in profits. During the shorter holding periods the following selling rules
are applied:

• If the stock price breaks the stop-loss.

• If the trade shows a profit of at least a 30% gain within 7 days from the buy date.
• More down days than up days for the 7 days from the buy date.
• The current stock price is below MA50.

3.1.6 The Selling Point (long holding time)

For trades where the holding period is longer than 100 days Minervini gives more “room” for the stock
to fluctuate (Minervini, 2016). If the trade is not stopped out with the stop-loss a trailing stop will be
implemented in the algorithm and the longer the trade is active the larger MA measure will be used as
the stop-loss to give the stock more room to mimic Minervini’s raise of his stop-losses. Additionally, the
stock can also be sold as it is increasing in price (referred to as selling into strength) compared to for
example a stop-loss which is a sell signal on a price decline (referred to as selling into weakness).The
following rules are generally used for longer holding periods (≤100 days):

• If the stock price breaks the stop-loss.

• The current stock price is below MA150.


• If the gain of the trade is ≥100% the stock will be sold.

3.1.7 Position Sizing

Various implementations and variations can be applied to mimic Minervini’s position sizing strategy. As
was stated in Chapter 2.7.8, Minervini never exceeds 20 stocks in a portfolio at any given time. Moreover,
the risk exposure very seldom exceeds 1.25% of the total equity available. Table 4 shows how the risk
percentage varies with position size when the stop-loss is fixed at 8%

13
Stop-loss (%) Position size (%) Risk (%)
8 1 0.08
8 2 0.16
8 3 0.24
8 4 0.32
8 5 0.40
8 6 0.48
8 7 0.56
8 8 0.64
8 9 0.72
8 10 0.80

Table 4: Table showing how the risk could vary for a trade with a fixed stop-loss of 8% and a varying
position size.

As can be seen in Table 4 , when a stop-loss of 8% is set the position size for a traded equity could be
even larger than 10% before the risk criterium is no longer upheld. However, the larger position size the
more risk for every trade and the less trades can be active simultaneously. For example, with a position
size of 10% the number of equities that can be active at any given time cannot exceed 10 since that would
create a leveraged portfolio. Minervini 2013 recommends a maximum of 20 holdings for a large portfolio
(where large portfolio is referring to the amount of money beeing managed). In this report the position
size will vary depending on the amount of active trades on any given date. If the number of active trades
for a given date is 20 the position size for that date is set to 100/20 = 5%. This means that when a trade
is entered the trade position size will vary on a daily basis. An example of how the position sizing can
vary is seen conceptually in Table 5 and an example from an iteration in the algorithm can be seen in
appendix D. If the number of active trades drops below or equal to 5 for any given date the maximum
position size is still set to 20% in order to make the risk similar to what Minervini would have accepted.

Date No. active trades Position size(%)


2018-01-04 0 NaN
2018-01-05 5 20 %
2018-01-08 10 10 %
2018-01-09 20 5%
2018-01-10 100 1%
2018-01-11 50 2%
2018-01-12 25 4%
2018-01-15 3 20 %

Table 5: Table showing an example of how the position sizing of various equities will vary from one day
to another as the number of active trades varies.

Moreover, Minervini (2013) makes a subjective assessment which buy signals are better and transfers the
equity to the chosen buy trades. However, the algorithm will not be able to differ between a “strong”
and a “weak” breakout which is why it is logical to set weigh all position uniformally.

3.2 Summary of Parameter Values

Below is a summary of all the parameter values set in the algorithm.

• Number of days for a base to be considered completed = 85.

• Flex factor = 0.95.


• Volume increase compared to the Volume MA50 = 50%.
• Stop-loss percentage = 8%.

14
• Position size = Varies for every date.
• Maximum position size = 10%

3.3 Comprehensive Walkthrough of the Algorithm Iteration Process

In Figure 1 below is an overview on how the algorithm will act for every stock in the selected portfolio
when using the momentum strategy:

Once all the stocks have been iterated through the process to calculate the return of the whole portfolio
on a daily basis from the start date to the end date is easily obtained. This is explained further down in
the report.

15
Select a stock

Download price and volume history


and insert the data into a dataframe

Use the downloaded data to calculate the momen-


tum template and volume conditions for every date.

Create a column which represents the buy signal


by giving the value true for a date if both the mo-
mentum template and the volume criteria are met.

Iterate through all dates in the dataframe, when


a date contains a buy signal the algorithm holds
the stock until any sell signal is actualized.

Save the data of when the stock has been an ac-


tive trade in a final column in the dataframe.

Add the resulting columns to dataframes for the whole portfolio


gathering all price information and all active trade information.

Repeat the process with the next stock until all the
stocks in the portfolio have been iterated through.

Figure 1: An overview of an iteration over one stock in the algorithm.

16
4 Method

4.1 Scientific Approach

Bryman and Bell (2011) discusses that there is both both qualitative and quantitative research methods.
Qualitative research is a non-numerical approach that aims to understand experiences, perspectives, and
feelings of individuals. It often involves using unstructured data sources such as interviews, observations,
and open-ended surveys. Meanwhile, quantitative research uses numerical data to analyze and draw
conclusions. Quantitative research typically employs structured data sources to gather data in a system-
atic manner. Both qualitative and quantitative research methods have their strengths and weaknesses,
and the authors concludes that it is important to choose the correct approach for the specific research
question and situation. (Bryman and Bell, 2011). Bryman and Bell suggest that a quantitative research
approach is best suited for studying numerical data and testing theories that have been developed based
on previous research findings (Bryman and Bell, 2011). Firstly, this report aims to further investigate the
research within momentum strategies and secondly, there is a clear numerical data collection to analyze
which makes the decision of using the quantitative research method straight forward. Furthermore the
research aims to use deductive reasoning in accordance with the definition by (Bryman and Bell, 2011).
The deductive approach is well-suited for testing cause-and-effect relationships, making predictions, and
testing the validity of theories which is why it makes a good fit for the current research (Bryman and
Bell, 2011).

4.2 Data Collection

4.2.1 Borsdata (Börsdata)

Börsdata is hereby referred to as Borsdata. The data is collected from börsdata.se which is one of
the largest independent providers of financial data in the Nordic markets (Börsdata, 2023). Borsdata is
making financial data available mainly to private investors. Borsdata provides the daily price information
for all the stocks and indexes used in this report by giving the researcher access to the Borsdata database
via an API key.

4.2.2 API

By using an API key together with a programmed API (Application Programming Interface) in the
python programming language the data can be downloaded from Borsdata’s database. The database on
Borsdata uses the Json-format for all the datafiles. These Json datafiles are converted to a dynamic and
usable format using the pandas library in python. The API has a daily restriction of 10,000 API calls
every day and recurrence of 100 api calls every 10 seconds. An API called is needed whenever a new url
needs to be requested from Borsdata.

4.2.3 Collected Data

The dataset used comprises stock market data collected from three Nordic countries, namely Denmark,
Sweden, and Finland. The data covers a period of almost 20 years, stretching from 2003 to 2023,
and includes information on various stocks traded on the respective markets. Specifically, the database
contains detailed information on each stock including in the current sector, index and list in which it is
currently contained.

In Table 6 below is a summary of all selected lists from which countries that were selected from the
database for this research:

17
Sweden Finland Denmark
Large Cap Large Cap Large Cap
Mid Cap Mid Cap Mid Cap
Small Cap Small Cap Small Cap
First North First North First North

Table 6: Available stock indexes/lists

These lists are referred to as indexes in the research report. A total of around 1500 equities from Sweden,
Finland and Denmark will be included in the different portfolios. See appendix B for all equities included
in the research.

4.3 Python Libraries

Pandas is a powerful open-source data manipulation library for the Python programming language. It
provides an easy-to-use data structure called a DataFrame, which allows users to perform complex data
analysis tasks on structured data. A DataFrame looks like a matrix where rows or columns can be added
or altered. The key features of pandas include data cleaning, data manipulation, data analysis, and data
visualization.

The other frameworks used in the research are Json, Requests and Numpy. The Json and Requests
libraries make it possible to communicate with the Borsdata server and Numpy is used for various data
calculations.

4.4 Portfolio Construction

Benchmarking a trading strategy against an index is a common approach used in finance to evaluate the
effectiveness of investment strategies. To make a comparison, it is essential to use a benchmark index
that closely tracks the underlying asset class or market being traded. The portfolio selection is therefore
dependent on the available data. In the data available at börsdata.se there is no historical data regarding
which companies have been in which indexes at a specific point in time. There is only information
regarding which companies are included in which index as of today’s date. All the companies from Large
Cap, Mid Cap, Small Cap and First North as of are included for Sweden, Finland and Denmark. All
the lists in Table 6 are included in one of the analyzed portfolios. The indexes Small-cap, Mid-cap and
Large-cap will be simulated for a chosen year by applying the calculated market caps for that year and
using the rules by Nasdaq to create reasonable ”buckets” of market cap sizes that mimics Small Cap,
Mid Cap and Large Cap 2 . The portfolios researched in the report are therefore referred to as market
cap-based portfolios because they try to mimic how Small Cap, Mid Cap and Large Cap could have
looked like during the selected time frame.

4.4.1 Market-cap based Portfolios

As discussed above these portfolios are designed to mirror the performance of a particular index, such as
the Small-cap, Mid-cap, or Large-cap index, at any given point in time during the period being researched.
The market cap-based portfolio groups stocks that are within a certain market cap size during a set year
from the user. The user selects which year the user wants to calculate the market caps for and then
selects lower and upper boundaries for the market cap the results in the selection of stocks used in that
research iteration. To summarize the inputs needed to create a Market Cap based portfolio and run the
program are the following:
2 As stated in the above paragraph the companies from First north will also be included in one of the simulated market-cap

based portfolios depending on the calculated market-cap sizes in stocks from the First north.

18
• Year to calculate market cap for
• Lower bound of market cap (mEur)
• Upper bound of market cap (mEur)
• Start date
• End date (which is always set to 2023-01-01 )

To calculate the market capitalizations for a given year, the report utilizes the average stock price for
that year multiplied by the average number of stocks for each company during that same year. Since the
market caps will be estimated in EURO the market caps for Sweden and Denmark are multiplied with
the average EUR/SEK or EUR/DKK exchange rate for the selected year. For Finland the market cap
calculated will already be in EURO. The market cap boundaries used to construct the different portfolios
are discussed in further detail later in this chapter of the report. The number of stocks in the portfolio
will therefore vary depending on how the parameters are set for every portfolio simulation. For example,
if the lower bound is small and the higher bound is large for the market cap the portfolio will consist of
many stocks. Compare that to if the range of market cap is smaller, that would result in a portfolio with
fewer stocks.

4.5 Selected Portfolios

The performance of stocks from every portfolio selection will be evaluated over two different time periods:
2008-2023 (15 years) and 2018-2023 (5 years). To get an overall view of the performance of the portfolio
a longer time frame is preferred. The time frame of 15 years was choosen to balance the accessibility of
data and to get a long time span. The time frame of 5 years was been selected to capture periods of
higher market volatility. To conclude the time frames were chosen to provide a comprehensive view of
the portfolio’s overall performance.

To fully specify the evaluated portfolios, it is necessary to select not only the time frames to be considered,
but also the portfolios to be evaluated during those time frames.

4.5.1 Selection of Market-cap based Portfolios

To construct a market cap-based portfolio, stocks are split into three distinct subgroups based on their
market capitalization, which is calculated in the local currency (Sek, Dkk or Eur ) and then converted to
Eur using the average exchange rate for the starting year. The three subgroups are as follows:

1. Market caps exceeding 1,000 mEur.


2. Market caps between 1,000 mEur and 150 mEur.
3. Market caps less than 150 mEur.

These subgroups are created in accordance with the rules of Nasdaq, which defines a large-cap company
as having a market capitalization of over 1,000 mEur, a mid-cap company as having a market cap of
between 1,000 mEur and 150 mEur and small-cap company as having market caps less than 150 mEur.
These market cap-based portfolios are used as a proxy for historical equity listings when there is no access
to actual historical lists. To summarize there will be a total of 18 portfolios spanning over, market caps,
countries and time frames. All portfolios are illustrated in appendix A.

The created market-cap based portfolios will be the portfolio used in both the momentum strategy but
also in the index portfolio. This is also visualized in Figure 2. The reason why the index varies with
every portfolio instead of set as a more official OMXS Small Cap comparison is discussed further down
in the report.

19
4.6 Overview of the the Algorithm Iteration Process

The Market-cap based portfolios generated by the algorithm will be traded two times. Both using the
buy and hold strategy and using the momentum strategy. The momentum strategy will use a various
position sizing of depending on the number of active trades for a date as discussed in Chapter 3.1.7. The
buy and hold strategy will uniformally distribute the position sizes of all the holdings in the Market-cap
based portfolio. To exemplify, a portfolio that consists of 50 equities using the buy and hold strategy will
therefore have portfolio weights of 2% for every stock.

In Figure 1 from Chapter 3.3 is an overview of how one stock is iterated in the algorithm. Once the
columns representing spot prices and date ranges when a stock has been active for all the dates has been
created and summarized in two separate dataframes the overall structure that is used in the portfolio
return calculation has taken shape. In order to depict how the portfolio is applied to calculate the return
of the buy and hold strategy and the momentum strategy it is appropriate to present a diagram depicting
the comprehensive workflow of the algorithm using for the portfolio. This is shown in Figure 2 below.

20
Portfolio selected based on input con-
ditions (time frame and market cap)

Buy and hold strategy Momentum strategy

Use the dataframes regarding when


Calculate the return for all
the stocks in the porfolio has been
equities for every date. The
active. For every date the position
portfolio is settled and unifor-
sizing will be dependent on the
mally distributed for every date
number of active trades for that date

Calculate the daily settlement


and adjust position sizes de-
pending on the amount of trades
that are active during the next
date and which stocks are active.

Output results: buy and hold strategy


return and momentum strategy return

Figure 2: An overview of the implemented algorithm.

See appendix D in order to see an example of the rebalancing of the portfolio during a shorter time frame.

4.7 Algorithm Performance Evaluation

For all the portfolios created the benchmarking is done identically. For all portfolios the start value is
100 (for both the buy and hold strategy and the momentum strategy). For the buy and hold portfolio
the return is calculated by using the dataframe consisting of date ranges when stocks are active just as
the momentum strategy, however, in the buy and hold portfolio date range dataframe all the stocks are
always active. This infers that every day the portfolio will rebalance the portfolio to make it uniformally

21
distributed. For the momentum strategy the algorithm will use the date range dataframe (which was
created from Figure 1) that varies for every date depending on which stocks that are active in the
dataframe. An extract from a date range dataframe can be seen in appendix E.

This therefore alternates what the daily positon sizes will be and which stocks will be active. The
algorithm generates an output for each traded portfolio that illustrates the changes in portfolio value
from the initial value of 100 to the final value at the end of the specified time frame, excluding transaction
costs. In summary, each of the 18 portfolios executed in the algorithm will produce an output indicating
the increase or decrease in value for both strategies. In order to quantify and understand whether the
returns are statistically different from each other a hypothesis test is completed. The Sharpe ratio is
also used as a complementary tool to visualize how the hypothetical excess return is not inferred from
increase standard deviation of the returns.

4.7.1 Hypothesis Test

Hypothesis test for all portfolios were calculated using Welch’s t-test. Welch’s t-test is a statistical method
used to compare the means of two sample groups that have different variances. It is a modification of
the standard two-sample t-test that adjusts for unequal variances. Welch’s t-test is more appropriate to
use since the variances of the momentum portfolio and the index portfolio might be different. In order
to use Welch’s t-test the samples (in this case the daily returns) are assumed to be normally distributed
which is why the returns are converted to logarithmic daily returns before applied in Welch’s t-test. The
test statistic t and the degrees of freedom df are calculated as seen in (4.7.1) and (4.7.1)

x¯1 − x¯2
t= q 2 (4)
s1 s22
n1 + n2

2
s21 s22

n1 + n2
df = s41 s42
(5)
n21 (n1 −1)
+ n22 (n2 −1)

In these formulas, x¯1 and x¯2 are the sample means, s21 and s22 are the sample variances, and n1 and n2
are the sample sizes for the two groups being compared. Once the test statistic and degrees of freedom
have been calculated, a t-distribution table is used to find the p-value associated with the test statistic
and draw conclusions regarding the hypothesis test. The significance level of the hypothesis test will be
set to 1%.

4.7.2 Sharpe Ratio

The Sharpe ratio is a widely used measure to evaluate the risk-adjusted return of an investment. It takes
into account the total return of an investment and the risk associated with it by measuring the excess
return per unit of risk. The formula for the Sharpe ratio is:

Rp − Rf
Sharpe Ratio = (6)
σp

where Rp is the expected portfolio return, Rf is the risk-free rate of return, and σp is the standard
deviation of the portfolio excess return.

22
4.8 Ethical Principles

Greenwood and Shleifer’s (2014) research sheds light on the potential risks associated with momentum
strategies and their potential contribution to market crashes. According to their findings, momentum
strategies can create a self-reinforcing cycle where investors chase high returns and bid up the prices
of stocks that are already overvalued. When a significant number of investors chase returns through
momentum strategies, it can distort market pricing mechanisms and lead to illogical allocation of capital.
Such behavior may contribute to market crashes.

4.9 Method Criticism

When conducting momentum strategy research, taking transaction fees, taxes, or contingent costs into
consideration is highly relevant. In the absence of such considerations, the findings may not accurately
reflect real-world performance. This research method could therefore be seen as an optimistic estimation
of how the algorithm would perform in the real world and the results should therefore be seen as only an
indication of whether the momentum strategy generates excess return.

Moreover, if a stock is of dual-class (having A and a B issue) or more the stock will likely exist in the
database twice as many times. This results in more weight being put on those companies that have
issued many different stock classes. This probably has an insignificant effect on the research since the
vast majority of the shares are not dual-class stock, see appendix B. As previously stated Minervini can
sometimes weight the positions of his portfolio as high as 25% and so it is improbable to break any of
Minervini’s rules.

Borsdata is a third-party provider of equity data, and they are not accountable if there is any incorrectly
reported data. The usage of borsdata as a the database for the study is relevant for the target group of
the report. However, one could argue that an even larger and more familiar database such as Refinitiv
Eikon could be used, but the main argument against this is that the accessibility of Refinitiv Eikon is
smaller for a private investor.

4.10 Quality Discussion

The validity of the study concerns the extent to which the research accurately measures what it intends
to measure (Bryman and Bell, 2011). In this study, the validity of the algorithmic implementation
of Minervini’s Momentum Techniques is a critical issue. While the algorithm is designed to replicate
Minervini’s strategy as closely as possible, it is important to note that the algorithm excludes many parts
of the strategy. For instance, the algorithm does not consider economic indicators, earnings reports, or
conference calls, which Minervini’s strategy relies on. Therefore, the algorithmic implementation of the
strategy may not entirely reflect the strategy as used by Minervini.

Another factor regarding validity is the quality of the data collected from Borsdata and the API. If the
data is inaccurate or incomplete, the validity of the results may be compromised. To ensure the validity
of the data, several steps were taken, including data cleaning and cross-checking with multiple sources.
Another factor that could affect the validity of the results is the methodology used to analyze the data. To
address this, a scientific approach was taken, and the methodology was based on established momentum
strategies used by successful traders.

Moreover, reliability concerns the consistency and stability of the study’s findings (Bryman and Bell,
2011). In this study, the reliability of the algorithmic implementation of Minervini’s Momentum Tech-
niques is consistent and repeatable, indicating that the same results can be obtained under similar condi-
tions. However, because the algorithm excludes several parts of Minervini’s strategy, there is a risk that
the results may not be entirely reliable. Therefore, it is important to interpret the results of the study
with caution and recognize that there may be limitations due to the algorithm’s inability to completely
replicate Minervini’s strategy.

23
5 Results

The forthcoming graphs in this chapter follow a specific structure. Each portfolio is represented by two
graphs. The upper graph depicts the development of the selected portfolio, which initially has a value
of 100, over the designated time period. Conversely, the lower graph illustrates the number of active
trades executed by the momentum strategy (and the index portfolio) during the same time frame for
each respective portfolio. In this chapter only the most relevant portfolios are shown. Not all portfolios
are included graphically in this chapter because of some portfolios having data quality issues and some
portfolios being more relevant than other for the end result. All portfolios, their return and the number
of active trades during the two time periods can be seen in appendix G.

In total there were 18 portfolios that were created and traded by the momentum algorithm and the
index portfolio. Of those 18 portfolios there were 14 of those where the momentum strategy achieved
higher returns than the index portfolio. However, only 3 of the 14 portfolios that beat the index portfolio
outperformed statistically on the 1% significance level.

5.1 Statistically Outperforming Portfolios

The portfolios that generated statistically excess return on the 1% significance level were the following:

• Sweden small-cap 2008-2023


• Finland small-cap 2008-2023

• Finland small-cap 2018-2023

These performance of the portfolios above is seen in this section. The figures show how the portfolio
value increased over the time frame for the momentum strategy compared with the index portfolio and
how the number of active trades in the momentum portfolio varies over the portfolio’s time frame.

24
5.1.1 Sweden Small-cap 08-23

(a) Portfolio value

(b) Active trades during the research period.

Figure 3: Return and active trades for the Sweden small-cap portfolio between 2008-2023.

25
5.1.2 Finland Small-cap 08-23

(a) Portfolio value

(b) Active trades during the research period.

Figure 4: Return and active trades for the Finland small-cap portfolio between 2008-2023.

26
5.1.3 Finland Small-cap 18-23

(a) Portfolio value

(b) Active trades during the research period.

Figure 5: Return and active trades for the Finland small-cap portfolio between 2018-2023.

27
5.2 Statistically Non-outperforming Portfolios

The full performance of the non-outperforming portfolios can be seen in appendix G. For these portfolios
the significant test could not say that the returns came from different distributions on a 99% level. These
portfolios were:

• Denmark small-cap 08-23


• Sweden small-cap 18-23
• Denmark small-cap 18-23
• Sweden mid-cap 08-23

• Finland mid-cap 08-23


• Denmark mid-cap 08-23
• Sweden mid-cap 18-23
• Finland mid-cap 18-23

• Denmark mid-cap 18-23


• Sweden large-cap 08-23
• Finland large-cap 08-23

• Denmark large-cap 08-23


• Sweden large-cap 18-23
• Finland large-cap 18-23
• Denmark large-cap 18-23

An example of a portfolio that did not statistically outperform the index portfolio is seen in Figure 6
below:

28
(a) Portfolio value

(b) Active trades during the research period.

Figure 6: Return and active trades for the Sweden mid-cap portfolio between 2008-2023.

5.3 Hypothesis Tests for All Portfolios

Table 7 below summarizes which portfolios generated excess return according to a hypothesis test. The
daily average logarithmic return for the momentum portfolio is recognized by rmd and the daily average

29
logarithmic return for the index portfolio is recognized by rid . The standard deviation of the returns can
be seen in the columns rmσ and riσ . The α is the significance level of the test performed.

Portfolio rmd rid rmσ riσ t-value p-value α Excess rmd ?


Sweden small-cap 08-23 0.00107 0.00029 0.01019 0.00896 2.03 0.004 0.01 Yes
Finland small-cap 08-23 0.00062 -0.00003 0.00744 0.00778 3.69 0.001 0.01 Yes
Denmark small-cap 08-23 0.00102 0.00038 0.01037 0.00691 1.63 0.104 0.01 No
Sweden small-cap 18-23 0.00137 0.00055 0.00920 0.00763 4.05 0.001 0.01 No
Finland small-cap 18-23 0.00138 0.00003 0.00995 0.00848 3.46 0.00055 0.01 Yes
Denmark small-cap 18-23 0.00102 0.00038 0.01037 0.00691 1.63 0.104 0.01 No
Sweden mid-cap 08-23 0.00052 0.00054 0.00795 0.00927 -0.11 0.913 0.01 No
Finland mid-cap 08-23 0.00032 0.00005 0.00726 0.00975 1.35 0.176 0.01 No
Denmark mid-cap 08-23 0.00013 -0.00008 0.00289 0.01273 0.98 0.328 0.01 No
Sweden mid-cap 18-23 0.00048 0.00027 0.00871 0.01065 0.54 0.588 0.01 No
Finland mid-cap 18-23 0.00065 0.00024 0.00960 0.00923 0.97 0.331 0.01 No
Denmark mid-cap 18-23 0.00046 0.00023 0.00787 0.01104 0.61 0.541 0.01 No
Sweden large-cap 08-23 0.00028 0.00021 0.00730 0.01108 0.34 0.733 0.01 No
Finland large-cap 08-23 0.00025 0.00014 0.00581 0.01062 0.52 0.600 0.01 No
Denmark large-cap 08-23 0.00035 0.00031 0.00544 0.01144 0.18 0.855 0.01 No
Sweden large-cap 18-23 0.00005 0.00017 0.00776 0.01021 -0.28 0.783 0.01 No
Finland large-cap 18-23 -0.00000 0.00005 0.00647 0.00969 -0.15 0.881 0.01 No
Denmark large-cap 18-23 0.00053 0.00020 0.00725 0.01001 0.90 0.366 0.01 No

Table 7: Hypothesis tests for all portfolios.

To summarize there were 3 portfolios that, according to the hypothesis test, generated significant excess
return on a 1% significance level and therefore 99% confidence level. All of the portfolios that generated
excess return according to the hypothesis test were small-cap portfolios.

30
6 Analysis

Firstly the implementation of Minervini’s momentum analysis techniques is discussed, this analysis is
referred to as Analysis of the Replicable Method. Secondly there is an analysis of the data used and how
it was handled, this chapter is referred to as Data quality and data handling . Thirdly the analysis of the
empirical results from the implemented algorithm is analyzed and is referred to as Empirical Results and
the Efficient Market Hypothesis

6.1 Analysis of the Replicable Method

The algorithm is seen as a primitive variant of Minervini’s strategy. There are primarily three reasons
why the algorithmic approach is seen as primitive:

• Technical restrictions (base count, relative strength rank, position sizing)

• Practical application problems (position size, buy orders)


• Exclusion of fundamental and catalyst aspects (see Chapter 2.7)

6.1.1 Technical Restrictions

Base count is one of the key technical restrictions of the momentum strategy. However, the challenge with
implementing base count in an algorithmic trading system is that it requires significant computational
power and very complex coding patterns to identify bases accurately. As was stated in Chapter 2.7.3 base
patterns vary widely (between at least 5-26) weeks. In the algorithmic approach used in this research the
base pattern was set to an exact number of 85 days to form a base (can be seen in Chapter 3.1.3) which
is a big deviation as to how Minervini would identify a base. In a more complex algorithm using more
computing power one could probably come closer to reaching Minervini’s approach but the subjective
nature of bases, makes it difficult to build a reliable algorithmic system to identify bases. Another
example of where subjectivity in the trading strategy poses challenges in the algorithmic approach can
be seen among the selling rules. For instance, one of Minervini’s initial selling rules states that if a
trade experiences ”three or four lower lows without supportive action” it should be considered to sell
the position. However, defining ”supportive action” in programming terms becomes subjective, as it is
typically discerned visually and on many different parameters. Therefore that selling rule was excluded
in the algorithm implementation.

Another important aspect in Minervini’s momentum strategy is the relative strength rank. As was stated
in Chapter 3.1.2 there was no relative strength ranking implemented in the algorithm. Minervini does
not contemplate buying unless the relative strength ranking criteria is upheld. Since the method used
various different indexes for all portfolios it would have been more complex to benchmark a stock’s return
in the approach used in this research. Furthermore, if a relative strength ranking function were to be
developed there would have been additional subjective decisions to be made in that implementation.

Moreover, the risk and position sizing aspect in the algorithm needs to be analyzed. As described in
Chapter 2.7.6 Minervini uses various stop-losses dependent on many variables which creates the setup
of a trade. Firstly the near historical trading results are taken into account, if the trades have not
been working out Minervini uses a smaller stop-loss and often also a smaller position sizing. This has
two implications, firstly Minervini can with a varying stop-loss also vary his position size. Sometimes
Minervini takes positions as large as 25% or 50% of his portfolio when Minervini is confident. However
this is not possible with a stop-loss of 8% (as implemented in the algorithm) since that would consistently
break the rule of keeping the risk less than 1.25%. See Table 8 below.

31
Stop-loss (%) Position size (%) Risk (%)
8 2 0.16
8 4 0.32
8 6 0.48
8 8 0.64
8 10 0.80
8 20 1.60
8 50 4.00
2 50 1.00

Table 8: Table showing an example of how the risk varies for a trade with a when stop-loss and position
size is altered.

Where risk measure is defined as in Chapter 2.7.8 and can also be seen below:

Risk (%) = Stop-loss (%) × Position size (%) ≤ 1.25% (7)

Secondly, Minervini does not adjust his position sizes daily as implemented in the algorhithm. The
algorithm sets a daily position size depending on how many active positions there are in the portfolio
during that trading day. Minervini adjusts the position sizing of stocks in his portfolio but refrains from
making daily updates to add more trades to the portfolio. Minervini’s approach is to have a limited
number of active positions, typically no more than 20, and to closely monitor these trades. In contrast to
the implemented momentum strategy, which may involve a larger number of positions with less scrutiny.
Minervini’s approach is more focused and allows for more in-depth analysis and close attention to active
trades. By limiting the number of active positions, Minervini aims to maintain a high level of control and
precision in executing trades. Minervini makes subjective decisions of when to add, sell or buy another
stock to the portfolio because Minervini sees a better risk reward position than what is currently in
Minervini’s portfolio. Additionally, there are various buy signals sent out by the algorithm that fulfills
all the buy conditions but where Minervini would probably not have bought the stock. The portfolio
managed by Minervini will therefore be a lot more complex, an algorithm could probably capture more of
Minervini’s strategy by also specifying when a certain stock trade is more attractive than another which
should transfer the equity in the portfolio to be more tilted towards the better risk/reward trade or when
to add more equity to a current open position but all in all Minervini’s knowledge is difficult to mimic
with an algorithm.

6.1.2 Practical Application Problems

The algorithm outperformed primarily in the small-cap portfolios. Since the lower limitation of market
cap sizes were drawn at 1 mEur this could create problems when it comes to liquidity for larger actors in
the market. If a private investor has a portfolio of 5mEur and the investor uses the algorithm which sets
a buy order of the maximum position size (20%) in a stock with a market cap of 1 mEur. This would
imply an absolute position size of 1 mEur in a company currently valued at 1mEur. It is improbable to
be able to get that stake of a company and absolutely to that current market price.

The algorithm demonstrated superior performance primarily in the context of small-cap portfolios. How-
ever, this approach may be problematic for larger actors in the market due to the lower limitation of
market cap sizes at 1 million Euros. This constraint can result in challenges related to liquidity for
investors with larger portfolios, as illustrated by the following example:

Consider a private investor with a portfolio of 5 million Euros who utilizes the algorithm to set a buy
order with the maximum position size (20%) in a stock with a market cap of 1 million Euros. This implies
an absolute position size of 1 million Euros in a company currently valued at the same amount. However,
it is highly unlikely that an investor would be able to obtain such a large stake in a company at its current
market price. The ability to execute trades at the desired price and quantity may be limited by liquidity

32
constraints. Thus, for investors with larger portfolios the performance for momentum trading using the
algorithm in the smaller companies might be misleading.

6.1.3 Exclusion of Fundamental and Catalyst Aspects

As described in Chapter 2.7, momentum analysis is just one component of Minervini’s comprehensive
trading strategy. The other two components, namely fundamental and catalyst analysis, were not included
in the research. If fundamental and catalyst analysis were to be incorporated into the algorithm, it is
likely that the number of buy signals would decrease This is because adding more constraints to the buy
signal can only make it more selective, thereby reducing the number of qualifying stocks. Consequently,
in order to maintain a fully invested portfolio, position sizes for the qualifying stocks would need to
increase. This would give greater weight to the stocks that cleared all three aspects of the analysis,
thereby increasing their influence on the overall portfolio performance. While this approach may work
for portfolios with a larger number of equities, it may not be suitable for portfolios that are already on
the brink of being too small. In such cases, the incorporation of additional constraints could result in an
excessively concentrated portfolio, with a limited number of positions holding disproportionate weight.
This would increase the risk associated with any individual position and could adversely affect overall
portfolio performance.

6.2 Data Quality and Data Handling

As can be seen in appendix B there were 851 Swedish stocks that were eligible in the study that came
from the Borsdata database. However, in the resulting portfolios that can be seen in appendix a there
were much fewer stocks that participated in the study. A significant reduction from the available 851
may be excepted due to companies participating in an IPO after 2018 and thus not having public info for
the starting year of the research. The number of Swedish stocks that participated in any portfolio during
the research was 329 (138+137+54) for the research with the start year 2018. Since the implemented
algorithm cannot add a stock to the portfolio if the market cap for a year could not be calculated a certain
drop from available companies to companies in the portfolio was expected. It is only logical that many
companies were deleted from the data set when market caps were unable to be calculated for a certain
year but a decline from 851 available data points down to 329 may be too significant. It is unlikely that all
the stocks that did not participate in the study had their IPO after 2018. For further studies there would
be more effort spent on data cleaning and understanding were the companies that were not included in
any portfolio were lost in the process. Even though the data cleaning process might be entirely correct
it has been difficult to back-track which companies were dropped and why.

6.2.1 Excluding Portfolios with Insufficient no. Stocks

Ensuring that the data is reliable when analyzing the data is important. In the research it is therefore
important that the portfolios that are used in the algorithm are of high quality. Portfolios containing too
few stock are of lower data quality. The are many reasons why the results from the portfolios with too
few equities should get less focus in the analysis, some of these reasons include:

1. Minervini’s risk preference of keeping the risk lower than 1.25% of the total equity will be overridden
often and during longer periods of time (See Table 4). The risk in every trade performed by the
algorithm increases when there are few active positions since that increases the position weight.
2. The portfolio will not be fully invested as often since there needs to be at least 5 active positions
in a portfolio in order for the portfolio to be fully invested (since maximum position size is 20%).

3. The portfolio is more likely to be subject to significant volatility due to the heavy influence of a
few stocks. Randomness will play a bigger role of the performance of the portfolio.

33
By a qualitative analysis of the performance of the portfolios a line was drawn at 15 stocks for a portfolio.
A lower number can be drawn at 4 since if there are only 4 stocks in a portfolio the momentum strategy
can never be fully invested with the current risk measures. The upper number is more difficult. Minervini
likely has an average position size of between of between 5-15% but in all those positions Minervini oversees
the trades daily and makes a lot more effort into how the trades are handled. In this research paper
the algorithm is acting on buy signals without ranking the quality of the buy signal and it is therefore
difficult to say how large position sizes Minervini would have preferred on average in the algorithm. Likely,
Minervini would have preferred smaller position sizes of around 1-5% which would be the case if between
20-100 trades were active in a portfolio. The maximum amount of active trades seems to be around 80
(can be seen in appendix G for the small-cap portfolio of Sweden between 2008-2023). Minervini would
therefore probably have preferred a larger number of stocks in almost every portfolio (with exception for
the largest portfolios such as Sweden small-cap 2018-2023). It is arguably difficult to draw a line and say
that the minimum amount of equities in a portfolio using this strategy should be X but the line is drawn
at 20. Therefore, the portfolios that comprise less than 20 stocks are given less or weight in the study
and any strong trends or results from these portfolios are not considered relevant for the study.

Therefore, the following portfolios have been excluded from the analysis:

• Denmark small-cap 2008-2023 (3 stocks)


• Denmark mid-cap 2008-2023 (4 stocks)
• Denmark large-cap 2008-2023 (12 stocks)

• Finland large-cap 2008-2023 (17 stocks)

In Figure 7 below the number of active trades for the Denmark small-cap 2008-2023 portfolio is shown.
The momentum strategy has been in full cash during many periods in the graph and again, even at full
portfolio exposure with the momentum strategy the portfolio will only have been 60% invested.

Figure 7: The figure above shows excess return which is defined as the momentum strategy return
subtracted by the index portfolio return

34
6.2.2 Comparison Indexes

Earlier in the report it was stated that the index portfolio will consist of the same stocks as the momentum
portfolio. The difference is that all stocks in the portfolio will always be uniformally distributed and held
in the index portfolio while in the momentum portfolio the active stocks depends on the buy signals.
There is mainly one reason for this choice of comparison index. The data that is available is only which
stocks currently are in a selected index (such as Small Cap). There is no historical data regarding
which companies has been in which index at what time. Therefore, if a comparison is made between the
index history performance and all the current stocks in the index this is comparing apples and oranges.
This problem can be clarified by looking at Fortnox, a company that is currently listed in Large Cap,
Sweden. Fortnox was initially listed in 2011 on Nordic Growth Market in Sweden and has since then
returned ∼ 25 000% as of 30th march of 2023 (mfn, 2011). Fortnox switched list to Large Cap Sweden
the 13th of April 2022 and hence Fortnox has not been involved in the return for Large Cap Sweden
during the absolute majority of it’s big return. Another alternative was therefore to compare all the
current stocks in the chosen index with the historical return of the current stocks in the index. Even
though this alternative will compare apples and apples there is a minor problem with this as well. With
logical reasoning one can conclude that stocks that has declined will not stay in the Large Cap index
for a long time. If one therefore benchmarks the returns of the current stocks in the Large Cap index
with a uniformly distributed portfolio against how well the algorithm performs on portfolio the algorithm
will likely underperform the buy and hold strategy from the index-portfolio. The same argument but
vice versa is applicable on the small-cap list where the algorithm will likely outperform a uniformally
distributed portfolio of the stocks currently in the small-cap index. Even though a comparison with an
index is a regular way of benchmark performance the use of an index is not optimal in this research due
to the data restrictions.

6.3 Empirical Results in Relation to the Efficient Market Hypothesis

As can be seen in Table 7 was significance excess return in 3 of the 18 portfolios on the 1% significance
level. The stock portfolios that generated excess return were small-cap portfolios. The consistent results
among the small-cap portfolios is notable even though not all portfolios made the threshold confidence
level. Of the 6 small-cap portfolios one of the portfolios (Denmark small-cap 2008-2023) contained only
3 stocks and that was the portfolio that did not beat the index portfolio. Therefore all the small-cap
portfolios that had an acceptable amount of stocks in their portfolio did beat the index portfolio. Compare
this to the large-cap portfolios were three of the six portfolios had the momentum strategy perform better
and three of the portfolios had the index portfolio perform better. Furthermore in the mid-cap portfolio
segment five of the six portfolios performed better (not statistically significant) using the momentum
strategy compared to the index portfolio. The trend is clear, as the market-cap size of the stocks in
the portfolio grew the performance of the momentum algorithm decreased. If not a negative correlation
between large market-cap size and algorithm performance the performance at least becomes random or
only slightly negative (but could then be because of randomness) performance of the momentum strategy
compared to the index portfolio. In Figure 8 the results are plotted which gives a clear illustration of
the findings. In Figure 8 the monthly excess return for all portfolios was calculated by first scaling both
the index portfolio return and the momentum strategy return from daily returns to monthly returns.
Thereafter the momentum strategy monthly returns were subtracted by the index portfolio monthly
returns to create ”Monthly excess return (%)” in the figure.

35
Figure 8: The figure above shows excess return which is defined as the momentum strategy return
subtracted by the index portfolio return

Notable in Figure 8 is that in every portfolio except for the low quality portfolio Denmark 08-23 (were
the amount of stocks participating too low) and Sweden 08-23 the small-caps outperformed the mid-caps
which in turn outperformed the large-caps. The most significant result is the excess performance of the
small-cap stocks. Furthermore what is interesting to analyze is when and how the momentum strategy
performed the best (and the worst). One of the portfolio developments can be seen in Figure 9 below:

36
Figure 9: Finland 08-23 portfolio with highlighted volatility zones

A significant portion of the portfolio’s return is attributed to a period characterized by high market
volatility, which occurred in 2020. The momentum portfolio had a particularly strong performance
during this period. Additionally, it is worth noting that the portfolio was almost entirely invested in cash
during the negative market sentiment that persisted between 2008-2009, when the index portfolio was
declining. This can be seen in both the portfolio performance figure above but also in Figure 10 where
the active trades during the time period for the discussed portfolio is shown. The number of active trades
between 2008 and middle of 2009 does not exceed three at any time. The portfolio was therefore at most
60% invested and only momentarily as the stocks were sold quickly.

37
Figure 10: Active trades in Finland 18-23 portfolio

The reason for the liquidity in the portfolio is due to the algorithm not getting any buy signals. The buy
signals, as known, depends on the momentum template and volume analysis. The reason for the liquidity
in the portfolio in this case is probably that the stocks in the portfolio were in a stage 4 decline, where
the momentum template was not fulfilled. When the momentum template is not fulfilled no buy signal
will be generated. The portfolio above is only 1 of the 18 portfolios researched but similar patterns can
be seen in many but not all of the other small-cap portfolios, even in the portfolios that did not beat the
index. For the mid-cap and large-cap stocks the amount of active trades is lower when the index portfolio
was declining in 2008-2009 but the excess return seen in the mid-cap and large-cap stocks in periods of
of high volatility is not as clear. During period of high market volatility the small-cap portfolios might
perform better. How then does these results relate to the EMH?

As was stated by Damodaran (2015) a market could be efficient as long as ”the market price of an asset
is an unbiased estimate of the true value of the investment”. Given that transaction costs are not higher
for small-cap stocks than for large-cap stocks the market prices does not seem to be unbiased estimators
of the true market values. If the market prices were true unbiased estimators of the true market values it
would be unlikely to see such a high inclination towards the small-cap portfolios compared to the larger-
cap portfolios. If the underlying assets had a drastically different volatility between small-cap, mid-cap
and large-cap one could argue that it is an extreme difference in volatility that has caused market prices
to oscillate randomly around the true value in the performance of the small-cap portfolio to differentiate
so much from the other portfolios. It is a reasonable assumption to say that smaller-cap stocks is more
volatile but the vast difference and consistency in the result is indicating that the reason for higher
return is likely not due to higher risk-taking. This claim is also bolstered by looking at the sharpe-ratio
3
of the three portfolios that generated statistically significant excess return. The momentum strategy
sharpe-ratio for all three portfolios is higher than the index portfolio sharpe-ratio as can be seen in Table
9. In Table 9, M Sharpe is the sharpe ratio for the momentum strategy and I Sharpe is the sharpe ratio
for the index portfolio. The excess return of the portfolios can therefore not be explained by additional
volatility.
3 Where the sharpe-ratio was calculated using 0 as risk-free rates for both portfolios. The benchmarking is therefore only

relevant in this research paper and the sharpe-ratios cannot be compared to external sources.

38
Portfolio rmd rid rmσ riσ M Sharpe (%) I Sharpe (%)
Sweden small-cap 08-23 0.00107 0.00029 0.01019 0.00896 14.9% 7.1%
Finland small-cap 08-23 0.00062 -0.00003 0.00744 0.00778 8.3% -0.4%
Finland small-cap 18-23 0.00138 0.00003 0.00995 0.00848 13.9% 0.4%

Table 9: Sharpe ratios for the portfolios where the momentum strategy generated statistical excess return
.

A proponent of the EMH would likely argue that the impact of transaction costs on the performance
of the momentum strategy cannot be predicted with certainty using the implemented algorithm, which
is true. If the algorithm was implemented to trade one stock at a time to understand how often the
stock needs to be bought and sold instead of rebalancing the portfolio every day one could probably
make a decent estimate the transaction costs. Therefore, while the findings of the analysis provide some
evidence that small-cap stocks outperform larger-cap stocks using the implemented algorithm, it’s crucial
to consider the potential impact of transaction costs before drawing any conclusions regarding the EMH.
To summarize the results suggest that the performance of the momentum strategy varies depending on
the size of the market capitalization, even when considering volatility. While these findings are significant,
it’s important to note that the impact of transaction costs has not been accounted for in the analysis.
Nevertheless, the findings provide evidence that small-cap stocks outperform larger-cap stocks using the
implemented algorithm. As was pointed out by Lo (2004) the effectiveness of a market could vary on for
example the number of participants in a market and for the smaller cap stocks there could hypothetically
be less actors interested in the stocks thus making the market less efficient compared to the stocks with
larger market capitalizations.

6.3.1 Measurability of Hypothesis Test

One might argue that the significance level of the hypothesis test is too high and with a significance level
of 5% more portfolios would have made the threshold. One the other hand that would make the results
less reliable and so a significance level of 1% was considered satisfactory. With almost 20 portfolios beeing
evaluated, a 5% significance level would make the results from the hypothesis tests less reliable. What
is of bigger analysis value if that the hypothesis test is based on normal distributions. The probable
outcome of the returns from the algorithm might be more positively skewed than the outcome of returns
from the index portfolio, primarily due to the left tail of the normal distribution being ”cut off” when
the stop-loss of 8% is activated. This makes the distribution of the returns be more positively skewed
than the normal distribution.

6.4 Discussion

While these restrictions that were summarized brings the algorithm further away from Minervini’s im-
plemented strategy the results from the algorithm are still relevant in the studies regarding momentum
strategies in the stock market. Relating the empirical results to the Damodaran’s interpretation of the
EMH, which suggest that ”the market price of an asset is an unbiased estimate of the true value of the in-
vestment” it would be impossible to consistently achieve excess returns without luck. The study’s results
show that if transaction costs are not higher for small-cap stocks than for large-cap stocks, the market
prices do not seem to be unbiased estimators of the true market values, which therefore is inconsistent
with Damodaran’s interpretation of the EMH. The general conclusion and results of the algorithm points
towards that the market might not be entirely efficient unless the transaction costs vary widely depend-
ing on the market-cap size of stocks. The study gives an indication that the implemented momentum
strategy is more effective on small-cap stocks than on larger cap stocks.

One criticism of the study is the potential survivorship bias effect. The stocks included in the analysis
were those that were present in the market as of January 1, 2023, and had already survived until that
point. This means that the momentum strategy was tested on a selection of stocks that had already
demonstrated their ability to stay afloat in the market. However, when the strategy is applied for

39
future decision-making purposes, it may be used on stocks that could potentially go bankrupt in the near
future. This could potentially skew the results of the strategy and may limit its effectiveness in real-world
applications.

40
7 Conclusion and Further Research

7.1 Conclusion

What are the limitations and challenges of executing Minervini’s momentum analysis techniques in an
algorithmic approach?

The implemented momentum algorithm is seen a primitive variant of Minervini’s strategy due to several
technical restrictions, practical application problems, and exclusion of fundamental and catalyst aspects.
The technical restrictions highlighted in the analysis include the challenge of implementing base count
accurately in an algorithmic trading system due to the subjective nature of base patterns, the absence
of a relative strength ranking in the algorithm, and the risk and position sizing aspect of the algorithm.
The algorithm’s fixed stop-loss of 8% does not allow for varying position sizes as Minervini, which
makes it difficult to implement Minervini’s risk management approach accurately. The algorithm’s daily
adjustment of position sizes is also identified as a deviation from Minervini’s approach, which involves a
limited number of active positions and closer monitoring of the active trades where position sizes are not
altered daily. Minervini would not mindlessly always keep a uniformally distributed portfolio because the
stocks fulfills the buy conditions. Minervini would put careful consideration which stocks that should get
a bigger position size and Minervini would always pay more attention to the general market environment
when deciding which position size to enter a trade with. Overall the biggest challenges when it comes
to mimicking Minervini’s momentum strategy in an algorithmic approach is the subjectivity aspects
regarding recognising a base and a buy point and also how to adjust the position size.

However, even though it is challenging to implement a partly qualitative analysis in an algorithmic


approach the algorithm might add value even though it cannot fully mimick Minervini’s strategy. The
strengths of using an algorithm is that hundreds of stocks can be analyzed in the blink of an eye compared
to the manual scrolling and manual analysis that is done by Minervini. A suggestion is to not let the
algorithm fully perform the buy and selling of an equity but rather make suggestions that needs input
from the user on whether the stock should be bought. The algorithm could probably speed up the process
of excluding stocks that are not of interest.

Is it possible to generate excess returns in Sweden, Denmark, and Finland by using the implemented
algorithm over different time periods ranging from 2008-2022?

The empirical results showed that small-cap portfolios of the momentum strategy had the most consistent
excess returns generated compared to the mid-cap and large-cap portfolios where the returns did not show
a significant difference compared to the index portfolio. The significant excess returns are attributable
to high volatility periods. During market declines, the stocks were probably in a stage 4 decline which
led to the stocks in the portfolio not fulfilling the momentum criteria which led to no buy signals being
generated. As a result, the momentum portfolio maintained high liquidity in negative market conditions.
On the other hand in periods of high volatility to the upside the momentum strategy quickly rebalanced
to the stocks that were breaking out from bases. The theory is the same for all market caps, but for the
mid-cap and large-cap portfolios the effects were not significant or even existing.

Even though this research suggests that excess return was generated for many of the small-cap portfolios
(See Figure 8 and Table 9) the research did not account for transaction costs. Since transaction costs were
not accounted for in the research it is difficult to say whether excess return was generated after transaction
costs. However, given that the transaction costs for the small-cap portfolios are the same as for mid-cap
and large-cap portfolios the results indicate that the momentum strategy performs stronger in small-cap
stocks compared to mid-cap and large-cap stocks. This in itself is not consistent with Damodaran’s
interpretation of the EMH. Therefore the conclusion can be drawn that the momentum algorithm seems
to perform better for smaller-cap stocks compared to larger-cap stocks but if the momentum technique
is generating excess returns after transaction costs are reduced is still to be researched.

41
7.2 Further Research

Transaction costs are an important factor to consider in any investment strategy, as they can significantly
impact the overall returns of the portfolio. In the current study, transaction costs were not taken into
account, which may limit the applicability of the results in real-world scenarios. In order to further
validate the effectiveness of the implemented algorithm, it is recommended to implement reasonable
transaction costs and analyze the performance of the strategy in light of those costs. This would provide
more accurate estimates of the net returns that could be achieved with the strategy, and help to identify
potential areas for optimization or improvement. This could have adjusted the stop-loss from -8 to -4%
or made the algorithm take large profits at +50% instead of 100

Additionally, including transaction costs in the analysis would allow for a more realistic comparison of the
strategy against other investment strategies, and provide valuable insights into the practical implications
of the strategy for private investors. The methodology could also be adjusted in order to make the
strategy not make transactions every day as it is currently implemented. One possible way to improve
the current approach is to introduce a ranking system for the buy signals and consistently select the
top 20 highest-ranked stocks each week. This modification would shift the momentum analysis to a
weekly-based approach, which could help mitigate the transaction costs incurred by daily rebalancing.

The studies referred to in this research paper did not consider volume analysis in their research method-
ology. However, in the implemented algorithm, the volume aspect is a crucial factor in determining
the appropriate time to buy a stock. As a result, future research could involve implementing the same
algorithm without the volume condition to examine whether volume has indeed played a significant role
in the returns achieved. Furthermore, as discussed in Chapter 6.2, the number of stocks that passed
the screening process was lower than expected. Therefore, more attention should be given to the data
handling area to investigate the reasons and timing of why some stocks disappeared from the studied
dataset. This could help improve the screening process and potentially increase the number of stocks
available for analysis.

To optimize the algorithm, it is crucial to conduct a detailed analysis of the reasons behind selling a
stock, instead of solely relying on True/False values in matrices (see appendix E) . This approach would
facilitate a more comprehensive understanding of the timing and circumstances under which stocks were
sold, and enable more precise adjustments and optimizations of the algorithm. The performance of the
algorithm could probably be improved with more analysis regarding buy and sell decisions.

Lastly, as discussed in 6.3.1 there needs to be further research regarding the full distribution of the returns
and the output data. This can ensure that hypothesis testing is the most suitable approach to use when
understanding the performance of the algorithm.

42
References

[1] U. Agathee. “Momentum strategies on the stock exchange of Mauritius”. In: African Journal of
Economic and Management Studies 3 (2012). doi: 10.1108/20400701211265018. url: https:
//doi.org/10.1108/20400701211265018.
[2] Amenc and Le Sourd. “Portfolio Theory and Performance Analysis”. In: (2003).
[3] P. Barroso and P. Santa-Clara. “Momentum has its moments”. In: Journal of Financial Economics
116.1 (2015), pp. 111–120. doi: 10.1016/j.jfineco.2014.11.010. url: https://doi.org/10.
1016/j.jfineco.2014.11.010.
[4] Börsdata. Börsdata. 2023. url: https://xn--brsdata-90a.se.
[5] A. Bryman and E. Bell. Business research methods. Oxford: Oxford University Press, 2011.
[6] Thomas N. Bulkowski. Encyclopedia of Chart Patterns. John Wiley Sons, 2000.
[7] A. Damodaran. Market Efficiency. 2015.
[8] W.F.M. De Bondt and R. Thaler. “Does the Stock Market Overreact?” In: The Journal of Finance
40.3 (1985), pp. 793–805. doi: 10.1111/j.1540-6261.1985.tb05004.x. url: https://doi.org/
10.1111/j.1540-6261.1985.tb05004.x.
[9] E. Fama. “Random Walks in Stock Market Prices”. In: (1963).
[10] R. Greenwood and A. Shleifer. “Expectations of Returns and Expected Returns”. In: Review of
Financial Studies 27.3 (2014), pp. 714–746. doi: 10.1093/rfs/hht082. url: https://doi.org/
10.1093/rfs/hht082.
[11] B.D. Grundy and J.S. Martin. “Understanding the Nature of the Risks and the Source of the
Rewards to Momentum Investing”. In: SSRN Electronic Journal (1998). doi: 10.2139/ssrn.94049.
url: https://doi.org/10.2139/ssrn.94049.
[12] Investopedia. What Is Momentum? Definition in Trading, Tools, and Risks. https://www.investopedia.
com/terms/m/momentum.asp. Accessed: 16 February 2023. 2023.
[13] Narasimhan Jegadeesh and Sheridan Titman. “Profitability of Momentum Strategies: An Eval-
uation of Alternative Explanations”. In: The Journal of Finance 56.2 (2001), pp. 699–720. doi:
10.1111/0022-1082.00337.
[14] Narasimhan Jegadeesh and Sheridan Titman. “Returns to Buying Winners and Selling Losers:
Implications for Stock Market Efficiency”. In: The Journal of Finance 48.1 (1993), pp. 65–91. doi:
10.2307/2328882.
[15] David A Lesmond, Michael J Schill, and Chunsheng Zhou. “The illusory nature of momentum
profits”. In: Journal of Financial Economics 71.2 (2004), pp. 349–380. doi: 10 . 1016 / S0304 -
405X(03)00206-X.
[16] Andrew Lo. “The Adaptive Markets Hypothesis: Market Efficiency from an Evolutionary Perspec-
tive”. In: Journal of Portfolio Management 30.5 (2004), pp. 15–29. doi: 10.3905/jpm.2004.440611.
[17] Richard Love. Superperformance Stocks: An Investment Strategy for the Individual Investor Based
on the 4-year Political Cycle. Dow Jones-Irwin, 1977.
[18] Burton G Malkiel. “A Random Walk Down Wall Street: The Time-Tested Strategy for Successful
Investing”. In: (2003).
[19] mfn. Handel med Fortnox Internationals aktier inleds på NGM Nordic MTF. https://mfn.se/
ngnews/a/briox/handel- med- fortnox- internationals- aktier- inleds- pa- ngm- nordic-
mtf-e74c3e8a. Accessed: 9 February 2023. 2011.
[20] Mark Minervini. Minervini Private Access. https://www.minervini.com/about.php. Accessed: 9
February 2023. 2022.
[21] Mark Minervini. Think and Trade Like a Champion: The Secrets, Rules and Blunt Truths of a Stock
Market Wizard. Mind Press, 2016.
[22] Mark Minervini. Trade Like a Stock Market Wizard: How to Achieve Super Performance in Stocks
in Any Market. McGraw Hill Professional, 2013.

43
[23] Tobias J Moskowitz and Kent Daniel. “Momentum crashes”. In: Journal of Financial Economics
102.1 (2011). Accessed: 23 January 2023, pp. 1–23.
[24] Tobias J Moskowitz and Mark Grinblatt. “Do industries explain momentum?” In: The Journal of
Finance 54.4 (1999), pp. 1249–1290.
[25] Marc R Reinganum. “The anatomy of a stock market winner”. In: The Journal of Financial Eco-
nomics 21.2 (1988), pp. 327–340.
[26] K Geert Rouwenhorst. “International momentum strategies”. In: The Journal of Finance 53.1
(1998), pp. 267–284.
[27] Ian Tonks and Mark Hon. “Momentum in the UK stock market”. In: Journal of Multinational
Financial Management 13 (2003), pp. 43–70.

1
A Appendix A - Evaluated Portfolios

Country Market cap Year No. of stocks


Sweden small-cap 2008-2023 138
Sweden mid-cap 2008-2023 47
Sweden large-cap 2008-2023 54
Denmark small-cap 2008-2023 3
Denmark mid-cap 2008-2023 4
Denmark large-cap 2008-2023 12
Finland small-cap 2008-2023 27
Finland mid-cap 2008-2023 24
Finland large-cap 2008-2023 17
Sweden small-cap 2018-2023 138
Sweden mid-cap 2018 2023 137
Sweden large-cap 2018-2023 54
Denmark small-cap 2018-2023 73
Denmark mid-cap 2018-2023 21
Denmark large-cap 2018-2023 36
Finland small-cap 2018-2023 67
Finland mid-cap 2018-2023 43
Finland large-cap 2018-2023 33

Table 10: All analyzed portfolios

2
B Appendix B - All Shares Analyzed in the Report

B.1 Swedish companies

1. AAK 43. Corem Property A 85. ITAB Shop Concept


2. ABB 44. CTT Systems 86. JM
3. Active Biotech 45. Diamyd Medical 87. Kabe
4. Addnode 46. Diös Fastigheter 88. Kinnevik B
5. Addtech 47. Doro 89. KnowIT
90. Lagercrantz
6. Alfa Laval 48. Duni
91. Lammhults Design
7. Anoto 49. Duroc
92. Latour
8. Arise Windpower 50. Eastnine
93. Lindab
9. Assa Abloy 51. Elanders
94. Loomis
10. AstraZeneca 52. Elon
95. Lundbergföretagen
11. Atlas Copco A 53. Electrolux B 96. Lundin Mining
12. Atrium Ljungberg 54. Elekta 97. Orrön Energy
13. Autoliv 55. Elos Medtech 98. Malmbergs Elektriska
14. Avanza Bank 56. Enea 99. Medivir
15. Axfood 57. Eniro 100. MEKO
16. Bergman & Beving 58. EnQuest 101. Mycronic
17. BE Group 59. Ericsson B 102. Midsona B
18. Beijer Ref 60. eWork 103. Midway B

19. Beijer Alma 61. Fabege 104. Millicom


105. Stockwik Förvaltning
20. Beijer Electronics 62. Fagerhult
106. Empir Group
21. Bergs Timber 63. Fastpartner A
107. Modern Times Group B
22. Betsson 64. Fast Balder
108. NAXS
23. Bilia 65. Fenix Outdoor
109. NCC B
24. Billerud 66. Fingerprint Cards 110. Nederman
25. BioGaia 67. Formpipe Software 111. Net Insight
26. Bioinvent 68. Getinge 112. New Wave
27. Biotage 69. Havsfrun Investment 113. NIBE Industrier
28. Björn Borg 70. Heba 114. Nobia
29. Boliden 71. Hennes & Mauritz 115. Nolato
30. Bong Ljungdahl 72. Hexagon 116. Nordea Bank
31. Brinova Fastigheter 73. Hexpol 117. Nordnet
32. BTS Group 74. HMS Networks 118. NOTE
119. Strax
33. Bure Equity 75. Holmen B
120. Novotek
34. Byggmax 76. Hufvudstaden A
121. Vivesto
35. Castellum 77. Husqvarna B
122. Logistea A
36. Catena 78. I.A.R Systems
123. OEM International
37. Nelly Group 79. Image Systems
124. Orexo
38. CellaVision 80. Industrivärden C 125. Ortivus B
39. Clas Ohlson 81. Indutrade 126. Peab
40. Cloetta 82. Rolling Optics 127. PION Group
41. Concordia Maritime 83. Intrum 128. Precise Biometrics
42. Concejo B 84. Investor B 129. Prevas

3
130. Pricer 177. Wihlborgs Fastigheter 224. JLT Mobile
131. Proact IT 178. XANO Industri 225. Kancera
132. Probi 179. AFRY 226. Copperstone
133. ProfilGruppen 180. Öresund 227. Kopy Goldfields
134. Ratos B 181. Karolinska Development 228. Lucara Diamond
135. RaySearch Laboratories 182. Boule Diagnostics 229. Mackmyra
136. Rejlers 183. Dedicare 230. MedCap

137. Coala-life 184. Moberg Pharma 231. Modern Ekonomi


232. Misen Energy
138. Rottneros 185. Concentric
233. NetJobs
139. Saab 186. Cavotec
234. New Nordic Healthbrands
140. Sagax A 187. Nokia
235. Online Brands Nordic
141. Sandvik 188. Micro Systemation
236. Saxlund
142. SAS 189. Vitec Software
237. Egetis Therapeutics
143. SCA B 190. Bulten
238. Precio Fishbone
144. SEB A 191. Moment Group
239. Precomp Solutions
145. Sectra 192. ADDvise Group A
240. ScandBook
146. Securitas 193. Africa Oil 241. ShaMaran
147. Sensys Gatso 194. Arctic Minerals 242. Ogunsen
148. Handelsbanken A 195. Avensia 243. Skåne-möllan
149. SinterCast 196. Avtech 244. Stille
150. Skanska 197. Bredband2 245. TagMaster
151. SKF B 198. C-RAD 246. Tethys Oil
152. SkiStar 199. Catella B 247. Unlimited Travel Group
153. Softronic 200. Auriant Mining 248. Nordic Flanges
154. SSAB A 201. Nordic LEVEL 249. Vestum
155. Stora Enso R 202. Creades 250. Westpay
156. Studsvik 203. DistIT 251. Wise Group
157. Svedbergs 204. Diadrom 252. ALM Equity
158. Svolder B 205. Dignitana 253. Mangold
159. Sweco B 206. Drillcon 254. Platzer Fastigheter

160. Swedbank 207. Ellen 255. aXichem


256. Nexam Chemical
161. Swedish Orphan Biovitrum 208. Kakel Max
257. Xvivo Perfusion
162. Systemair 209. Eolus Vind
258. Bufab
163. Tele2 B 210. EnergyO Solutions
259. Bactiguard
164. Telia Company 211. Episurf Medical
260. Scandi Standard
165. TietoEVRY 212. Firefly
261. Arctic Paper
166. Traction 213. Arcario
262. Besqab
167. TradeDoubler 214. Generic Sweden
263. G5 Entertainment
168. Viking Supply 215. Genovis
264. Abliva
169. Trelleborg 216. Binero Group 265. Oscar Properties
170. Kindred 217. Götenehus Group 266. Starbreeze B
171. VBG Group 218. Hansa Biopharma 267. Cell Impact
172. Rizzo Group 219. Stendörren Fastigheter 268. BIMobject
173. Vitrolife 220. Hifab 269. Mendus
174. Volvo B 221. Impact Coatings 270. Polyplank
175. VNV Global 222. Invisio 271. Fastator
176. Wallenstam 223. Northbaze 272. Ages Industri

4
273. Clavister 320. Serstech 366. Gaming Corps
274. Cortus Energy 321. RLS Global 367. Heimstaden Pref
275. Reato Group 322. Guard Therapeutics 368. Inission
276. Doxa 323. Enzymatica 369. Kontigo Care
277. Hanza 324. Spago Nanomedical 370. Nilörngruppen
278. Heliospectra 325. Sivers Semiconductors 371. Pegroco Invest Pref
279. Hexatronic 326. AQ Group 372. Studentbostäder

280. Kallebäck Property 373. SavoSolar


327. AroCell
374. Scibase
281. Kambi 328. Qlosr Group
375. SolTech Energy
282. Kentima 329. Botnia Exploration
376. Spiffbet
283. Mavshack 330. Clinical Laserthermia
377. SpectrumOne
284. Irisity 331. Acroud
378. SaltX Technology
285. NanoCap 332. iZafe
379. Cline Scientific
286. Nicoccino 333. NGS Group
380. CombiGene
287. Clemondo 334. Railcare 381. Idogen
288. ScandiDos 335. QuiaPEG Pharmaceuticals 382. Nanexa
289. Scandinavian Enviro 336. Senzime 383. Pharmacolog
290. Advenica 337. Sileon 384. Transtema
291. Speqta 338. Guideline Geo 385. Bonäsudden
292. LIDDS 339. KebNi 386. Link Prop
293. DDM Holding 340. Hedera 387. Insplorion
294. Inwido 341. Fortnox 388. SpectraCure
295. Gränges 342. Zinzino 389. VEF
296. Safeture 343. Lundin Gold 390. Footway Pref
297. Thule 344. Eltel 391. Vimab Group
298. Sprint Bioscience 345. Byggmästare AJ Ahlström 392. Sinch
299. Nexstim 346. Freja eID 393. Bravida
300. Humble Group 394. Dometic
347. Dustin Group
301. Bonzun 395. Klaria Pharma
348. OrganoClick
302. Arcoma 396. Minesto
349. Acrinova A
303. PowerCell 397. Photocat
350. Corem Property Pref
398. Waystream
304. Christian Berner Tech 351. ALM Equity Pref
399. Alzinova
305. Absolent Air Care 352. Oscar Properties Pref
400. Nanologica
306. Samhällsbyggnadsbolag B 353. Sdiptech Pref
401. Attendo
307. Lifco 354. K2A Knaust & Andersson
402. Camurus
308. NP3 Fastigheter Pref
403. Scandic Hotels
309. Premium Snacks 355. Volati Pref
404. Immunovia
310. Gabather 356. Pandox
405. Nilsson Special Vehicles
311. Scandinavian Real Heart 357. Alimak
406. Stillfront
312. Greater Than 358. Collector Bank
407. Vicore Pharma
313. Ecoclime 359. Coor Service Management 408. Toleranzia
314. Tourn 360. Hoist Finance 409. Xbrane Biopharma
315. Storytel 361. Tobii 410. Catena Media
316. OptiCept Technologies 362. Troax Group 411. Humana
317. Ortoma 363. Cantargia 412. Garo
318. ProstaLund 364. Corline Biomedical 413. Polygiene
319. Saniona 365. Evolution 414. AddLife

5
415. Xintela 462. Aino Health 509. Bonesupport
416. Simris Alg 463. AppSpotr 510. OXE Marine
417. Infant Bacterial 464. Acarix 511. Alligo
418. Litium 465. AAC Clyde Space 512. Agtira
419. Nepa 466. SeaTwirl 513. Nitro Games
420. Resurs Holding 467. Svenska Aerogel 514. Urb-it
421. Paradox Interactive 468. Vo2 Cap 515. Netmore
422. Talkpool 469. AcouSort 516. NextCell Pharma

423. Lauritz 470. Effnetplattformen 517. Promore Pharma


518. Realfiction
424. Swedencare 471. Oncopeptides
519. Sedana Medical
425. B3 Consulting 472. Hemcheck Sweden
520. Surgical Science
426. Clean Motion 473. Hoylu
521. Trianon
427. SynAct Pharma 474. IRLAB Therapeutics
522. Seamless Distribution Sys-
428. Alelion Energy 475. Initiator Pharma tems
429. TF Bank 476. Chordate Medical 523. Balco Group
430. Nordic Waterproofing 477. Ambea 524. Quartiers Properties
431. AcadeMedia 478. Mips 525. SenzaGen
432. Bonava B 479. ChromoGenics 526. Xspray Pharma
433. Acuvi 480. FM Mattsson 527. BioArctic
434. Cyxone 481. Actic Group 528. Fram Skandinavien
435. Oscar Properties Pref B 482. Biovica 529. Climeon
436. Eagle Filters 483. Unibap 530. Qiiwi Games
437. Enorama Pharma 484. Sonetel 531. Ferronordic
438. GomSpace 485. Isofol Medical 532. Goodbye Kansas
439. Redwood Pharma 486. Tangiamo Touch 533. Artificial Solutions
440. Quartiers Properties Pref 487. Intervacc 534. 2cureX
441. Maha Energy 488. Instalco 535. Seafire
442. ExpreS2ion Biotech 489. Sdiptech 536. Flexqube

443. Flowscape 490. Munters 537. Awardit


538. IRRAS
444. Alcadon Group 491. SECITS Holding
539. Tempest Security
445. Filo Mining 492. International Petroleum
540. DevPort
446. Cyber Security 1 493. Mantex
541. MAG Interactive
447. Solnaberg 494. Annexin
542. Scout Gaming
448. Nosa Plugs 495. Athanase Innovation
543. Acconeer
449. Gasporox 496. Bambuser
544. Lyko
450. Embracer 497. XMReality
545. Arjo
451. BICO Group 498. Integrum
546. Enad Global 7
452. Serneke 499. ISR Holding
547. Bio-Works
453. Volati 500. Bioservo Technologies 548. H&D Wireless
454. Byggpartner 501. Medicover 549. ADDvise Group B
455. Crunchfish 502. TerraNet 550. Atlas Copco B
456. Gapwaves 503. Boozt 551. Bonava A
457. InDex Pharmaceuticals 504. Zaplox 552. Catella A
458. Alligator Bioscience 505. Ayima 553. Corem Property B
459. Swedish Stirling 506. Paxman 554. Electrolux A
460. ChemoTech 507. Essity B 555. Ericsson A
461. Smart Eye 508. Enersize 556. Essity A

6
557. Handelsbanken B 604. Ranplan 651. Fastpartner D
558. Holmen A 605. Asarina Pharma 652. Kollect on Demand
559. Husqvarna A 606. Metacon 653. Zwipe
560. Industrivärden A 607. Nordic Iron Ore 654. Nord Insuretech
561. Investor A 608. Ziccum 655. Veg of Lund
562. Kinnevik A 609. Zordix 656. QLife
563. Midsona A 610. Nyfosa 657. Stayble Therapeutics
564. Midway A 611. AlzeCure Pharma 658. Electrolux Professional B

565. Modern Times Group A 612. Axolot Solutions 659. Bioextrax


660. Epti
566. NCC A 613. S2Medical
661. AegirBio
567. Ortivus A 614. Scandion Oncology
662. Nanoform
568. Ratos A 615. Azelio
663. Magle Chemoswed
569. Sagax B 616. Jetpak
664. Genova Property
570. Sagax D 617. Lime Technologies
665. Exsitec
571. SCA A 618. NeoDynamics
666. Readly
572. SEB C 619. Q-Linea
667. Implantica
573. SKF A 620. CAG Group
668. Lifeclean
574. SSAB B 621. Footway
669. Neola Medical
575. Starbreeze A 622. Samhällsbyggnadsbolag D 670. MGI - Media Games
576. Stora Enso A 623. InCoax Networks 671. Qliro
577. Svolder A 624. Clean Industry 672. Wästbygg
578. Sweco A 625. Ferroamp 673. BoMill
579. Tele2 A 626. Teqnion 674. Klimator
580. Volvo A 627. Upsales 675. Nordic Paper
581. Leading Edge Materials 628. Ascelia Pharma 676. Lohilo Foods
582. Cibus Nordic 629. Viaplay B 677. Prostatype Genomics
583. BHG Group 630. Viaplay A 678. Svenska Nyttobostäder
584. Green Landscaping 631. Karnov 679. Svenska Nyttobostäder Pref
585. BuildData 632. Train Alliance 680. CDON
586. Iconovo 633. Gaming Innovation 681. Luxbright
587. Fluicell 634. Triboron 682. Fortinova
588. Infrea 635. FluoGuide 683. Re:NewCell
589. NP3 Fastigheter Pref 636. Vertiseit 684. Thunderful

590. Better Collective 637. OssDsign 685. Fasadgruppen

591. NCAB Group 638. John Mattson 686. Annehem Fastigheter


687. CirChem
592. I-Tech 639. K2A
688. Stenhus Fastigheter
593. Ovzon 640. Mentice
689. Scandinavian Biogas
594. JonDeTech Sensors 641. Traton
690. Aros Bostadsutveckling Pref
595. Africa Energy 642. EQT B
596. Arion Banki 643. Lipidor 691. ELLWEE
597. Epiroc A 644. Akelius D 692. Nimbus
598. Epiroc B 645. ZignSec 693. Fractal Gaming
599. Flexion Mobile 646. K-Fast Holding 694. Cint Group
600. Projektengagemang 647. Adventure Box 695. OncoZenge
601. Calliditas Therapeutics 648. QleanAir 696. Desenio
602. Midsummer 649. MOBA Network 697. Lipigon Pharmaceuticals
603. Raketech 650. Divio Technologies 698. CoinShares

7
699. Spherio Group 751. tbd30 803. Careium
700. Ekobot 752. Biosergen 804. ChargePanel
701. RugVista 753. Emplicure 805. Devyser Diagnostics
702. Acrinova B 754. Intellego Technologies 806. KlaraBo
703. Embellence 755. USWE Sports 807. Nivika Fastigheter
704. Fantasma Games 756. Corem Property D 808. Norva24
705. ACQ Bure SPAC 757. Linkfire
809. Solid Försäkring
706. Idun Industrier 758. First Venture
810. Tobii Dynavox
707. Pierce Group 759. Profoto
811. Titania
708. LMK Group 760. Wyld Networks
812. Mestro
709. Euroafrica Digital Ventures 761. Amniotics
813. Viva Wine
710. Pharmiva 762. Freemelt
711. Hemnet 763. Godsinlösen 814. Case Group
712. Dlaboratory 764. Diagonal Bio 815. Nordic Asia
713. Lipum 765. Fragbite 816. MTI Investment
714. Plexian 766. Modus Therapeutics 817. W5 Solutions
715. Modelon 767. Pila Pharma 818. Dala Energi
716. Nilar International 768. Söder Sportfiske 819. Learning 2 Sleep
717. Tellusgruppen 769. Arlandastad 820. Newbury Pharmaceuticals
718. Goobit Group 770. Kjell Group 821. Zazz Energy
719. checkin.com 771. Kiliaro 822. Smart Valor
720. Duearity 772. Aprendere Skolor 823. Purefun
721. Safello Group 773. CTEK 824. Lyckegård
722. Twiik 774. eEducation Albert
825. Move About
723. Aligro Planet SPAC 775. FSport
826. RightBridge Ventures
724. Arla Plast 776. Fastighetsbolag Emilshus
827. BeammWave
725. Cedergrenska 777. Storskogen
828. Northgold
726. Tessin Nordic 778. Truecaller
829. Bawat Water
727. Linc 779. Nordisk Bergteknik
728. Bokusgruppen 780. Haypp Group 830. CombinedX
729. Loyal Solutions 781. Netel Holding 831. Swedish Logistic Property
730. Mildef Group 782. Byggfakta 832. Oneflow
731. Permascand 783. Flat Capital 833. Momentum Group
732. SaveLend 784. Pagero Group 834. High Coast Distillery
733. Sozap 785. Hilbert Group 835. Promimic
734. Sleep Cycle 786. Advanced SolTech 836. Västra Hamnen
735. Ngenic 787. Volvo Car 837. Arctic Blue Beverages
736. Maven Wireless 788. Synsam 838. 4C Group
737. Elicera Therapeutics 789. Medhelp Care 839. Job Solution Sweden
738. Aventura Group 790. XP Chemistries 840. Skolon
739. Revolutionrace 791. Bricknode
841. Engcon
740. TH1NG 792. Candles Scandinavia
842. Sweden BuyersClub
741. Aros Bostadsutveckling 793. Compodium
843. Fastighetsbolaget Emilshus
742. Acast 794. Norditek
844. Alleima
743. CodeMill 795. Qlucore
845. Cinis Fertilizer
744. Hexicon 796. Bubbleroom
745. Physitrack 797. Opter 846. Sampo
746. Vimian Group 798. SignUp Software 847. Gotlandsbolaget A
747. Brilliant Future 799. Alpcot 848. Gotlandsbolaget B
748. Creaspac SPAC 800. Resqunit 849. LumenRadio
749. LL Lucky Games 801. Logistea B 850. Neobo Fastigheter
750. OX2 802. Adtraction 851. RanLOS

8
B.2 Finnish companies

1. Cargotec 46. Vaisala 91. Trainers House


2. Citycon 47. Viking Line 92. Boreo
3. Elisa 48. Enento 93. NoHo Partners
4. Fiskars 49. Pihlajalinna 94. Panostaja
5. Fortum 50. Endomines Finland 95. Scanfil
6. Huhtamäki 51. Sotkamo Silver 96. Tecnotree
7. Kemira 52. Saga Furs 97. Teleste

8. Kesko B 53. Reka Industrial 98. Tulikivi


99. Wulff-Yhtiöt
9. KONE 54. Valoe
100. Fellow Pankki
10. Konecranes 55. Apetit
101. Consti
11. Neste 56. Afarak
102. Detection
12. Nokia 57. Aspocomp
103. Eagle Filters
13. Nokian Renkaat 58. CapMan
104. Herantis Pharma
14. Nordea Bank 59. Componenta
105. Nexstim
15. Orion B 60. Digia
106. Nixu
16. Outokumpu 61. Dovre 107. Piippo
17. Metso Outotec 62. Enedo 108. Robit
18. Sampo 63. eQ Oyj 109. SavoSolar
19. Sanoma 64. Etteplan 110. Siili Solutions
20. SSAB B 65. Suominen 111. Taaleri
21. Stora Enso R 66. Solteq 112. Talenom
22. Telia Company 67. Exel Composites 113. United Bankers
23. TietoEVRY 68. Glaston 114. Verkkokauppa.com
24. UPM-Kymmene 69. Innofactor 115. Tokmanni Group
25. Valmet 70. SSH Communications 116. Lehto Group
26. Wärtsilä 71. Ålandsbanken B 117. Qt Group
27. YIT Corporation 72. Raute 118. NYAB
28. Aktia Bank 73. Biohit 119. Vincit
29. Caverion 74. QPR Software 120. Heeros

30. Oriola B 75. Elecster 121. Rovio


122. Fondia
31. Atria 76. Honkarakenne
123. Kamux
32. Aspo 77. Ilkka 2
124. Remedy Entertainment
33. Alma Media 78. Incap
125. Terveystalo
34. Bittium 79. Digitalist Group
126. Efecte
35. Finnair 80. Ovaro Kiinteistösijoitus
127. Gofore
36. WithSecure 81. Marimekko
128. Titanium
37. Lassila Tikanoja 82. Martela
129. Kesko A
38. HKScan 83. Nurminen Logistics 130. Metsä Board A
39. Metsä Board B 84. Keskisuomalainen 131. Oriola A
40. Olvi 85. Kesla 132. Orion A
41. Ponsse 1 86. PunaMusta Media 133. SSAB A
42. Rapala 87. Revenio 134. Stora Enso A
43. SRV Group 88. Sievi Capital 135. Ålandsbanken A
44. Stockmann 89. Wetteri 136. BBS-Bioactive Bone
45. Uponor 90. Investors House 137. Admicom

9
138. Harvia 157. Orthex 176. Aiforia Technologies
139. Enersense 158. Sitowise Group 177. Springvest
140. Kojamo 159. Alexandria Pankkiiriliike 178. Betolar
141. Eezy 160. Netum 179. Digital Workforce
142. Oma Säästöpankki 161. Toivo Group 180. Lamor
143. Rush Factory 162. Merus Power 181. Norrhydro
144. Viafin Service 163. Solwers
182. Kempower
145. Tallink Grupp 164. Puuilo
183. Administer
146. LeadDesk 165. Spinnova
184. Purmo Group
147. Aallon Group 166. Anora Group
185. Evli
148. Relais Group 167. Bioretec
186. LapWall
149. Fodelia 168. EcoUp
187. Lifa Air
150. Faron Pharmaceuticals 169. Modulight
151. Optomed 170. Loihde 188. Witted Megacorp

152. Musti Group 171. Inderes 189. Asuntosalkku

153. Nanoform 172. Lifeline SPAC 190. Nordic Lights Group


154. Partnera 173. Fifax 191. F-Secure
155. Kreate Group 174. Lemonsoft 192. Koskisen
156. Nightingale Health 175. Duell 193. Tamtron

10
B.3 Danish Companies

1. A.P. Moller Maersk B 46. Tivoli 91. Park Street


2. Carlsberg B 47. Spar Nord Bank 92. North Media
3. Chr Hansen 48. UIE 93. NTR Holding
4. Coloplast 49. Zealand Pharma 94. PARKEN Sport
5. Danske Bank 50. Össur 95. Prime Office
6. DSV 51. Aalborg Boldspilklub 96. Rias
7. FLSmidth Co. 52. AGF B 97. RTX

8. Genmab 53. Atlantic Petroleum 98. EAC Invest


99. Scandinavian Brake
9. GN Store Nord 54. BankNordik
100. Silkeborg IF
10. Novo Nordisk 55. BioPorto
101. SKAKO
11. Pandora 56. Pharma Equity
102. Skjern Bank
12. Vestas Wind Systems 57. Brd. Klee
103. Ennogie Solar
13. Royal UNIBREW 58. Brdr. AO Johansen
104. SP Group
14. H. Lundbeck B 59. Brdr. Hartmann
105. Rovsing
15. Nordea Bank 60. Brondbyernes IF
106. Strategic Investments
16. ISS 61. cBrain 107. Agat Ejendomme
17. Jyske Bank 62. ChemoMetec 108. Cemat
18. Kobenhavns Lufthavne 63. Columbus 109. TORM
19. Novozymes 64. Copenhagen Capital 110. Totalbanken
20. Rockwool B 65. Danske Andelskassers 111. Vestjysk Bank
21. Sydbank 66. Dantax 112. EgnsINVEST
22. Topdanmark 67. Djurslands Bank 113. Enalyzer
23. Tryg 68. Scandinavian Investment 114. FastPassCorp
24. Demant 69. Erria 115. Jobindex
25. Matas 70. Fast Ejendom 116. WIRTEK
26. FirstFarms 71. Fynske Bank 117. Orsted
27. Bang Olufsen 72. Gabriel Holding 118. Scandinavian Tobacco
28. Flugger 73. German High Street 119. GreenMobility
29. Roblon 74. Glunz Jensen 120. Conferize

30. ALK-Abello 75. Grönlandsbanken 121. Nilfisk


122. Orphazyme
31. Alm. Brand 76. Gyldendal B
123. TCM Group
32. Ambu 77. HH International
124. Copenhagen Capital Praef
33. Bavarian Nordic 78. Harboes Bryggeri
125. A.P. Moller Maersk A
34. D/S Norden 79. Hvidbjerg Bank
126. Carlsberg A
35. DFDS 80. MT Hojgaard B
127. Gyldendal A
36. Jeudan 81. InterMail
128. Rockwool A
37. NKT Holding 82. Kreditbanken
129. SPENN Technology
38. NNIT 83. Lollands Bank 130. HRC World
39. Per Aarsleff 84. Luxor 131. Agillic
40. Ringkjobing Landbobank 85. Lån og Spar Bank 132. Netcompany Group
41. SAS 86. Mons Bank 133. Happy Helper
42. Schouw Co. 87. NTG Nordic Transport 134. ViroGates
43. SimCorp 88. NewCap Holding 135. Odico
44. Solar 89. Nordfyns Bank 136. Hypefactors
45. Sparekassen Sjaelland-Fyn 90. Nordic Shipholding 137. Stenocare

11
138. Scape Technologies 153. HusCompagniet 168. Aquaporin
139. Seluxit 154. DecideAct 169. OrderYOYO
140. Danish Aerospace 155. Nexcom
170. SameSystem
141. Konsolidator 156. BactiQuant
171. Brain+
142. Astralis 157. Valuer
172. Movinn
143. Shape Robotics 158. RISMA Systems
144. Penneo 159. Hydract 173. Scandinavian Medical
145. Monsenso 160. Impero 174. Q-Interline
146. LED iBond 161. Trophy Games 175. Hove
147. Fom Technologies 162. Digizuite
176. Relesys
148. Mdundo.com 163. NORD.investments
177. Re-Match
149. Alefarm Brewing 164. DonkeyRepublic
178. H. Lundbeck A
150. WindowMaster 165. Trifork
151. Dataproces 166. MapsPeople 179. Swiss Properties Invest
152. Boozt 167. Green Hydrogen 180. Noble Corporation

12
C Appendix C - Example of a Trade History

Stock Modern Times Group B


Stock ID 148
buy date 2020-07-09
sell date 2020-09-04
sell price 114.80
buy price 112.05
pct return 2.454261
holding time 42
sell reason Sold into weakness crossing MA50
portfolio value 215.903662
buy date 2020-09-16
sell date 2020-10-21
sell price 121.40
buy price 129.00
pct return -5.891473
holding time 26
sell reason Sold into weakness crossing MA50
portfolio value 214.951422
buy date 2020-11-05
sell date 2020-11-25
sell price 124.65
buy price 139.20
pct return -10.452586
holding time 15
sell reason Sell Due to Stop Loss
portfolio value 213.261968
buy date 2021-09-03
sell date 2021-09-10
sell price 118.65
buy price 129.10
pct return -8.094500
holding time 6
sell reason Sell Due to Stop Loss
portfolio value 211.953652
Buy and Hold Return -74.04700487245628%

Table 11: Stock Performance: Modern Times Group B (Stock ID: 148)

13
D Appendix D - Algorithm Run Extract

Date No. active trades Portfolio Value Pos. Sizing (Dec) Pos. Sizing (Abs)
2018-01-02 3 100 0.2 20
2018-01-03 4 101.6002437 0.2 20.32004874
2018-01-04 7 103.4204037 0.142857143 14.77434338
2018-01-05 7 106.3971092 0.142857143 15.19958703
2018-01-08 13 107.1690857 0.076923077 8.243775822
2018-01-09 14 107.7899447 0.071428571 7.699281766
2018-01-10 15 107.7111497 0.066666667 7.180743314
2018-01-11 16 107.9255904 0.0625 6.745349399
2018-01-12 16 108.1294922 0.0625 6.758093264
2018-01-15 19 107.8686233 0.052631579 5.677295964
2018-01-16 19 108.4062965 0.052631579 5.705594554
2018-01-17 18 110.3198973 0.055555556 6.128883181
2018-01-18 17 110.861069 0.058823529 6.521239356
2018-01-19 19 111.0825071 0.052631579 5.846447744
2018-01-22 20 111.2682134 0.05 5.56341067
2018-01-23 23 111.289525 0.043478261 4.838675001
2018-01-24 22 111.5381519 0.045454545 5.069915994
2018-01-25 22 110.1612704 0.045454545 5.007330471
2018-01-26 22 109.9686093 0.045454545 4.998573151
2018-01-29 22 110.0520162 0.045454545 5.002364372

Table 12: Example table showing how the position sizing of various equities will vary from one day to
another.

14
E Appendix E - Date Range Dataframe Extract

A date range dataframe for the momentum strategy was calculated and can be seen below:

Date 7 33 34 37 47 63 82 83
2018-01-02 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
2018-01-03 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-04 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-05 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-08 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-09 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-10 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-11 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-12 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-15 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-16 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-17 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-18 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-19 FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
2018-01-22 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-23 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-24 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
2018-01-25 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE

Table 13: The date range dataframe above shows how many active trades there are for a given date. For
there was one active trade.

For the buy and hold strategy a date range dataframe extract would look like the below:

Date 7 33 34 37 47 63 82 83
2018-02-19 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-20 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-21 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-22 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-23 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-26 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-27 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-02-28 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-01 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-02 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-05 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-06 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-07 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-08 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-09 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
2018-03-12 TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

Table 14: The date range dataframe above shows how the date range dataframe looks like for the buy
and hold strategy active trades there are for a given date.

15
F Appendix F - Price Dataframe Extract

Date Spot Price MA50 MA150 MA200 Vol50 52W High 52W Low Trend Pivot
2015-03-20 18.2 – – – – – – False False
2015-03-23 17.8 – – – – – – False False
2015-03-24 17.9 – – – – – – False False
2015-03-25 18.2 – – – – – – False False
2015-03-26 18.2 – – – – – – False False
...
2023-03-27 1323.1 1257.5 1069.3 1037.0 499675.4 1335.0 793.6 True False
2023-03-28 1323.4 1261.4 1072.2 1039.0 496065.2 1335.0 793.6 True False
2023-03-29 1335.4 1265.0 1075.3 1041.1 492065.7 1335.4 793.6 True False
2023-03-30 1361.9 1269.3 1078.6 1043.4 494589.5 1361.9 793.6 True False
2023-03-31 1384.1 1273.9 1082.1 1045.6 495369.5 1384.1 793.6 True False

Table 15: A condensed version of a price dataframe used for every stock. The data in the table comes
from stock id 750 which is Evolution

16
G Appendix G - Return and Active Trades for All Portfolios

This Appendix is structured so that small-cap results come first followed by mid-cap results and lastly
large-cap results. For every section of either small, mid or large-cap the results for Sweden, Finland
and Denmark is presented in that order. The presentation order has been set to Sweden, Finland and
Denmark for every capitalization size due to the size and quality of the data-sets. Furthermore the
2008-2023 portfolios are presented before the 2018-2023 portfolios are presented.

17
G.1 Small-cap portfolios

G.1.1 Sweden small-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 11: Return and active trades for the Sweden small-cap portfolio between 2008-2023.

18
G.1.2 Finland small-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 12: Return and active trades for the Finland small-cap portfolio between 2008-2023.

19
G.1.3 Denmark small-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 13: Return and active trades for the Denmark small-cap portfolio between 2008-2023.

20
G.1.4 Sweden small-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 14: Return and active trades for the Sweden small-cap portfolio between 2018-2023.

21
G.1.5 Finland small-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 15: Return and active trades for the Finland small-cap portfolio between 2018-2023.

22
G.1.6 Denmark small-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 16: Return and active trades for the Denmark small-cap portfolio between 2018-2023.

23
G.2 Mid-cap portfolios

G.2.1 Sweden mid-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 17: Return and active trades for the Sweden mid-cap portfolio between 2008-2023.

24
G.2.2 Finland mid-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 18: Return and active trades for the Finland mid-cap portfolio between 2008-2023.

25
G.2.3 Denmark mid-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 19: Return and active trades for the Denmark mid-cap portfolio between 2008-2023.

26
G.2.4 Sweden mid-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 20: Return and active trades for the Sweden mid-cap portfolio between 2018-2023.

27
G.2.5 Finland mid-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 21: Return and active trades for the Finland mid-cap portfolio between 2018-2023.

28
G.2.6 Denmark mid-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 22: Return and active trades for the Denmark mid-cap portfolio between 2018-2023.

29
G.3 Large-cap portfolios

G.3.1 Sweden large-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 23: Return and active trades for the Sweden large-cap portfolio between 2008-2023.

30
G.3.2 Finland large-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 24: Return and active trades for the Finland large-cap portfolio between 2008-2023.

31
G.3.3 Denmark large-cap 2008-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 25: Return and active trades for the Denmark large-cap portfolio between 2008-2023.

32
G.3.4 Sweden large-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 26: Return and active trades for the Sweden large-cap portfolio between 2018-2023.

33
G.3.5 Finland large-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 27: Return and active trades for the Finland large-cap portfolio between 2018-2023.

34
G.3.6 Denmark large-cap 2018-2023

(a) Portfolio value

(b) Active trades during the research period.

Figure 28: Return and active trades for the Denmark large-cap portfolio between 2018-2023.

35

You might also like