tag:blogger.com,1999:blog-353646522024-03-17T05:26:50.917-04:00Quantitative TradingQuantitative investment and trading ideas, research, and analysis.Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.comBlogger230125tag:blogger.com,1999:blog-35364652.post-68611091080400354412023-03-03T06:53:00.006-05:002023-03-03T06:53:56.134-05:00Applying Corrective AI to Daily Seasonal Forex Trading <p> </p><p style="text-align: center;"><span style="text-indent: 0.5in;">By
Sergei Belov, Ernest
Chan, Nahid Jetha, and
Akshay Nautiyal</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in; text-align: center;"><span lang="EN"><o:p> </o:p></span><span style="font-size: 14pt; text-align: center;">ABSTRACT</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span lang="EN">We applied<a href="https://predictnow.ai/what-is-corrective-ai/"><span style="color: #1155cc;">
Corrective</span></a><a href="https://predictnow.ai/what-is-corrective-ai/"><span style="color: #1155cc;"> AI</span></a> (Chan, 2022) to a trading model that takes
advantage of the intraday seasonality of forex returns. Breedon and Ranaldo
(2012)<span style="mso-spacerun: yes;"> </span>observed that foreign currencies
depreciate vs. the US dollar during their local working hours and appreciate
during the local working hours of the US dollar. We first backtested the
results of Breedon and Ranaldo on recent EURUSD data from September 2021 to
January 2023 and then applied Corrective AI to this trading strategy to achieve
a significant increase in performance.<o:p></o:p></span></p>
<p class="MsoNormal"><br /></p>
<p class="MsoNormal"><span lang="EN">Breedon and Ranaldo (2012) described a trading
strategy that shorted EURUSD during European working hours (3 AM ET to 9 AM ET,
where ET denotes the local time in New York, accounting for daylight savings)
and bought EURUSD during US working hours (11 AM ET to 3 PM ET). The rationale
is that large-scale institutional buying of the US dollar takes place during
European working hours to pay global invoices and the reverse happens during US
working hours. Hence this effect is also called the “invoice effect". <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">There is some supportive evidence for the
time-of-the-day patterns in various measures of the forex market like
volatility (see Baille and Bollerslev(1991), or Andersen and Bollerslev(1998)),
turnover (see Hartman (1999), or Ito and Hashimoto(2006)), and return (see
Cornett(1995), or Ranaldo(2009)).<span style="mso-spacerun: yes;"> </span>Essentially,
local currencies depreciate during their local working hours for each of these
measures and appreciate during the working hours of the United States. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Figure 1 below describes the average hourly
return of each hour in the day over a period starting from 2019-10-01 17:00 ET
to 2021-09-01 16:00 ET. It reveals the pattern of returns in EURUSD. The return
pattern in the above-described “working hours'' reconciles with the hypothesis
of a prevalent “invoice effect” broadly. Returns go down during European
working and up during US working hours. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></p>
<p class="MsoNormal"><span id="docs-internal-guid-f7581ddd-7fff-e66b-3c88-e66c6604407e"><span style="font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 296px; overflow: hidden; width: 647px;"><img height="296" src="https://lh3.googleusercontent.com/i62xTcDww9jdwfZA2VNpXelEV6vhrruBe_6U40VU7Fql_zuTDzFopRJivqSW9gZkNj1DHxMtZzzvw7Gd3lGQpcNpDUpcye0liAzquAoNX15jBuLVpyupk3DfFHGqZaA3NdVs19JQD1X88OI8T6N1OTw" style="margin-left: 0px; margin-top: 0px;" width="647" /></span></span></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;">Figure
1: Average EURSUD return by time of day (New York time)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">As this strategy was published in 2012, it
offers ample time for true out-of-sample testing. We collected 1-minute bar
data of EURUSD from Electronic Broking Services (EBS) and performed a backtest
over the out-of-sample period October 2021-January 2023. The Sharpe Ratio of
the strategy in this period is<span style="mso-spacerun: yes;"> </span>0.88,
with average annual returns of 3.5% and a maximum drawdown of -3.5%. The alpha
of the strategy apparently endured. (For the purpose of this article, no
transaction costs are included in the backtest because our only objective is to
compare the performances with and without Corrective AI, not to determine if
this trading strategy is viable in live production.)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Figure 2 below shows the equity curve (“growth
of $1”) of the strategy during the aforementioned out-of-sample period. The
cumulative returns during this period are just below 8%. We call this the
“Primary” trading strategy, for reasons that will become clear below.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></p>
<p class="MsoNormal"><span id="docs-internal-guid-443a81ce-7fff-9629-4b09-ef4cd69a0afa"><span style="font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 332px; overflow: hidden; width: 624px;"><img height="332" src="https://lh4.googleusercontent.com/aQ2Mk3Zay1w_HBh7YfRbt9BWVIoEnGHSvGnwvNjNU7RmVyCTCsYERlumQd-7BDXSKSPhSd-xDC9ks88RuY8R5lKzCK3-RhClpNb4_i9rFZXR4TbjROCKYNViKgw2FNKttBEgfaWKSi64AgREpeMOF7U" style="margin-left: 0px; margin-top: 0px;" width="624" /></span></span></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;">Figure
2: Equity curve of Primary trading strategy in out-of-sample period<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;"><o:p> </o:p></span></p>
<h3 style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><a name="_nftvwzk1end0"></a><span lang="EN">What is
Corrective AI?<o:p></o:p></span></h3>
<p class="MsoNormal" style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN" style="color: #404040;">Suppose
we have a trading model (like the Primary trading strategy described above) for
setting the side of the bet (long or short). We just need to learn the size of
that bet, which includes the possibility of no bet at all (zero sizes). This is
a situation that practitioners face regularly. A machine learning algorithm
(ML) can be trained to determine that. To emphasize, we do not want the ML
algorithm to learn or predict the side, just to tell us what is the appropriate
size. <o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN" style="color: #404040;">We
call this problem meta-labeling (Lopez de Prado, 2018) or Corrective AI (Chan,
2022) because we want to build a secondary ML model that learns how to use a
primary trading model.<o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN" style="color: #404040;">We
train an ML algorithm to compute the “Probability of Profit” (PoP) for the next
minute-bar. If the PoP is greater than 0.5, we will set the bet size to 1;
otherwise we will set it to 0. In other words, we adopt the step function as
the bet sizing function that takes PoP as an input and gives the bet size as an
output, with the threshold set at 0.5.<span style="mso-spacerun: yes;">
</span>This bet sizing function decides whether to take the bet or pass, a
purely binary prediction. <o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN" style="color: #404040;">The
training period was from 2019-01-01 to 2021-09-30 while the out-of-sample test
period was from 2021-10-01 to 2023-01-15, consistent with the out-of-sample
period we reported for the Primary trading strategy. The model used to train ML
algorithm was done using the predictnow.ai Corrective AI (CAI) API, with more
than a hundred pre-engineered input features (predictors). The underlying
learning algorithm is a gradient-boosting decision tree. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN">After applying Corrective AI, the Sharpe Ratio
of the strategy in this period is 1.29<span style="mso-spacerun: yes;">
</span>(an increase of 0.41), with average annual returns of 4.1% (an increase
of 0.6%)<span style="mso-spacerun: yes;"> </span>and a maximum drawdown of -1.9%
(a decrease of 1.6%). The alpha of the strategy is significantly improved. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">The equity curve of the Corrective AI filtered
secondary model signal can be seen in the figure below. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><span style="mso-spacerun: yes;"> </span><span style="color: #404040;"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span id="docs-internal-guid-32703e52-7fff-235d-2133-405c113539c3"><span style="font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 340px; overflow: hidden; width: 624px;"><img height="340" src="https://lh6.googleusercontent.com/Vpk6gd4l7_-F-RH0jwai8RnE7lHGDfMV4-_iHqhAUG4W9vBD2xOzw20aHBmZtSfBN2kq48swaoy1d7TQ8y5gMzrUBAoOv9yDqUMcXxmTzvyMTVPtuYvreTjISUhnyBmLHzBqs-D6l7NKxRKz4y4oXHQ" style="margin-left: 0px; margin-top: 0px;" width="624" /></span></span></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size: 12pt; line-height: 115%;">Figure
3: Equity curve of Corrective AI model<span style="mso-spacerun: yes;">
</span>in out-of-sample period</span><span lang="EN" style="color: #404040;"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: rgb(248, 248, 248); margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN" style="color: #1d1c1d; font-size: 11.5pt; line-height: 115%;">Features used to train the Corrective AI model </span><span lang="EN" style="color: black; mso-color-alt: windowtext;">include technical
indicators generated from indices, equities, futures, and options markets. Many
of these features were created using <a href="https://www.algoseek.com/"><span style="color: #1155cc;">Algoseek</span></a>’s high-frequency futures and equities
data. More discussions of these features can be found in (Nautiyal & Chan,
2021). </span><span lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; margin-bottom: 11.0pt; margin-left: 0in; margin-right: 0in; margin-top: 11.0pt; margin: 11pt 0in;"><span lang="EN"><o:p> </o:p></span></p>
<h3><a name="_mnu9bunt4a0k"></a><span lang="EN">Conclusion: <o:p></o:p></span></h3>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">By applying Corrective AI to the
time-of-the-day Primary strategy, we were able to improve the Sharpe ratio and
reduce drawdown during the out-of-sample backtest period. This aligns with
observations made in the literature on meta-labeling for our primary
strategies. The Corrective AI model's signal filtering capabilities do enhance
performance in specific scenarios.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<h3><a name="_qyye79w6l87d"></a><span lang="EN">Acknowledgment<o:p></o:p></span></h3>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">We are grateful to Chris Bartlett of Algoseek,
who generously provided much of the high-frequency data for our feature
engineering in our Corrective AI system. We also thank Pavan Dutt for his
assistance with feature engineering and to Jai Sukumar for helping us use the
Predictnow.ai CAI API. Finally, we express our appreciation to Erik MacDonald
and Jessica Watson for their contributions in explaining this technology to
Predictnow.ai’s clients<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN"><o:p> </o:p></span></p>
<p align="center" class="MsoNormal" style="line-height: 200%; margin-left: 0.5in; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span lang="EN">References<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN">Breedon,
F., & Ranaldo, A. (2012, April 3). <i style="mso-bidi-font-style: normal;">Intraday
Patterns in FX Returns and Order Flow</i>. https://ssrn.com/abstract=2099321<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN">Chan,
E. (2022, June 9). <i style="mso-bidi-font-style: normal;">What is Corrective AI?</i>
PredictNow.ai. Retrieved February 23, 2023, from
https://predictnow.ai/what-is-corrective-ai/<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN">Lopez
de Prado, M. (2018). <i style="mso-bidi-font-style: normal;">Advances in
Financial Machine Learning</i>. Wiley.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN">Nautiyal,
A., & Chan, E. (2021). <i style="mso-bidi-font-style: normal;">New Additions
to the PredictNow.ai Factor Zoo</i>. PredictNow.ai. Retrieved February 28,
2023, from https://predictnow.ai/new-additions-to-the-predictnow-ai-factor-zoo/<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in;"><span lang="EN"><o:p> </o:p></span></p><div style="mso-element: footnote-list;"><div id="ftn2" style="mso-element: footnote;">
</div>
</div>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com7tag:blogger.com,1999:blog-35364652.post-83554367215202685942022-10-07T06:49:00.003-04:002022-10-07T06:49:39.538-04:00Conditional Portfolio Optimization: Using machine learning to adapt capital allocations to market regimes<p><span style="font-family: Arial; font-size: 11pt; white-space: pre-wrap;">By Ernest Chan, Ph.D., Haoyu Fan, Ph.D., Sudarshan Sawal, and Quentin Viville, Ph.D.</span></p><span id="docs-internal-guid-494e0c33-7fff-d94e-9436-20e8fc525a98"><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Previously on this blog, we wrote about a machine-learning-based parameter optimization technique we invented, called </span><a href="https://predictnow.ai/blog/conditional-parameter-optimization-adapting-parameters-to-changing-market-regimes/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Conditional </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Parameter</span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"> Optimization</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (CPO). It appeared to work well on optimizing the operating parameters of trading strategies, but increasingly, we found that its greatest power lies in its potential to optimize </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">portfolio allocations</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. We call this Conditional </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Portfolio</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> Optimization (which fortuitously shares the same acronym).</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Let’s recap what Conditional Parameter Optimization is. Traditionally, optimizing the parameters of any business process (such as a trading strategy) is a matter of finding out what parameters give an optimal outcome over past data. For example, setting a stop loss of 1% gave the best Sharpe ratio for a trading strategy backtested over the last 10 years. Or running the conveyor belt at 1m per minute led to the lowest defect rate in a manufacturing process. Of course, the numerical optimization procedure can become quite complicated based on a number of different factors. For example, if the number of parameters is large, or if the objective function that relates the parameters to the outcome is nonlinear, or if there are numerous constraints on the parameters. There are already standard methods to handle these difficulties. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">What concerns us at PredictNow.ai, is when the objective function is not only nonlinear, but also depends on external time varying and stochastic conditions. In the case of a trading strategy, the optimal stop loss may depend on the market regime, which may not be clearly defined. In the case of a manufacturing process, the optimal conveyor belt rate may depend on dozens of sensor readings. Such objective functions mean that traditional optimization methods do not usually give the optimal results under a particular set of external conditions.Furthermore, even if you specify that exact set of conditions, the outcome is not deterministic. What better method than machine learning to solve this problem!</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">By using machine learning, we can approximate this objective function using a neural network, by training its many nodes using historical data. (Recall that a neural network is able to </span><a href="https://en.wikipedia.org/wiki/Universal_approximation_theorem" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">approximate almost any function</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, but you can use many other machine learning algorithms instead of neural networks for this task). The inputs to this neural network will not only include the parameters that we originally set out to optimize, but also the vast set of features that measure the external conditions. For example, to represent a “market regime”, we may include market volatility, behaviors of different market sectors, macroeconomic conditions, and many other input features. To help our clients efficiently run their models, Predictnow.ai provides </span><a href="https://predictnow.ai/blog/new-additions-to-the-predictnow-ai-factor-zoo-2/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">hundreds of such market features</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The output of this neural network would be the outcome you want to optimize. For example, maximizing the future 1-month Sharpe ratio of a trading strategy is a typical outcome. In this case you would feed historical training samples to the neural network that include the trading parameters, the market features, plus the resulting forward 1-month Sharpe ratio of the trading strategy as “labels” (i.e. target variables). Once trained, this neural network can then predict the future 1-month Sharpe ratio based on any hypothetical set of trading parameters and the current market features. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">With this method, we “only need” to try different sets of hypothetical parameters to see which gives the best Sharpe ratio and adopt that set as the optimal</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. We put “only need” in quotes because of course if the number of parameters is large, it can take very long to try out different sets of parameters to find the optimal. Such is the case when the application is</span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> portfolio optimization</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, where the parameters represent the capital allocations to different components of a portfolio. These components could be stocks in a mutual fund, or trading strategies in a hedge fund. For a portfolio that holds S&P 500 stocks, for example, there will be up to 500 parameters. In this case, during the training process, we are supposed to feed into the neural network </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">all possible combinations</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> of these 500 parameters, plus the market features, and find out what the resulting 5- or 20-day return, or Sharpe ratio, or whatever performance metric we want to maximize. </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">All possible combinations</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">? If we represent the capital weight allocated to each stock as w ∈ [0, 1], assuming we are not allowing short positions, the search space has </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">w</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">500</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">=</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">[0, 1]</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">500</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">combinations, even with discretization, and our computer will need to run till the end of the universe to finish. Overcoming this curse of dimensionality is one of the major breakthroughs the Predictnow.ai team has accomplished with Conditional Portfolio Optimization.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To measure the value Conditional Portfolio Optimization adds, we need to compare it with alternative portfolio optimization methods. The default method is Equal Weights: applying equal capital allocations to all portfolio components. Another simple method is the Risk Parity method, where the capital allocation to each component is inversely proportional to its returns’ volatility. It is called Risk Parity because each component is supposed to contribute an equal amount of volatility, or risk, to the overall portfolio’s risk. This assumes zero correlations among the components’ returns, which is of course unrealistic. Then there is the Markowitz method, also known as Mean-Variance optimization. This well-known method, which earned Harry Markowitz a Nobel prize, maximizes the Sharpe ratio of the portfolio based on the historical means and covariances of the component returns. The optimal portfolio that has the maximum historical Sharpe ratio is also called the </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">tangency portfolio</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. I wrote about this method in a previous </span><a href="http://epchan.blogspot.com/2014/08/kelly-vs-markowitz-portfolio.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">blog post</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. It certainly doesn’t take into account market regimes or any market features. It is also a vagrant violation of the familiar refrain, “Past Performance is Not Indicative of Future Results”, and is known to produce all manners of unfortunate instabilities (see </span><a href="https://www.amazon.com/dp/0199959323/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=&creativeASIN=0199959323" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> or </span><a href="https://amzn.to/3r7y2FA" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">). Nevertheless, it is the standard portfolio optimization method that most asset managers use. Finally, there is the Minimum Variance portfolio, which uses Markowitz’s method not to maximize the Sharpe ratio, but to minimize the variance (and hence volatility) of the portfolio. Even though this does not maximize its past Sharpe ratio, it often results in portfolios that achieve better forward Sharpe ratios than the tangency portfolio! Another case of “Past Performance is Not Indicative of Future Results”.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Let’s see how our Conditional Portfolio Optimization method stacks up against these conventional methods. For an unconstrained optimization of the S&P 500 portfolio, allowing for short positions and aiming to maximize its 7-day forward Sharpe ratio, </span></p><br /><br /><div align="left" dir="ltr" style="margin-left: 0pt;"><table style="border-collapse: collapse; border: none;"><colgroup><col width="118"></col><col width="134"></col></colgroup><tbody><tr style="height: 25.89892578125pt;"><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Method</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Sharpe Ratio</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.31</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.96</span></p></td></tr></tbody></table></div><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">(These results are over an out-of-sample period from July 2011 to June 2021, and the universe of stocks for the portfolio are those that have been present in the SP 500 index for at least 1 trailing month. The Sharpe Ratio we report in this and the following tables are all annualized). </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">CPO improves the Sharpe ratio over the Markowitz method by a factor of 3.1</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Then we test our CPO performs for an ETF (TSX: MESH) given the constraints that we cannot short any stock, and the weight w of each stock obeys w ∈ [0.5%, 10%],</span></p><br /><br /><div align="left" dir="ltr" style="margin-left: 0pt;"><table style="border-collapse: collapse; border: none; table-layout: fixed; width: 468pt;"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="height: 0pt;"><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Period</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Method</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Sharpe Ratio</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">CAGR</span></p></td></tr><tr style="height: 21pt;"><td rowspan="5" style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2017-01 to 2021-07</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Equal Weights</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.53</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">43.1%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Risk Parity</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.52</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">39.9%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.64</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">47.2%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Minimum Variance</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.56</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">38.3%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.62</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">43.6%</span></p></td></tr><tr style="height: 21pt;"><td rowspan="5" style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2021-08 to 2022-07</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Equal Weights</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-0.76</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-30.6%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Risk Parity</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-0.64</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-22.2%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-0.94</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-30.8%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Minimum Variance</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-0.47</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-14.5%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-0.33</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-13.7%</span></p></td></tr></tbody></table></div><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO performed similarly to the Markowitz method in the bull market, but remarkably, it was able to switch to defensive positions and has beaten the Markowitz method in the bear market of 2022. </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">It improves the Sharpe ratio over the Markowitz portfolio by more than 60% in that bear market.</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> That is the whole rationale of </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Conditional </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Portfolio Optimization - it adapts to the expected future external conditions (market regimes), instead of blindly optimizing on what happened in the past. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Next, we tested the CPO methodology on a private investor’s tech portfolio, consisting of 7 US and 2 Canadian stocks, mostly in the tech sector. The constraints are that we cannot short any stock, and the weight w of each stock obeys w ∈ [0%, 25%],</span></p><br /><br /><div align="left" dir="ltr" style="margin-left: 0pt;"><table style="border-collapse: collapse; border: none; table-layout: fixed; width: 468pt;"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="height: 0pt;"><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Period</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Method</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Sharpe Ratio</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">CAGR</span></p></td></tr><tr style="height: 21pt;"><td rowspan="5" style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2017-01 to 2021-07</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Equal Weights</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.36</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">31.1%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Risk Parity</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.33</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">24.2%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.06</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">23.3%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Minimum Variance</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.10</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">19.3%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.63</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">27.1%</span></p></td></tr><tr style="height: 21pt;"><td rowspan="5" style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2021-08 to 2022-07</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Equal Weights</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.39</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">6.36%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Risk Parity</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.49</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">7.51%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.40</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">6.37%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Minimum Variance</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.23</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2.38%</span></p></td></tr><tr style="height: 21pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.70</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">11.0%</span></p></td></tr></tbody></table></div><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO performed better than both alternative methods under all market conditions. In particular,</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> it improves the Sharpe ratio over the Markowitz portfolio by 75% in the bear market.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">We also tested how CPO performs for some unconventional assets - a portfolio of 8 crypto currencies, again allowing for short positions and aiming to maximize its 7-day forward Sharpe ratio,</span></p><br /><br /><div align="left" dir="ltr" style="margin-left: 0pt;"><table style="border-collapse: collapse; border: none;"><colgroup><col width="136"></col><col width="157"></col></colgroup><tbody><tr style="height: 0pt;"><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Method</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Sharpe Ratio</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">0.26</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.00</span></p></td></tr></tbody></table></div><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">(These results are over an out-of-sample period from January 2020 to June 2021, and the universe of cryptocurries for the portfolio are BTCUSDT, ETHUSDT, XRPUSDT, ADAUSDT, EOSUSDT, LTCUSDT, ETCUSDT, XLMUSDT). </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">CPO improves the Sharpe ratio over the Markowitz method by a factor of 3.8</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Finally, to show that CPO doesn’t just work on portfolios of assets, we apply it to a portfolio of FX trading strategies traded live by a proprietary trading firm WSG. It is a portfolio of 7 trading strategies, and the allocation constraints are w ∈ [0%, 40%],</span></p><br /><br /><div align="left" dir="ltr" style="margin-left: 0pt;"><table style="border-collapse: collapse; border: none;"><colgroup><col width="131"></col><col width="165"></col></colgroup><tbody><tr style="height: 0pt;"><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Method</span></p></td><td style="background-color: #141c44; border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt; text-align: center;"><span style="background-color: transparent; color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Sharpe Ratio</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Equal Weights</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.44</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Markowitz</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2.22</span></p></td></tr><tr style="height: 0pt;"><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CPO</span></p></td><td style="border-bottom: solid #999999 1pt; border-left: solid #999999 1pt; border-right: solid #999999 1pt; border-top: solid #999999 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2.65</span></p></td></tr></tbody></table></div><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">(These results are over an out-of-sample period from January 2020 to July 2022). </span><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">CPO improves the Sharpe ratio over the Markowitz method by 19%.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In all 5 cases, CPO was able to outperform the naive Equal Weights portfolio and the Markowitz portfolio during a downturn in the market, while generating similar performance during the bull market.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">For clients of our CPO technology, we can add specific constraints to the desired optimal portfolio, such as average ESG rating, maximum exposure to various sectors, or maximum turnover during portfolio rebalancing. The only input we require from them is the historical returns of the portfolio components (unless these components are publicly traded assets, in which case clients only need to tell us their tickers). Predictnow.ai will provide pre-engineered market features that capture market regime information. If the client has proprietary market features that may help predict the returns of their portfolio, they can merge those with ours as well. Clients’ features can remain anonymized. We will be providing an API for clients who wish to experiment with various constraints and their effects on the optimal portfolio.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">If you’d like to learn more, please join us for our Conditional Portfolio Optimization webinar on Thursday, October 22, 2022, at 12:00 pm New York time. Please register </span><a href="https://www.predictnow.ai/webinar/" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In the meantime, if you have any questions, please email us at info@predictnow.ai.</span></p><div><span style="background-color: white; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div></span>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com1tag:blogger.com,1999:blog-35364652.post-59735025557985752742022-07-22T09:03:00.000-04:002022-07-22T09:03:01.410-04:00The demise of Zillow Offers: it is not AI's fault!<span id="docs-internal-guid-efb32767-7fff-7f4a-a615-dac25fed4ba1"><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The story is now familiar: Zillow Group built a home price prediction system based on AI in order to become a market-maker in the housing industry. As a market maker, the goal is simply to buy low and sell high, quickly, and with minimal transaction cost. </span><a href="https://www.geekwire.com/2022/commentary-how-homeowners-defeated-zillows-ai-ultimately-leading-to-zillow-offers-demise/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Backtests </span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">showed that its AI model's predictive accuracy was over 96% (Hat tip: Peter U., for that article). In reality, though, it lost half a billion dollars.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This is a cautionary tale for anyone using AI to predict prices or returns, including those of us in more liquid markets than housing. Despite Zillow’s failure, the root cause of this discrepancy between backtest and live market-making is well-known, and it has nothing to do with machine learning or AI. Their failure was due to </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">adverse selection</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which can happen to any market maker, whether human or machine. In this context, "market maker" is used in a broad sense - a market maker provides liquidity to the market using limit orders. For instance, any mean-reversion trader is a market maker. As long as the market maker is trading against a counterparty who has more information (a.k.a. the "informed trader"), adverse selection will take money away from the market maker and give it to the informed trader. This is because as market makers, the only model is to buy when prices are cheap, no matter why they are cheap. In contrast, the informed traders may know why the asset is cheap and if it will get cheaper, so they are happy to sell to a market maker. In the opposite situation, if the informed traders believe that the current prices are cheap, but will get higher, they will refrain from selling. In this case, the limit order will not get executed, and market makers suffer from "opportunity cost". In Zillow’s case, the informed traders are the homeowners who have a better understanding of the value of their own home due to qualitative factors (e.g. views, interior design, neighborhood safety, etc.) outside of Zillow’s model.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In my book </span><a href="https://www.amazon.com/gp/product/1119219604/ref%3Das_li_tl?ie=UTF8&tag=quantitativet-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1119219604&linkId=5da06f55eeba446e001985e48562d03a" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Machine Trading</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, I wrote, "Adverse selection happens when prices on average go down after we buy something, and go up when we sell something". Therefore, adverse selection can be measured quite easily by computing the difference between the (paper) P&L of unfilled orders and the P&L of filled orders over a short time frame. In order to determine whether your AI predictive model will work in reality, it is ideal to deploy it live in a small capacity, and measure the differences over time. If there is significant adverse selection, the trader can always choose not to participate in the market. For example, it is legendary that high frequency traders stopped providing liquidity to the market during extreme events such as flash crashes. Traders don't want to be the suckers at the game. Unfortunately for Zillow, they weren’t aware of the well-practiced art of market making.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Another common way to reduce adverse selection is to keep a close tab on your inventory. If, in a short period of time, inventory suddenly changes significantly compared to average trends, it may indicate that there is new information arriving on the market that you are not aware of (e.g. mortgage rate going up by 1%). In this situation, it would be wise to cancel your limit orders until the coast clears. For a mathematical interpretation of this concept, view the formulation by </span><a href="https://www.math.nyu.edu/~avellane/HighFrequencyTrading.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Avellaneda and Sasha</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Inventory management was a key technique that Zillow did not adopt, which could have minimized their adverse selection risk.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">AI has been a major asset in numerous business processes, including market making, but it is just one part of complex production machinery. As we can see from Zillow’s use case, predictions, even accurate ones, are not enough to generate profits. As I explained in my previous </span><a href="https://predictnow.ai/blog/what-is-corrective-ai/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">blog post</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, we at Predictnow.ai don't think that AI is the be-all and end-all of decision making. Instead, we believe the value of AI lies in its ability to correct human-made decisions. But, an even larger lesson here is that experts in one industry (e.g. housing) can benefit from the knowledge of experts in another industry (e.g. quantitative finance). This transdisciplinary knowledge is exactly what Predictnow.ai offers enterprises to improve and enhance their processes.</span></p><div><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div></span>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com2tag:blogger.com,1999:blog-35364652.post-34297368266280661182022-01-28T07:44:00.002-05:002022-02-05T08:26:57.619-05:00800+ New Crypto Features<p> By Quentin Viville, Sudarshan Sawal, and Ernest Chan</p><p>PredictNow.ai is excited to announce that we’re expanding our feature zoo to cover crypto features! This follows our work on US stock features, and features based on options activities, ETFs, futures, and macroeconomic indicators. To read more on our previous work, click <a href="https://predictnow.ai/blog/new-additions-to-the-predictnow-ai-factor-zoo-2/" target="_blank">here</a>. These new crypto features can be used as input to our machine-learning API to help improve your trading strategy. In this blog we have outlined the new crypto features as well as demonstrated how we have used them for short term alpha generation and crypto portfolio optimization.</p><p>Our new crypto features are designed to capture market activity from subtle movements to large overarching trends. These features will quantify the variations of the price, the return, the order flow, the volatility and the correlations that appear among them.</p><p>To create these features, we first constructed the Base Features using raw market data that includes microstructure information. Next, we applied simple mathematical functions such as exponential moving average to create the Final Features.</p><h3 style="text-align: left;">Base Features</h3><p>The Base Features are constructed using Binance’s dollar bar data, which includes:</p><p></p><ul style="text-align: left;"><li>Open</li><li>High</li><li>Low</li><li>Close</li><li>Volume</li><li>Order flow (sum of signed volumes) </li><ul><li>+ve volume for buy aggressor tag and -ve volume for sell aggressor tag</li></ul><li>Buy market order value (sum of volumes corresponding to buy aggressor tag)</li><li>Sell market order value (sum of volumes corresponding to sell aggressor tag)</li></ul><p></p><p>Base Features are based on:</p><p></p><ol style="text-align: left;"><li>Relations between the price, the high price, the low price.</li><ul><li>Relative High: High Price relative to Open Price.</li><li>Relative Low: Low Price relative to Open Price.</li><li>Relative Close: Close Price relative to Open Price.</li><li>Relative Volume: Buy orders relative to total absolute volume.</li><li>Target Effort: computes an estimation of the “effort” that the price has to produce to reach the target price by comparing the observed low price and high price.</li></ul><li>Volume exchanged.</li><ul><li>Dollar Speed: Average signed quantity of dollars exchanged per second.</li></ul><li>Relations and potential correlations among the variations of the price, the order flow and the intensity of the activity in the market.</li><ul><li>Kyle’s Lambda: Relation between price change and orderflow.</li><li>SCOF: Correlation of Order Flow with its lagged series.</li><li>VPIN: Volume-synchronized probability of informed trading. </li></ul><li>Volatility observed.</li><ul><li>VLT: Volatility of the returns (Exponentially Weighted)</li></ul></ol><p></p><p>Each feature is associated with a ‘time span’, or lookback period, which helps capture market activity across multiple time frames.</p><h3 style="text-align: left;">Final Features</h3><p>Once we generated the Base Features, a new, varied set of features was derived called the Final Features.These Final Features are transformations of the initial Base Features into exponentially moving averages and probabilities over many time periods.</p><p>This approach has allowed us to produce a large set of Final Features (<b>879 </b>features to be exact), which can capture and quantify the activity of the market within any time span we choose.</p><h3 style="text-align: left;">Applications to Short Term Alpha Generation</h3><p>PredictNow.ai’s core functionality is <a href="https://predictnow.ai/blog/what-is-the-probability-of-profit-of-your-next-trade-introducing-predictnow-ai/" target="_blank">metalabelling</a>, which assigns a Probability of Profit for every trade of an existing strategy (or a future time period of an existing portfolio). This requires us to build a machine learning model using a large number of input features and a target (label), which would be the trades’ (or portfolio’s) returns.</p><p>To evaluate the performance of the features described above, we first built a base strategy and then applied metalabelling to the signals of that strategy with those features as input. The base strategy is a high frequency strategy which predicts abnormal returns due to unusual order flow. The out-of-sample backtest performance of just the base strategy:</p><p>Maximum drawdown: −<span id="docs-internal-guid-9b4b15d2-7fff-eb48-63d0-c8f7c032b3ed"><span style="font-family: Calibri, sans-serif; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">6.250</span></span>%</p><p>Annualized Sharpe ratio:<b>3.3</b></p><p>Annualized profit: 32.6% </p><p>Using the Final Features as described above as input to metalabelling, we have been successful in improving the strategy’s performance <i>drastically</i>. The improved performance after applying metalabelling:</p><p>Maximum drawdown: −4.998%</p><p>Annualized Sharpe ratio: <b>5.6</b></p><p>Annualized profit: 227% </p><p>Comparative plot to give an idea of the metalabelling model’s performance in comparison to the base strategy:</p><div><span id="docs-internal-guid-19641cb8-7fff-d422-8589-f138bb22a0fd"><span style="font-family: Calibri, sans-serif; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 383px; overflow: hidden; width: 602px;"><img height="255" src="https://lh4.googleusercontent.com/6BL7BmnTSOYID0a0LaNpmGe1qrfGJOg1l4JwqFFPFnRoWGouoD6K8e7uJuwoIhMVixxssN4LYM2Gb_zfvxakR6AaxJlVCi20S3tHXJ8sdH5gQn-BrGGQYXyVWQFYSQ=w400-h255" style="margin-left: 0px; margin-top: 0px;" width="400" /></span></span></span></div><p>The <b>Sharpe ratio is increased from 3.1 to 5.6 </b>and we have<b> almost 7x the annual returns to 227%</b> by applying metalabelling using our new crypto features.</p><h3 style="text-align: left;">Applying CPO to Crypto Portfolio</h3><p>Mean Variance Optimization (MVO) is a popular method of portfolio optimization which generates a portfolio with maximum expected returns given a fixed level of risk. One shortcoming of the MVO method is that the selected portfolio is optimal only on average in the past. This doesn’t guarantee it to be optimal in different market regimes. This limitation gives us an opportunity to apply our patent-pending <a href="https://predictnow.ai/blog/conditional-parameter-optimization-adapting-parameters-to-changing-market-regimes/" target="_blank">Conditional Parameter Optimization (CPO) technique</a>.</p><p>Our CPO technique can be used to improve strategy performance in different market regimes by adapting a trading strategy’s parameters to fit those regimes. Similarly, it can optimize allocations to different constituents of a portfolio in different market regimes. Rather than optimizing based only on the historical means and covariances of a portfolio’s constituents’ returns, CPO involves training a machine learning model with a vast number of external “big data” features to drive the optimization process.</p><p>In our next example, we used our crypto features as input. We then compared the Sharpe ratios of a crypto portfolio based on the conventional MVO technique vs our CPO technique on out-of-sample data.</p><h4 style="text-align: left;">Backtest Result:</h4><p></p><ul style="text-align: left;"><li>Portfolios are constituted of 8 symbols (all crypto perpetual futures): BTCUSDT, ETHUSDT, XRPUSDT, ADAUSDT, EOSUSDT, LTCUSDT, ETCUSDT, XLMUSDT</li><li>Position type includes Long and Short Positions</li><li>The target variable is the forward Sharpe ratio, computed as the 3-hour return divided by the standard deviation of the sequence of the 5-minute consecutive returns during the 3-hour period</li><li>Out-of-sample test data set starts on Jan. 2020 and ends on June 2021</li><li>Results (annualized Sharpe ratio over 365 days per year):</li></ul><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhzuU8OtVgk2ZnLNqoQBrAPut4HY3B_kfiywfytf6cDAZN9X9-bflDSO2f3k-zvRZjXZocvfmSeGtSkzxH4YbXEM76mZ5zhFsdQSo7liavmU-3kglRE1yoVijevnliPZOSVpMXdNratGC3Ye12k51Yii4YgVHJNgSk6jDCkhiQ1EgKSX_McFrw" style="margin-left: 1em; margin-right: 1em;"><img data-original-height="263" data-original-width="685" height="154" src="https://blogger.googleusercontent.com/img/a/AVvXsEhzuU8OtVgk2ZnLNqoQBrAPut4HY3B_kfiywfytf6cDAZN9X9-bflDSO2f3k-zvRZjXZocvfmSeGtSkzxH4YbXEM76mZ5zhFsdQSo7liavmU-3kglRE1yoVijevnliPZOSVpMXdNratGC3Ye12k51Yii4YgVHJNgSk6jDCkhiQ1EgKSX_McFrw=w400-h154" width="400" /></a></div><br /><ul style="text-align: left;"><li>CPO improves the Sharpe ratio by <b>x3.8</b>!</li></ul><p></p><h2 style="text-align: left;">Conclusion</h2><p>We have demonstrated that our new crypto features are powerful additions to any crypto trader or investor’s toolkit by applying them to a crypto trading strategy in live deployment, and to optimizing a crypto portfolio using our proprietary CPO technique. Our features and strategy combined with our machine learning software is proven to increase a base trading strategy’s returns by <b>7x</b> and increase a crypto portfolio’s Sharpe ratio <b>3.8x</b> over MVO. Additionally, with our Explainable AI function using our <a href="https://predictnow.ai/blog/the-amazing-efficacy-of-cluster-based-feature-selection/" target="_blank">feature selection methodology</a>, we’ve removed the guesswork so you’ll know exactly which of our new crypto features are important to improving your strategy.</p><p>To sign up for a free trial to experiment with these new features using our API or to explore our machine learning software please <a href="https://py.predictnow.ai/register" target="_blank">click here</a>. Institutional investors can also inquire about subscribing to our trading signals from our crypto strategy or to updates from our dynamically optimized long-short crypto portfolio.</p><p>If you have any questions or would like to work with us, please email us at: info@predictnow.ai.</p>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com7tag:blogger.com,1999:blog-35364652.post-86767175781199659572021-09-22T11:02:00.001-04:002021-09-22T12:55:44.131-04:00Welcome to Our Feature Zoo with 600+ features!<div style="text-align: left;"><span style="font-size: x-small;"> <span style="font-family: Arial; white-space: pre-wrap;">By Akshay Nautiyal and Ernest Chan</span></span></div><span id="docs-internal-guid-e47e5412-7fff-4ff6-c432-839977bbb04e"><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This has been a summer of feature engineering for PredictNow.ai. First, we launched the US stock </span><a href="https://www.predictnow.ai/blog/introducing-pre-engineered-stock-fundamental-features-at-predictnow-ai/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">cross-sectional</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> features and the </span><a href="https://www.predictnow.ai/blog/metalabeling-and-the-duality-between-cross-sectional-and-time-series-factors/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">time-series</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> market-wide features. Now we have launched the features based on options activities, ETFs, futures, and macroeconomic indicators. In total, we are now offering </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">616</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ready-made features to our subscribers. </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">There is a lot to read here. If you would rather join our October 1, 12pm EST webinar where Ernie and I will discuss these factors / features and answer your questions, please sign up <a href="https://py.predictnow.ai/register_workshop" target="_blank">here</a>.</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">NOPE </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">- </span><a href="https://www.scribd.com/document/487296659/Investigating-Delta-Gamma-Hedging-Impact-on-SPY-Returns-2007-2020" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Net options pricing effect</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> - is a normalized measure of the net delta imbalance between the put and call options of a traded instrument across its entire option chain, calculated at the market close for contracts of all maturities. This indicator was invented by Lily Francus (Twitter: @nope_its_lily) and is normalized with the total traded volume of the underlying instrument. The imbalance estimates the amount of delta hedging by market markers needed to keep their positions delta-neutral. This hedging causes price movement in the underlying, which NOPE should ideally capture. The data for this has been sourced from </span><a href="http://www.deltaneutral.com/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Delta </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Neutral</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.and the instrument we applied it to was SPY ETF options. The SPX index options were’t used because the daily traded volume of the underlying SPX index “stock” was irrational. It was calculated as the traded volume of the constituents of the index.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Canary </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">- is an indicator that acts similar to a canary in a coal mine, which will raise an alarm when there’s an impending danger. This indicator comes from the dual momentum strategies of </span><a href="https://seekingalpha.com/article/4087925-breadth-momentum-and-vigilant-asset-allocation" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Vigilant</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://indexswingtrader.blogspot.com/2018/07/announcing-defensive-asset-allocation.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Defensive Asset allocation</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The canary value can be either 0,1 or 2. This is a daily measure of which of the two bond or stock ETFs has a negative absolute momentum - 1) BND - Vanguard Total Bond Market ETF 2) VMO - Vanguard Emerging Markets Stock Index Fund ETF. The momentum is calculated using the 13612W method where we take a proportionally weighted average of percentage change in the bond/stock ETF returns in the last 1 month, 3 months, 6 months, and 1 year. In the paper, the values of “0”,”1” or “2” of the canary portfolio represent what percentage of the canary is bullish. This indicates what proportion of the asset portfolio was allocated to global risky assets (equity, bond and commodity ETFs) and what proportion was allocated to cash. For example, a “2” would imply 100% cash or cash equivalents, while a “0” would imply 100% allocation to the global risky assets. Alternatively, a value of “1” would imply 50% allocation to global risky assets and 50% to cash. </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Carry </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">- “</span><a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2298565" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Carry</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, defined a carry feature as, “the return on a futures position when the price stays constant over the holding period”. (It is also called “roll yield” or “convenience yield”.) We calculate carry for 1) global equities - calculated as a ratio of expected dividend and daily close prices; 2) SPX futures - calculated from price of front month SPX futures contract and spot price of the index; and3) Currency - calculated from the two nearest months futures data.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Macro factors</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> - macro factors are derived from global macroeconomic data, from the US and 12 other major economies. These are sourced from either Factset or FRED. The factors being offered are: </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1) US Market index adjusted by inflation, money supply - mainly calculated for the US - SP500 adjusted for CPI, PCE, M1 and M2 - tells us if the market index is “inflated” or bubbled up by increased money supply or increasing prices. All these features are daily percentage changes, to make them stationary. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2) Principal components of continuous maturity bond data</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Pricing factors can be extracted as the principal components of the cross-section of treasury yields i.e. these factors are linear combinations of the treasury yields. The first three PCs have been prime candidates in this regard as they generally explain over 99% of the variability in the term structure of bond yields and, due to their loadings, may be interpreted as the level, slope and curvature factor. More can be explored in the paper, </span><a href="https://www.sipotra.it/wp-content/uploads/2021/01/Equity-tail-risk-in-the-treasury-bond-market.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Equity tail risk in the treasury bond market</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">3) Common sovereign ratios (calculated month-on-month and year-on-year)-</span></p><ol style="margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Sovereign Debt normalised with GDP</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Foreign Exchange normalised with GDP, </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Government spending normalised to GDP </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Current account balance to normalised GDP</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Government Budget balance normalised by GDP</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Labour force as a percentage of population</span></p></li></ol><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">4) Fixed income term premia - the risk or the term premium is the premium or compensation the bond holder gets to account for the possibility of short-term interest rates to deviate from the expected path. This is sourced from the FRED. The methodology for the term structure model used to calculate term premia is covered in the paper, </span><a href="https://www.federalreserve.gov/data/three-factor-nominal-term-structure-model.htm" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Three-Factor Nominal Term Structure Model</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. All the term premia features are daily percentage changes, to make them stationary. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">5) Features that are calculated as month-on-month and year-on-year percentage changes: </span></p><ol style="margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Current Account Balance - the percentage change in a country’s international transactions with other countries. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Exports - the percentage change in a country’s exports to other countries.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Industrial production - the percentage change in a country’s output by industrial sector. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Imports - the percentage change in a country’s imports from other countries. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Money supply - the percentage change in a country’s M2 money supply. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Retail Sales Index- the percentage change in a country’s demand for durable and non-durable goods. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Employment - the percentage change in a country’s employment numbers. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Housing Starts - the percentage change in a country’s new residential construction projects. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Trade balance - the percentage change in a country’s net sum of imports and exports. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Unemployment rate - the percentage change in a country’s percentage of labour that is jobless.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Labour force - the percentage change in a country’s active labour force. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Foreign Exchange Reserves - the percentage change in a country’s forex reserves. </span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Consumer Price Index - the percentage change in a country’s CPI inflation measure.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Wholesale Price Index - the percentage change in a country’s WPI inflation measure. </span></p></li></ol><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">6) Features that are calculated as quarter-on-quarter change:</span></p><ol style="margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Government Spending - the percentage change in a country’s government spending.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Fixed Investment - the percentage change in a country’s assets.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Personal Consumption Expenditure - the percentage change in a country’s household expenditures.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Government debt - the percentage change in a country’s government debt.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Gross Domestic product - the percentage change in a country’s gross domestic product.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Read Gross domestic product - GDP adjusted for inflation.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">GDP Price deflator - the percentage change in a country’s price levels.</span></p></li></ol><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">7) Seasonally adjusted features - calculated using additive seasonal decomposition to break the series into trend, seasonal and noise components. Only the trend is extracted to get a seasonally adjusted signal. After seasonal adjustment, we calculate the month-on-month and year-on-year change.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">a) Seasonally adjusted Employment </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">b) Seasonally adjusted Retail Sales Index </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">c) Seasonally adjusted Housing Starts </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">8) Total Credit to the non-financial sector- </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The measure of the credit given to non-financial sectors in selected developed economies. This is a leading indicator and can inform us about movement in indicators like Gross domestic product in the future. We calculate the quarter-on-quarter change for these features.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">9) Treasury Interest rate spreads - various combinations of spreads between sovereign yields of various maturities. These produce the slopes of the yield curves. Read more about the difference between term spread and term premium </span><a href="https://russellinvestments.com/nz/blog/to-fear-or-not-to-fear-the-yield-curve" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10) Retail Inventory to Sales ratio - The percentage of inventory for durable and non-durable goods is sold. This can forecast changes in gross domestic product. We calculate the month-on-month change for these features.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">11) Feds Fund rate - daily percentage change in the interbank overnight rate at which excess reserves based on bank requirements are lent or borrowed. The FOMC makes its decisions about rate adjustments based on key economic indicators that may show signs of inflation, recession, or other issues that can affect sustainable economic growth.</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-right: -36.1772pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Orderflow</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The underlying reason for the price movement for an asset is the imbalance of buyers and sellers. An onslaught of market sell orders portends a decrease in price and vice versa..</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Order flow is the signed transaction volume aggregated over a period of time and over many transactions in that period to create a more robust measure. It’s also positively correlated with the price movement. This feature is calculated using tick data from Algoseek with aggressor tags (which flag the trade as a buy or sell market order). The data is time-stamped at milliseconds. We aggregate the tick-based order flow to form order flow per minute. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">An example: </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Order flow feature with time stamp 10:01 am will consider trades from 10:00:00 am 10:00:59 am </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Time</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Trade Size</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Aggressor Tag</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:01 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">B</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:03 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">S</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:09 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">B</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:19 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">S</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:37 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">5</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">S</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">10:00:59 am</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">S</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The order flow would be 1-4+2-1-5-5=-9</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This would be reflect in our feature as Time:10:01 , Order flow :-9</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Conclusion</span></p><br /><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">With the </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">616 </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">features PredictNow.ai has developed for our subscribers, applying machine learning to risk management and portfolio optimization is easier than ever , especially given our built-in financial machine learning API. Our </span><a href="https://www.predictnow.ai/blog/the-amazing-efficacy-of-cluster-based-feature-selection/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">features importance ranking and selection function</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> can indicate which of our features are most important to predict a user’s portfolio or strategy’s return, so there’s no need to spend hours deciding on which features to include. . Ideally, a user will also merge them with their own proprietary features to improve predictive accuracy. If you have any questions or would like to learn more about these features, download our detailed user manual </span><a href="https://py.predictnow.ai/get_manual/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, or book a live demo and chat with one of our consultants <span style="color: #1155cc;"><u><a href="https://www.predictnow.ai/contact/" target="_blank">here</a>.</u></span></span></span>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com3tag:blogger.com,1999:blog-35364652.post-9723199902220006382021-07-14T07:50:00.002-04:002021-07-15T20:47:23.222-04:00Metalabeling and the duality between cross-sectional and time-series factors<p></p><p class="MsoNormal">By Ernest Chan and Akshay Nautiyal<o:p></o:p></p><br /><p></p><p></p><p class="MsoNormal">Features are inputs to supervised machine learning (ML)
models. In traditional finance, they are typically called “factors”, and they
are used in linear regression models to either explain or predict returns. In
the former usage, the factors are contemporaneous with the target returns,
while in the latter the factors must be from a prior period. <o:p></o:p></p><p class="MsoNormal"><br /></p><p class="MsoNormal"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc8mxor122uQ0HTbPae-Z7oJkQ64NmQR6YUoQUU9vM1-wFe-9qJlYVQO713ADmmIqqWgU2705v4e3X7ygpI2LZgNWL8OpwRD070QOhJCGn0uXGns-iDLnXhMnnFWTCipBUk8LPGA/" style="margin-left: 1em; margin-right: 1em;"><img data-original-height="80" data-original-width="899" height="35" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc8mxor122uQ0HTbPae-Z7oJkQ64NmQR6YUoQUU9vM1-wFe-9qJlYVQO713ADmmIqqWgU2705v4e3X7ygpI2LZgNWL8OpwRD070QOhJCGn0uXGns-iDLnXhMnnFWTCipBUk8LPGA/w400-h35/image.png" width="400" /></a></div><br /><br /><p></p>
<p class="MsoNormal">There are generally two types of factors: cross-sectional vs
time-series. If you are modeling stock returns, cross-sectional factors are
variables that are specific to an individual stock, such as its earnings yield,
dividend yield, etc. In our previous <a href="https://www.predictnow.ai/blog/introducing-pre-engineered-stock-fundamental-features-at-predictnow-ai/" target="_blank"><span style="color: #1155cc;">blog post</span></a>, we described how we provide 40 such
factors to our subscribers for backtesting and live predictions. But as we
advocate using ML for risk management and capital allocation purposes (i.e. <a href="https://www.predictnow.ai/blog/what-is-the-probability-of-profit-of-your-next-trade-introducing-predictnow-ai/" target="_blank"><span style="color: #0563c1;">metalabeling</span></a>), not for returns predictions,
you may wonder how these factors can help predict the returns of your trading
strategy or portfolio. For example, if you have a long-short portfolio of tech
stocks such as AAPL, GOOG, AMZN, etc., and want to predict whether the
portfolio as a whole will be profitable in a certain market regime, does it
really make sense to have the earnings yields of AAPL, GOOG, and AMZN as
individual features? <o:p></o:p></p>
<p class="MsoNormal">Meanwhile, time-series factors are typically market-wide or
macroeconomic variables such as the familiar Fama-French 3-factors:market
(simply, the market index return), SMB (the relative return of small cap vs
large cap stocks), and HML (the relative return of value vs growth stocks).
These time-series factors are eminently suitable for metalabeling, because they
can be used to predict your portfolio or strategy’s returns. <o:p></o:p></p><p class="MsoNormal"><br /></p><p class="MsoNormal"></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuL3KgSz4hk44rMcG19REIKOxdzG7W4tYEHIzpp92DHQHeI9BBSH-kngwpwtI7stzC0QH_74BmT68p_G8JsoU31jWK7PYEqU3fGMuHYMYbqd4jpH5LOqztNlileLw9tKq61LpEbw/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="460" data-original-width="863" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuL3KgSz4hk44rMcG19REIKOxdzG7W4tYEHIzpp92DHQHeI9BBSH-kngwpwtI7stzC0QH_74BmT68p_G8JsoU31jWK7PYEqU3fGMuHYMYbqd4jpH5LOqztNlileLw9tKq61LpEbw/w400-h214/image.png" width="400" /></a></div><br /><br /></div><br />Given that there are many more obvious cross-sectional
factors than time-series factors available, it seems a pity that we cannot use
cross-sectional factors as features for metalabeling. Actually, we can – Eugene Fama and Ken French themselves showed
us how. If we have a cross-sectional factor on a stock, all we need to do is to
use it to rank the stocks, form a long-short portfolio using the rankings, and
use the returns of this portfolio as a time-series factor. The long-short
portfolio is called a hedge portfolio.<p></p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">We show the process of creation of a hedge portfolio with
the help of an example, starting with Sharadar’s fundamental cross-sectional
factors (which we generated as shown in the <a href="https://www.predictnow.ai/blog/introducing-pre-engineered-stock-fundamental-features-at-predictnow-ai/" target="_blank"><span style="color: #1155cc;">blog</span></a>). There are 40 cross sectional factors
updated at three different frequencies - quarterly, yearly and twelve month
trailing. In this exercise, however, we use only the quarterly cross-sectional
factors. Given a factor like capex (capital expenditure), we consider the
normalized (the normalization procedure is found in the previously cited blog
post) capex of approximately 8500 stocks on particular dates from January 1st,
2010 till current date. There are 4 particular dates of interest every year
-<span style="mso-spacerun: yes;"> </span>January 15th, April 15th, July 15th
and October 15th. We call these the ranking dates. On each of these dates we
find the percentile rank of the stock based on normalized capex. The dates are
carefully chosen to capture change in the cross sectional factors of the
maximum number of stocks post the quarterly filings. <o:p></o:p></p>
<p class="MsoNormal">Once the capex across stocks is ranked at each ranking date
(4 dates) each year we obtain the stocks present in the upper quartile (i.e ranked
above 75 percentile) and the stocks present in the lower quartile (i.e ranked
below 25 percentile). We take a long position on the ones which showed highest
normalized capex and take a short position on the ones with the lowest. Both
these sets together make our long-short hedge portfolio. <o:p></o:p></p>
<p class="MsoNormal">Once we have the portfolio on a given ranking date we
generate the daily returns of the portfolio using risk parity allocation (i.e
allocate proportional to inverse volatility). The daily returns of each chosen
stock are calculated for each day till the next ranking date. The portfolio
weights on each day are the normalized inverse of the rolling standard
deviation of returns for a two month window. These weights change on a daily
basis and are multiplied to the daily returns of individual stocks to get the
daily portfolio returns.<span style="mso-spacerun: yes;"> </span>If a portfolio
stock is delisted in between ranking dates we simply drop the stock and not use
it to calculate the portfolio returns. The daily returns generated in this
process are the capex time series factors. This process is repeated for all
other Sharadar cross-sectional factors.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal">So, voila! 40 cross-sectional factors become 40 time-series
factors, and they can be used for metalabeling any portfolio or trading
strategy, whether it trades stocks, futures, FX, or anything at all.<o:p></o:p></p>
<p class="MsoNormal">What about the opposite conversion? Can we turn time-series
factors into cross-sectional factors suitable for predicting the returns of
individual stocks? Actually, there is no need. You can directly add any time-series
factor to your feature set for predicting individual stock’s returns. This is
equivalent to building a linear factor model with an individual stock’s returns
as dependent variable and the time-series factor as independent variable, a
process well-known in traditional finance.<o:p></o:p></p>
<p class="MsoNormal">On a side note: besides these 40 time-series (and their
corresponding cross-sectional) features, we have compiled an additional 197
proprietary time-series features available to our <a href="https://www.predictnow.ai/services/" target="_blank">Premium subscribers</a>, and
available via our API.<o:p></o:p></p><br /><p></p>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com5tag:blogger.com,1999:blog-35364652.post-63486135216027626222021-04-01T06:58:00.002-04:002021-04-01T07:24:57.662-04:00Conditional Parameter Optimization: Adapting Parameters to Changing Market Regimes via Machine Learning<p><span style="font-family: "Times New Roman", serif; font-size: 13pt; text-indent: 0.5in;">Every trader knows that there are market regimes
that are favorable to their strategies, and other regimes that are not. Some
regimes are obvious, like bull vs bear markets, calm vs choppy markets, etc.
These regimes affect many strategies and portfolios (unless they are
market-neutral or volatility-neutral portfolios) and are readily observable and
identifiable (but perhaps not predictable). Other regimes are more subtle, and
may only affect your specific strategy. Regimes may change every day, and they may
not be observable. It is often not as simple as saying the market has two
regimes, and we are currently in regime 2 instead of 1. For example, with
respect to the profitability of your specific strategy, the market may have 5
different regimes. But it is not easy to specify exactly what those 5 regimes
are, and which of the 5 we are in today, not to mention predicting which regime
we </span><i style="font-family: "Times New Roman", serif; font-size: 13pt; text-indent: 0.5in;">will</i><span style="font-family: "Times New Roman", serif; font-size: 13pt; text-indent: 0.5in;"> be in tomorrow. We won’t even know
that there are exactly 5!</span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">Regime changes sometimes necessitate a complete
change of trading strategy (e.g. trading a mean-reverting instead of momentum
strategy). Other times, traders just need to change the parameters of their
existing trading strategy to adapt to a different regime. My colleagues and I
at PredictNow.ai have come up with a novel way of adapting the parameters of a
trading strategy, a technique we called “Conditional Parameter Optimization”
(CPO). This patent-pending invention allows traders to adapt new parameters as
frequently as they like—perhaps for every trading day or even every single
trade.<o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">CPO uses machine learning to place orders
optimally based on changing market conditions (<i style="mso-bidi-font-style: normal;">regimes</i>) in any market. Traders in these markets typically already
possess a basic trading strategy that decides the timing, pricing, type, and/or
size of such orders. This trading strategy will usually have a small number of
adjustable trading parameters. Conventionally, they are often optimized based
on a fixed historical data set (“train set”). Alternatively, they may be
periodically reoptimized using an expanding or rolling train set. (The latter
is often called “Walk Forward Optimization”.) With a fixed train set, the
trading parameters clearly cannot adapt to changing regimes. With an expanding
train set, the trading parameters still cannot respond to rapidly changing
market conditions because the additional data is but a small fraction of the
existing train set. Even with a rolling train set, there is no evidence that
the parameters optimized in the most recent historical period gives better out-of-sample
performance. A too-small rolling train set will also give unstable and
unreliable predictive results given the lack of statistical significance. All
these conventional optimization procedures can be called <i style="mso-bidi-font-style: normal;">unconditional parameter optimization,</i> as the trading parameters do
not intelligently respond to rapidly changing market conditions. Ideally, we
would like trading parameters that are much more sensitive to the market
conditions and yet are trained on a large enough amount of data.<o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">To address this adaptability problem, we apply a
supervised machine learning algorithm (specifically, random forest with
boosting) to learn from a large predictor (“feature”) set that captures various
aspects of the prevailing market conditions, together with specific values of
the trading parameters, to predict the outcome of the trading strategy. (An
example outcome is the strategy’s future one-day return.) Once such
machine-learning model is trained to predict the outcome, we can apply it to
live trading by feeding in the features that represent the latest market
conditions as well as various combinations of the trading parameters. The set
of parameters that results in the optimal predicted outcome (e.g., the highest
future one-day return) will be selected as optimal, and will be adopted for the
trading strategy for the next period. The trader can make such predictions and
adjust the trading strategy as frequently as needed to respond to rapidly
changing market conditions. <o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">In the example you can download </span><a href="https://py.predictnow.ai/request_cpo_paper" target="_blank"><span style="font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">here</span></a><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">, I illustrate how we apply CPO using
PredictNow.ai’s financial machine learning API to adapt the parameters of a
Bollinger Band-based mean reversion strategy on GLD (the gold ETF) and obtain
superior results which I highlight here:<o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";"><o:p> </o:p></span></p>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid #A3A3A3 1.0pt; mso-border-insideh: 1.0pt solid #A3A3A3; mso-border-insidev: 1.0pt solid #A3A3A3; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1536; width: 374px;">
<tbody><tr style="height: 0.5in; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: 1pt solid rgb(163, 163, 163); height: 0.5in; padding: 4pt; width: 75.75pt;" valign="top" width="101">
<p class="MsoNormal" style="border: none; break-after: avoid; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; page-break-after: avoid;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;"><span style="mso-spacerun: yes;"> </span><o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; break-after: avoid; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; page-break-after: avoid;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;"><o:p> </o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid rgb(163, 163, 163); height: 0.5in; mso-border-left-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 111.75pt;" valign="top" width="149">
<p class="MsoNormal" style="border: none; break-after: avoid; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; page-break-after: avoid;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">Unconditional Optimization<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid rgb(163, 163, 163); height: 0.5in; mso-border-left-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 93pt;" valign="top" width="124">
<p class="MsoNormal" style="border: none; break-after: avoid; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; page-break-after: avoid;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">Conditional Optimization<o:p></o:p></span></p>
</td>
</tr>
<tr style="height: 22.5pt; mso-yfti-irow: 1;">
<td style="border-top: none; border: 1pt solid rgb(163, 163, 163); height: 22.5pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 75.75pt;" valign="top" width="101">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">Annual
Return<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 111.75pt;" valign="top" width="149">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">17.29%<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 93pt;" valign="top" width="124">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">19.77%<o:p></o:p></span></p>
</td>
</tr>
<tr style="height: 22.5pt; mso-yfti-irow: 2;">
<td style="border-top: none; border: 1pt solid rgb(163, 163, 163); height: 22.5pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 75.75pt;" valign="top" width="101">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">Sharpe
Ratio<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 111.75pt;" valign="top" width="149">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">1.947<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 93pt;" valign="top" width="124">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">2.325<o:p></o:p></span></p>
</td>
</tr>
<tr style="height: 22.5pt; mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: 1pt solid rgb(163, 163, 163); height: 22.5pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 75.75pt;" valign="top" width="101">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">Calmar
Ratio<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 111.75pt;" valign="top" width="149">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">0.984<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid rgb(163, 163, 163); border-left: none; border-right: 1pt solid rgb(163, 163, 163); border-top: none; height: 22.5pt; mso-border-left-alt: solid #A3A3A3 1.0pt; mso-border-top-alt: solid #A3A3A3 1.0pt; padding: 4pt; width: 93pt;" valign="top" width="124">
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt;"><span face=""Arial",sans-serif" style="mso-fareast-font-family: Arial;">1.454<o:p></o:p></span></p>
</td>
</tr>
</tbody></table>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";"><o:p> </o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">The CPO technique is useful in industry
verticals other than finance as well – after all, optimization under time
varying and stochastic condition is a very general problem. For example, wait
times in a hospital emergency room may be minimized by optimizing various
parameters, such as staffing level, equipment and supplies readiness, discharge
rate, etc. Current state-of-the-art methods generally find the optimal
parameters by looking at what worked best on average in the past. There is also
no mathematical function that exactly determines wait time based on these
parameters. The CPO technique employs other variables such as time of day, day
of week, season, weather, whether there are recent mass events, etc. to predict
the wait time under various parameter combinations, and thereby find the
optimal combination under the current conditions in order to achieve the
shortest wait time.<o:p></o:p></span></p>
<p class="MsoNormal" style="border: none; line-height: normal; margin-bottom: 0in; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; text-indent: 0.5in;"><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">We can provide you with the scripts to run CPO
on your own strategy using Predictnow.ai’s API. Please email </span><a href="mailto:info@predictnow.ai"><span style="font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";">info@predictnow.ai</span></a><span style="color: black; font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";"> for a free trial.</span><span style="font-family: "Times New Roman",serif; font-size: 13pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com6tag:blogger.com,1999:blog-35364652.post-62485577038720055702021-01-22T07:18:00.001-05:002021-01-22T08:23:08.515-05:00The Amazing Efficacy of Cluster-based Feature Selection<p>One major impediment to widespread adoption of machine learning (ML) in investment management is their black-box nature: how would you explain to an investor why the machine makes a certain prediction? What's the intuition behind a certain ML trading strategy? How would you explain a major drawdown? This lack of "interpretability" is not just a problem for financial ML, it is a prevalent issue in applying ML to any domain. If you don’t understand the underlying mechanisms of a predictive model, you may not trust its predictions.</p><p>Feature importance ranking goes a long way towards providing better interpretability to ML models. The feature importance score indicates how much information a feature contributes when building a supervised learning model. The importance score is calculated for each feature in the dataset, allowing the features to be ranked. The investor can therefore see the most important predictors (features) used in the predictions, and in fact apply "feature selection" to only include those important features in the predictive model. However, as my colleague Nancy Xin Man and I have demonstrated in <a href="https://doi.org/10.3905/jfds.2020.1.047" target="_blank">Man and Chan 2021a</a>, common feature selection algorithms (e.g. MDA, LIME, SHAP) can exhibit high variability in the importance rankings of features: different random seeds often produce vastly different importance rankings. For e.g. if we run MDA on some cross validation set multiple times with different seeds, it is possible that a feature in a run is ranked at the top of the list but dropped to the bottom in the next run. This variability of course eliminates any interpretability benefit of feature selection. Interestingly, despite this variability in importance ranking, feature selection still generally improves out-of-sample predictive performance on multiple data sets that we tested in the above paper. This may be due to the "substitution effect": many alternative (substitute) features can be used to build predictive models with similar predictive power. (In linear regression, substitution effect is called "collinearity".)</p><p>To reduce variability (or what we called <i>instability</i>) in feature importance rankings and to improve interpretability, we found that LIME is generally preferable to SHAP, and definitely preferable to MDA. Another way to reduce instability is to increase the number of iterations during runs of the feature importance algorithms. In a typical implementation of MDA, every feature is permuted multiple
times. But standard implementations of LIME and SHAP have set the number of iterations to 1 by default, which isn't conducive to stability. In LIME, each instance and its
perturbed samples only fit one linear model, but we can perturb them multiple times to fit multiple linear models. In SHAP, we can permute the samples multiple times. Our experiments have shown that instability of the top ranked features do approximately converge to some minimum as the number of iterations increases; however, this minimum is not zero. So there remains some residual variability of the top ranked features, which may be attributable to the substitution effect as discussed before.</p><p>To further improve interpretability, we want to remove the residual variability. <a href="https://amzn.to/39lU6or" target="_blank">López de Prado, M. (2020)</a> described a clustering method to cluster together features are that are similar and should receive the same importance rankings. This promises to be a great way to remove the substitution effect. In our new paper <a href="https://py.predictnow.ai/request_cmda_paper" target="_blank">Man and Chan 2021b</a>, we applied a hierarchical clustering methodology prior to MDA feature selection to the same data sets we studied previously. This method is generally called cMDA. As they say in social media click baits, the results will (pleasantly) surprise you. </p><p>For the benchmark <a href="https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)" target="_blank">breast cancer dataset</a>, the top two clusters found were:</p><table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184;">
<tbody><tr>
<td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99.85pt;" valign="top" width="133">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Topic<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 104.35pt;" valign="top" width="139">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Cluster Importance Scores<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in; width: 80pt;" valign="top" width="107">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Cluster Rank<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.35pt;" valign="top" width="128">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Features<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99.85pt;" valign="top" width="133">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Geometry summary<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 104.35pt;" valign="top" width="139">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">0.360<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in; width: 80pt;" valign="top" width="107">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 12pt;">1</span><span style="font-family: "Times New Roman",serif; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.35pt;" valign="top" width="128">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean radius',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean
perimeter',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean area',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean
compactness',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean
concavity',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'mean concave
points',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'radius
error',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'perimeter
error',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'area error',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst
radius',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst
perimeter',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst
area',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst compactness',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst
concavity',</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;"> 'worst concave
points'</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Courier New"; font-size: 10.5pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99.85pt;" valign="top" width="133">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">Texture summary<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 104.35pt;" valign="top" width="139">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";">0.174<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in; width: 80pt;" valign="top" width="107">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 12pt;">2</span><span style="font-family: "Times New Roman",serif; font-size: 10.5pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.35pt;" valign="top" width="128">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 10.5pt;">'mean texture',
'worst texture'</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
</tr>
</tbody></table><br />Not only do these clusters have clear interpretations (provided by us as a "Topic"), these clusters almost never change in their top importance rankings under 100 random seeds! <div><br /></div><div>Closer to our financial focus, we also applied cMDA to a <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=517667" target="_blank">public dataset</a> with features that may be useful for predicting S&P 500 index excess monthly returns. The two clusters found are</div><div><br /></div><div><div style="text-align: center;">
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; text-align: justify;">
<tbody><tr>
<td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 105.65pt;" valign="top" width="141">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Topic</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 95.55pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Cluster Scores</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in; width: 76.7pt;" valign="top" width="102">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Cluster Rank<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.3pt;" valign="top" width="128">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Features</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 105.65pt;" valign="top" width="141">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Fundamental</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 95.55pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">0.667</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in; width: 76.7pt;" valign="top" width="102">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 14pt;">1</span><span lang="ES" style="font-family: "Times New Roman",serif; font-size: 14pt; mso-ansi-language: ES; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.3pt;" valign="top" width="128">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span lang="ES" style="font-family: "Times New Roman", serif; font-size: 14pt;">d/p, d/y, e/p, b/m, ntis, tbl, lty, dfy, dfr, infl</span><span lang="ES" style="font-family: "Times New Roman",serif; font-size: 12pt; mso-ansi-language: ES; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 105.65pt;" valign="top" width="141">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">Technical</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 95.55pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto;"><span style="font-family: "Times New Roman",serif; font-size: 14pt; mso-fareast-font-family: "Times New Roman";">0.333</span><span style="font-family: "Times New Roman",serif; font-size: 12pt; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in; width: 76.7pt;" valign="top" width="102">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span style="font-family: "Times New Roman", serif; font-size: 14pt;">2</span><span lang="ES" style="font-family: "Times New Roman",serif; font-size: 14pt; mso-ansi-language: ES; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 96.3pt;" valign="top" width="128">
<p class="MsoNormal" style="background: white; line-height: normal; margin-bottom: 0in; mso-margin-top-alt: auto; vertical-align: baseline; word-break: break-all;"><span lang="ES" style="font-family: "Times New Roman", serif; font-size: 14pt;">d/e, svar, ltr, tms</span><span lang="ES" style="font-family: "Times New Roman",serif; font-size: 12pt; mso-ansi-language: ES; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></p>
</td>
</tr>
</tbody></table>
</div></div><div><div style="text-align: center;"><span style="text-align: left;"><br /></span></div><div style="text-align: center;"><br /></div><div style="text-align: justify;"><span style="text-align: left;">The two clusters can clearly be interpreted as fundamental vs technical indicators, and their rankings don't change: fundamental indicators are always found to be more important than technical indicators in all 100 runs with different random seeds.</span></div></div><div><p>Finally, we apply this technique to our proprietary features for predicting the success of our <a href="https://www.predictnow.ai/blog/what-is-the-probability-of-profit-of-your-next-trade-introducing-predictnow-ai/" target="_blank">Tail Reaper</a> strategy. Again, the top 2 clusters are highly interpretable, and never change with random seeds. (Since these are proprietary features, we omit displaying them.) </p><p>If we select only those clearly interpretable, top clusters of features as input to training our random forest, we find that their <i>out-of-sample</i> predictive performances are also improved in many cases. For example, the accuracy of the S&P 500 monthly returns model improves from 0.517 to 0.583 when we use cMDA instead of MDA, while the AUC score improves from 0.716 to 0.779.</p><div align="center">
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody><tr>
<td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"><span lang="EN-CA" style="font-size: 14pt;"> </span></p>
</td>
<td colspan="3" style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 188.1pt;" valign="top" width="251">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">S&P 500 monthly returns prediction<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;"> </span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">F1<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">AUC<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">Acc<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">cMDA<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.576<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.779<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.583<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">MDA<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.508<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.716<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.517<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">Full<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.167<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.467<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.333<o:p></o:p></span></p>
</td>
</tr>
</tbody></table>
</div><div align="center"><br /></div><div align="center"><p style="text-align: left;">Meanwhile, the accuracy of the Tail Reaper metalabeling model improves from 0.529 to 0.614 when we use cMDA instead of MDA and select all clustered features with above-average importance scores, while the AUC score improves from 0.537 to 0.672.</p><div><div align="center">
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody><tr>
<td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;"> </span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">F1<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">AUC<o:p></o:p></span></p>
</td>
<td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">Acc<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">cMDA<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.658</span><span lang="EN-CA" style="font-size: 14pt; line-height: 110%; mso-ansi-language: EN-CA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ZH-CN;"><o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.672<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.614<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">MDA<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.602<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.537<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.529<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">Full<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.481<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.416<o:p></o:p></span></p>
</td>
<td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 62.7pt;" valign="top" width="84">
<p class="Para"><span style="font-size: 14pt; line-height: 110%;">0.414<o:p></o:p></span></p>
</td>
</tr>
</tbody></table><p style="text-align: left;">This added bonus of improved predictive performance is a by-product of capturing all the important, interpretable features, while removing most of the unimportant, uninterpretable features. </p><p style="text-align: left;">You can try out this hierarchical cluster-based feature selection for free on our financial machine learning SaaS <a href="http://predictnow.ai">predictnow.ai</a>. You can use the no-code version, or ask for our <a href="https://py.predictnow.ai/api_request" target="_blank">API</a>. Details of our methodology can be found <a href="https://py.predictnow.ai/request_cmda_paper" target="_blank">here</a>.</p><p style="text-align: left;"><u>Industry News</u></p><p style="text-align: left;"></p><ol style="text-align: left;"><li>Jay Dawani recently published a very readable, comprehensive guide to deep learning "<a href="https://amzn.to/34v6tuY" target="_blank">Hands-On Mathematics for Deep Learning</a>".</li><li>Tradetron.tech is a new algo strategy marketplace that allows one to build algo strategies without coding and others to subscribe to them and take trades in their own linked brokerage accounts automatically. It can handle complex strategies such as arbitrage and options strategies. Currently some 400 algos are on offer.</li><li>Jonathan Landy, a Caltech physicist, together with 3 of his physicist friends, have started a deep data science and machine learning <a href="https://www.efavdb.com/" target="_blank">blog</a> with special emphasis on finance.</li></ol><p></p><div><br /></div><div><div align="center"></div></div>
</div></div></div><p class="Para"><o:p></o:p></p></div>Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com10tag:blogger.com,1999:blog-35364652.post-44428137257499980482020-08-06T08:59:00.001-04:002020-08-07T08:29:53.427-04:00What is the probability of profit of your next trade? (Introducing PredictNow.Ai)<p style="margin: 0in;">What is the probability of profit
of your next trade? You would think every trader can answer this simple
question. Say you look at your historical trades (live or backtest) and count
the winners and losers, and come up with a percentage of winning trades, say 60%. Is the probability of profit of your next trade 0.6? This might be a good
initial estimate, but it is also a completely useless number. Let me explain.<o:p></o:p></p>
<p style="margin: 0in;"><o:p> </o:p></p>
<p style="margin: 0in;">This 0.6 is what may be called an <i>unconditional
probability </i>of profit. It is the same for every trade that you will
ever make (unless your winning ratio changes significantly in the future), so
it is useless as a guide to whether you should take the next specific trade or
not. It can of course tell you whether you should trade this strategy in
general (e.g. you may not want to trade a strategy with an unconditional
probability of profit, a.k.a. winning ratio, less than 0.51). But it can’t do
so on a trade-by-trade basis. The latter is the <i>conditional probability</i> of
profit. As the adjective suggests, this probability is conditioned on the
specific market environment at the time when you expect to trade.<o:p></o:p></p><p style="margin: 0in;"><br /></p><p style="margin: 0in;">Let's say you are trading a short
volatility strategy. It can be an algorithmic, or even discretionary, strategy.
If you are trading it during a very calm market, it is likely that your
conditional probability of profit would be quite high. If you are trading
during a financial crisis, it could be very low. The conditions that can
determine the probability may even be quantifiable. The level of VIX? The
recent SPY returns? How about the interest rate change or <a href="https://epchan.blogspot.com/2019/12/us-nonfarm-employment-prediction-using.html" target="_blank">Nonfarm Payroll</a> number just announced? Or even the % change in Covid-19 cases
on the previous day? You may not have taken all these myriad numbers into
account when you were building your simple trading strategy, or when you decide to
make a discretionary trade, but you can't deny they may have an
impact on the conditional probability of profit. So how are we to compute this
probability?</p><p style="margin: 0in;"><br /></p><p style="margin: 0in;"><i>Spoiler alert</i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">: computing this conditional probability helped us earned 64% YTD return as of June 2020. You can find out how to do that with </span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"><a href="https://predictnow.ai" target="_blank">predictnow.ai</a></span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">. But more on that later.</span></p><p style="margin: 0in;"><o:p></o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in;">The only known way to compute this
conditional probability is machine learning. Let's return to the example of
your short volatility strategy above. Suppose you prepare a spreadsheet of the
returns of the historical trades you have done, like this:<o:p></o:p></p><p style="margin: 0in;"><o:p>
</o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><img alt="Figure 1: Spreadsheet with historical returns of short vol trades." src="data:image/png;base64,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" title="Figure 1: Spreadsheet with historical returns of short vol trades." /></o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
1: Spreadsheet with historical returns of short vol trades.</span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in;">Again, these trades could be due to
an algorithm, or it could be discretionary (perhaps based on some combination
of fundamental analysis and intuition like what Warren Buffet does).<o:p></o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
</span></o:p></p><p style="margin: 0in;">Now let's say we only care about
whether they are profitable or not, so we ignore the magnitude of returns and
label those trades that are profitable 1, otherwise 0. (These are called
"metalabels" by <a href="https://www.amazon.com/dp/1119482089/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=d7381a1bc4fd7adf25c210b2967e15be&creativeASIN=1119482089" target="_blank">Marcos Lopez de Prado</a>, who pioneered this financial machine learning technique. <span style="background-color: white;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">They are “meta” because he
assumed the original simple strategy is used to predict the ups and downs of
the market itself – those are the base predictions, or labels. The metalabels
are on whether those base predictions are correct or not.</span>) </span>The resulting
spreadsheet looks like this. <o:p></o:p></p><p style="margin: 0in;"><o:p><br /></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><img alt="Figure 2: Spreadsheet with labels: is historical return of short vol strategy profitable?" src="data:image/png;base64,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" title="Figure 2: Spreadsheet with labels: is historical return of short vol strategy profitable?" /></o:p></p><p style="margin: 0in;"><o:p><br /></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
2: Spreadsheet with labels: are historical returns of short vol strategy
profitable?</span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in;">Simple, right? Now comes the hard
part. Your intuition tells you that there are some variables that you didn't
take into account in your original, simple, trading strategy. There are just
too many of these variables, and you don't know how to incorporate them to
improve your trading strategy. You don't even know if some of them are useless.
But that's not a problem for machine learning. You can add as many variables,
called features / predictors / independent variables, as you like, useful or
not. The machine learning algorithm will get rid of the useless features via a
process called <a href="https://arxiv.org/abs/2005.12483" target="_blank">feature selection</a>.
But more on that later.<o:p></o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
</span></o:p></p><p style="margin: 0in;">So let's say for every historical
trade (represented by a row in the spreadsheet), you collect some features like
VIX, 1-day SPY return, change in interest rate on the previous day, etc. We
must, of course, ensure that these features' values were known prior to each
trade's entry time, otherwise there will be look-ahead bias and you won't be
able to use this system for live trading. So here is how your spreadsheet
augmented with features may look: <o:p></o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><img alt="Figure 3: Spreadsheet with features augmented." src="data:image/png;base64,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" title="Figure 3: Spreadsheet with features augmented." /></span></o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
3: Spreadsheet with features augmented.</span></o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in;">OK, now that you have prepared all
these historical data, how do you build (or "train", in machine
learning parlance) a predictive model based on that? You may not know it, but
you have probably used the simplest kind of machine learning model already,
maybe way back in a college statistics class. It is called linear regression,
or its close sibling logistic regression for our binary (profit or not) classification
problem. Those features that you created above are just the independent
variables, often called X (a vector of many variables), and the labels are just
the dependent variable often called Y (with values of 0 or 1). But applying
linear or logistic regression on a large, disparate set of features to predict
a label usually fails, because many relationships cannot be captured by a
linear model. The nonlinear co-dependences between these
predictors need to be discovered and utilized. For example, maybe when VIX
<= 15, the 1-day SPY return isn't useful for predicting the probability of
profit of your trade. But when VIX >= 15, 1-day SPY return is very useful.
This type of relationship is best discovered using a "supervised" hierarchical
learning algorithm called random forest, which is what we have implemented
on <a href="https://predictnow.ai/" target="_blank">predictnow.ai</a>. <o:p></o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
<span style="font-size: 11pt; line-height: 107%;">A random forest algorithm may discover the
hypothetical relationship between VIX, 1-day SPY return, …, and whether your
short vol trade will be profitable as illustrated in this schematic
diagram: </span></span></o:p></p><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in;"><o:p></o:p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglcPp1jgBGLDChya6r6NoDfZPtakHZLoUaxIR4zPR3_U6Jt_Jzl5k_iJAj2zSPekIC01Cp0nm4Hp4iRzgr5dVkuRiqKc1Hz2rNwbRVR3coUUx9dmOwD8cNIxBNoB9bf1ClSNMUBg/s807/Figure+4.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Figure 4: Example classification tree generated by predictnow.ai internally." border="0" data-original-height="807" data-original-width="605" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglcPp1jgBGLDChya6r6NoDfZPtakHZLoUaxIR4zPR3_U6Jt_Jzl5k_iJAj2zSPekIC01Cp0nm4Hp4iRzgr5dVkuRiqKc1Hz2rNwbRVR3coUUx9dmOwD8cNIxBNoB9bf1ClSNMUBg/d/Figure+4.png" title="Figure 4: Example classification tree generated by predictnow.ai internally." /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
4: Example classification tree generated by predictnow.ai internally.</span></div><div class="separator" style="clear: both; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div><p></p><p style="margin: 0in;">To build this tree, and all its cousins
that together form a "random forest", all you need to do is to upload
your spreadsheet above to <a href="https://predictnow.ai/" target="_blank">predictnow.ai</a>,
click a button, and it will probably be done in less than 15 minutes, often
much sooner. (Certainly faster than a pizza delivery.)<o:p></o:p></p><div class="separator" style="clear: both;">
<p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><img alt="Figure 5: Choosing training mode at predictnow.ai." src="data:image/png;base64,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" title="Figure 5: Choosing training mode at predictnow.ai." /></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><br /></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
5: Choosing training mode at predictnow.ai.</span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><img alt="Figure 6: Uploading training data." src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnAAAADPCAYAAAB1EOwqAAAgAElEQVR4Aey991sVydr3+/wT54dz3nPe53n3nj0zOkrOOUpQMOecs+ScFzkHQUUxAoo5YgBzzokgKCBBRZSoIpnPuboXCM6Mo3v2bGfYlteFa61e3VV3fe67u759V3Wt/9IyMEP8CQYiBkQMiBgQMSBiQMSAiIGhEwP/JZw1dJwlfCV8JWJAxICIAREDIgZEDEgxIAScyECKDKyIAREDIgZEDIgYEDEwxGJACLgh5jBx5yXuvEQMiBgQMSBiQMSAiIGvJOBM0dA1RlPfVCh8IRhFDIgYEDEgYkDEgIgBEQP/Ygz8qoDTNjRDXUefH0Zqyn/fj9RkuLYRWobmvxO4ObrGlugYWaCmbcCPqjqoG5ih/Rnjpe9HqmvzvYoOmvpKtS3ZpqatxzBV3d9py+dVu7ahOer/hJ3iTujzTAUjwUjEgIgBEQMiBkQM/HEx8KsCTl3HBHP7ebh4BxIUGkmQIow5dnaMVNVHy/Cfq1xTTxc1fWdOXy7A12kaenZTcHV2xlLfBPU+Udbv0H7hNExdDw0DMzT0TJi0yBlnp5Wo6RqjoW+Kuo4p1uMWs3TFMrQNTP8tWT11HUOsJ8zC1dnlV+3st1e8/nOxIHgJXt9WDJjLIw+q0s1v382qmrYharomn7157d//j3rV1DNGXW9gBES6tmoM+vxH1KM+eJRFulZLnz9zk/6peqURGzUdI9R1TT6w+9S+f8Z2aTRJXcdItlHqm/oTDF9ii6aeyS/apSn1h7rGf3hb/9mRLw09JXeZ/T8ZH/0++yv77Uv8I+8jx6/J747fL67nd54f/eX/ioAzZdgIA5b4neTt22eEBAUQv/EAzx/cx2ueNcM0DeUTf/AFQAo+5eePGyxtU9PWZISuN8UVzSjcJjPJJYInty8xS8+QkXqSABs4doSqFpOcg8jZmIaNug7/0DBk27VKoJtYj/EMH6HDjyONcAm/wIvqm+jpG6GuZ4J0Qnyov08USp/7h2yVdfRfvEzlffsBSK+Dj9fQN+MnFU3m+8d9sHPEPxnIg8sW74VoETHwbcaAdF0xshrNKHsHtPSla50Z5vbjMbOy/cPF02/FmHTjq2Nuh4mFuXxNlK6LBua2GJpZf7hG/tbxv/zOGBUtg5/dgJtjZGmHnrGFskxjK4wsbdGTrq//ZCelomOE/qixjBk/BSub0Wga9F+7/z1xJPUPUnu+TISZo6FniLqeGdYOkxg9bjI2dvboGn3c90nMtA1NUdU2QFV3kP19vjC1tELTQClOlf3UKEyt7f5gYT/YJ59np6atj565PfbjpmDvOBEzyz5f/sx/mvpGjNQy/IiXpqE5htZjsHGcxOixk7GwtERV2/BXfS+dFz8//pcx9gl7pdFBXQNUtL9M2Etsf/732bqkqV7GVhhb2qL7s7Z/9tgv3F85ymmAis6XteNT9f6qgBs+0oClfrlUPL6MisoI/p+/mbD/0hOOZEfx3QgdNHQN0TOzx1S6EGnpM1LHHBPrMRiZmjNSwwBNQzNUtXRRM7DAZJQFOibe3HtUS5T/Ar5XM0TP2BI526ZjyEht6SI3BlNLG0aq6+Kyfi+vC28yz9iMYTrGpJ+9RVNDB2/un2WCiR7/34/6rAnJo6zkIvr6RoxQ00FV1wJzmzGYWFoyQkMPVX0LdA3NUdNXnlTq+pJok+6CTdGUgBkq65egaOobo2pogYmNA6YWo1DX1kdV10we7pXt/EKHfAqw2P6JE1Fw/cPvtkWs/bVibdhIdVwi13PhVBZqmroM1zBi88nLrI3x5x8quqhq6vGDihY/qOigpmuKtoExI9R1+FFVmx9VdVHV0eNHFS2GyddUc7lzl76XjhkudaBfMqVFyiToWbA0KJmooFVo6RmiomXIfLcAli9bxA8jtVHpyxBKgkMafRipKXWQRmgYmMs3t6o6ygyidA2VOmV1XQcmT5+NiYkBqnrKG2BNE1u8QqMYP94RFXVd1MfPxjs0jAnGZvykbcBITem6avzZERwNHWNGzVyMs28Qq1c64+npjqWJpdzhSxlDbQMTJHukG20NHaU9kvhS1VGWraHbt01ug5QBVE77kabu9Lfrw3Vfy4ARmnpoGlkxdfYcdA1NUPvMzbqmnpQVHMNSNz/cffxYtNId74ggJo6zQkXHWJ4iJNWjrmuEmpYloyfOZ7SdmfydVK+UgbVaFUTq2jAcLE1Q0zFBVcuYGcsjSEmKxNDEXD5WatNIWSSboqUn7SP5TdqmFEWausZ9bZayvEZyVlfq31Slffr8p25ojbsikqmTJzJSayAL/GvXCTVtEyzGzMdHEcqKVc4s9wnB02cZegZGcvn9dUt1aRtNZOqMaegZ6CtFvK4RIy0cWRGZRIi7OwudvPGPVDBn6jjUtI1lvSDbpCUlXIzQNbNl6qzZaOtLWWHjDzb3s1fG4EC8fPgsZWS1TTC3m8ukCXao6kjJJCNUNPXleP01AS5N3ZK0Rn+bpWlc0l//51971dQ2QHPyQnxDghljYIJa39x9yadSHEs+kAS8JMIkHpKfpHOqP9MuaQqZl6bBh3hSk84nObak+DVERdMUa4d5TBhnjXTD8mt2fMm2Twq4Jb7HqHhyBR0dbf7X/9Fg2/Gb7N2egPXkdG7d3svJ/F0khfvy/aipxB/J4/jhfVy8cpOUVYsY+YMu5mMXc+zcRQ5k7uV4bhEtTc/wXjmZsSsCuHEml0maOqgY25Bx/ALnT+zhyJl8Dq/P4vilBzTX1pCbvYmZEy1Yf+EBN9dnkH+lkst7gvnxv1VY0SfgtHS10XF04cDJG+zK2cuJM/dYF++L+k+O7Dp7i2TvNfz9u5Es2nKKwmvb0NdXx3xuCpcv7MfBRroLMGCk4TgCM09wdPt29uVf5MSeYPQ0fmK6ayg3TucyVc9IzhR+CUyxz1+rAxX+EP74M2NAEnBusZu4fDqLH39S5W/Dtdicd40NiUH873+MwHrKYrwCFXh6uWBsYoyqriNT565mtbs/LquXYmYzH7eAQJZOn4aehj4/aRkwcbE7PgHBLJgwHs2+m+XfaqOGrgF6o+fj5RlDeEAoUyfZ8KO6Pgvc/HH1dMdxylwmTJggd6yqWqaY2U9n+vxFTJowEV0tQ/Qs7LFzGIumnilGFuOxtrfBaoIbSWvTWL14KgZ6kuAwRhJwPhGxTPwg4ObiGx7BeENjjMdMYdrcRYwb7YCO7i8zVYPtl4Sjc2gcXktn8/fvVdA2tsLAyAJrhwmYWlihoW+DjcMEjMzMMRo9Abvx05k2ZwEO9qPR0DLBZNRERo+dxpQ5Cxk3dgyaesoh61ETZjFDsmH8ONR1jNEzdcB+4gwmTpnFtEVrSF6XxsK509A3kqbqfOq8MUVF14SZK/3xd3NCQ5onrqqDhqkNBqYWqGqbYzNhNjPnzsfC2hp185kER29E4bsUcxNLmaEs4Fb6snHHDpwWTpEFu7rZVPwTN5MYG46BsSk6xuOYNGshU2fMxMzIHC0Le2wnTGPi9PlMnjxFFtU61o7Y2TmgrWOMid04rGzs0TSyxGHaPGbMno+NrTmqBpZ4hsUwfcpvCzhpeF3bagL+wdHMnDSWH0ZqMUzbGH1LO7Sk70zGMGn2QqZOmYKGgQUOs4NJS4tnwYzx6OqaoimJGMvxrI6MYa6FOf9Q0cJ4hisRoUHYGBhiOGoa0+YuZOIkKabMGT/fmdQNacyeMQEDEzvGTZ/PtFmzsTa1QkPbEHMHZbyMH+OIhoYRJnZTmTFvIWPGjGakoQOrfdJIjPHE3nIUukaOTJ69gMlTp6BnLCVklNlO6VUahZs1bzGJKeuIS1xLYkoaoZExWNmPRU0S/J9IIsgCbspi/EMVHwScurYxRqMmyXE8ddo0jEyMUdE2xGDUOKbOXsjEydOwcRiHtr4RmoZjmDhrAdNnz8HK2AI1PTNsHCdibGaBhr4tNmMcMbCaiGvgBuLCnbG1spZF+qfs+a3tnxRwi72PUFN9nxnTprPUYxePikpwmziGictO0Nn5ihVzLfnv740J2HWHu1cy+OFv/xtr5928rLzK9AmjSL5QweXEYNS/U8feZQd1rW/wWzaeGb5JNJc/YJKGDu6HLlN7I5sx5poYS06ztmVxeDpl184wQVWbv2sas+1mCTfD/LGYGMTzd3UETB7PPI8jPHl0DnUda/bcLGXfthh+HK6O4dRISupqiVs9Gpech9ScS0FFzZLM6/XQXsUiKwM891ymMHcLRuoaqOqZoGXkyNRpCxkzyoF5ntuoe12B+xw1ZvitpflpIfP1DPnpM3dlvwVYfPepi6HYLmLjPzsGho1QZ1VYGtVVj8jM2sm2rBwKq54RF+yEtuNCrt6/R5YimuzDBRzZ6cxIXTfuV7zl8v69HL9bxYPTl9macJCKhzeZZmnMZI9ILp85giIgnsun8plmZc1I7U93RFJ8SZ3MxFXuLJ4zFtul3niuXIiKihaznANJSI5lzsI1+ChimDl9IvqjlqEIi2bBkiX4hESxcuJ4Rk9ZSGiYP+qaRoyfHUaQ3wJsJq0mNjEZp2WzMNIfEHDe4TFM+CDg5uAdEszkCXMJCI1g6ZIlzJ09HzMpg/eJjlOyV8py2EyZS1BINKuWLERH34ARemb4RUQze4YjP2nPIDg0gvETLJmuSCImIoyZi1YQGhGKnfk45qxOZG2kgvkLVuMVFckcW0vsZq8gXBHC/JmrCAiJZsbUUZiM9iBp3VoWzl/EjMXOxCWnsGThLAyNf0PAyUJlHE5RcSywskJFzxRL+/GYW9mgrmuGw3R3fH28mLHAA09/FyzGzsQvLI1g35VYm1nLgkLKxIxa44UiMAGFvw9GxobYzPciJMoff0UIBkbmWM1azuKlC1jlEYvPiinozlpB/Lo0lq50wS8micWzR2O80JMID3f0R2gyyy1AniduYD2dNctWs3C1N+EKTywMzXFRRDHtMwJOQ8sAkyUeKLzdMVLVQdfSnlH2YzE0MUPdYByr3UNZtmQ5y90UzF82jTGz/UhKjmXx7Mno60krTEgCbhyrImJYYGsrx5yarg2+oaFMmjqJsYtWMHf+EvxDYlg41QHHOU4krk1h7szJ2E5bysLlq1jiEkaI20p0Rk8nOCySZUuWMGvGXMaMmo+XfxCz5qzCM8Cf0ZMnstQzidhILxzsHHHxjmL1GhcWLF6D+Sjrj+YWSiJOx9ACZ3dvcvbuZ+PmbUycPkeet/hb116lgFuEnyJEFnAjdYwwsJpLgCKOJUuXszQoCq8lMzEyH4OnIpzVi5eyNCSGhNggdIwdWe4ag5eHEwtdfFF4eGBlbIlfZDRTJ9qiojcfRZiCiZMnsNo3legwN8aMskXrd871/KSAW+BxkPrGZ2zfnknmrl0sWTCN//mbGnOdT1PxaD9G2mr8t9VMDpbXcydvG2HRccSty6P+dRVhkXHcefyIaWPt+F5dlWFaztwpfkmQ00SmecXxovAqc01ncf3ZK+JWzeK7n3RR1zbkbz+OZFHMFsolAaemzXd9Au5+cgTD/mcYoTvv8vjUYbz8jlBwPxejKTE8rrjC0hmq/KCmz9+H2bMzv4oDWZEYTg2jpOQcq1xDOHS1hFuXCtgW7UvO6RtsiVvOdyP00TQwQl1rLMsiN5N34yQb1x2jprYO/9XjmeIRw8uSu8wVAu6Tdyq/dRKI7/6zxYnw7+f9Kw+hRm3g5uVD2I52xNJ+Insu3SIqwIfF/me5ezqA7/+//4X6bB+uFl5kho2Cyzcus9BOhSURR7hzNp4f1czJK3jIgpkrSMgqpujGVrz8Urj+sJZMr5kMV9f/5PkpDbOpmzngHZtKiPNqlrrFkhQTgIGePnNcA1mzahnf/aiKyWJP/F1dWeKlwGnRLP7xvSpmYz1RBK1g8qzZBAR5o6phhOOMEAK9ZqKhPRXfgGAcbfT4SbtvCNXUFp/IGMY5jpGHUNXGzsItOBib0dNY6R+K04q5WIyShpwGzQf7hJBT0dRDx2wCCz0V+Pk6Y2VkhkdIGDOmOTBMcxp+gaGMG2/F9KAYnCdN4G/DtJnsFIrb1IUsXB6O+3JHvvtBk0lLfPBwXsIar0hWzLfmb9+rYb/MC293J0aNdicseA1amqpomjkSHK7A1Mz0t+ckSULFYhxOkXHMl+Z4GVgyZ4UHMfFxOE6dybyQRCLdXJg0bxUhyfFMsp7MwlXhLJ1jzXBN5TCZJOBsXPzxXr4KJ89Alsyfxxr/EJbOX4CvQoGRiSl6VhPljNVqbwUKfycM568m2M8bvZ/UmLjMHV+P5ZgsdEXh4oL+T5pMd/LB2WkFw/SsGDdzIXOdfIiKiGKisRVOXyrgFrnLAs5gpCbmY6fhGhiJIsAT/enLiIxPYuXseczzCSckyA1Tk6UEBXlgbqyNip4ZWr8QcAao6NnhFx7BlAl2GNnPYMa8xQRExLJm+Qy0LccREhYkD8FqmtoyZc5ilrkFEB4RhI7dFFb5h+K8Yi7GlqY4uEWQqAhi+oyFeMQlsXzGTBynBuDtPIURGjoscvXC2d2DsXYOsgj6+XzL/gdDFixdyfgpM+Whzc9du34u4H7SNsLeNQTFmmWo/qiCltVsgkP9mbc4gOCAxaiMHImRwywUCl9GzV5KYFgwJpqafK82Fs/gaObPtsM9OJxJE2wZoTOHwJBg7M1MmDQ/Ao+V4xih+elz+HO2flLALfHLpfzxZdQ0NPluuDojNA0YrqbPXOezlNxPwtxgGP9jPIv9RfVc2hfNzAWrWLpiKRMmTcR+pitPaitZNs6Ovw0fzg8WnhRU1hO0pl/AXWOO6SRuVNcQsHgm/zNci5Ea+vz9RxWWJ2yn4ko+DsPV+ZuGMgN3PzkK7X/8xN/N5nKotJrnZU+4d/0gBg7RlFU9YOUcXf42XIP/HunI/qvPOZ7pw/9tOIWDd55Te/82R9a5sSJuC/nltVy4eguX0YZ8r67F//t/vmdFeCbNFSWsslDl/9Jaxt3yBhROk4SA+8TF9XMBJb7/fMcuGH0bjCQB5x67iWtndzFCVZN/qOix7cx14kN8mO11kEfX0zD4+99RWRBL/r1DTBgVwtXrl1kydhhLFGs5uW8NKsajOFtQwKIZi4jYdp07x9NZOHchU+fMxX601W8+DCGJBYvJzkSF+TJ50gRsJ87FPSyBBWNHMcs1CE/XZfw4XIvRqwLxdlrMrDUh+DgtYfhPGtjO8CLIeykTZ84lNDQATTU9pi+PRuEzC22DWQQrwhhnp88IbTO09E0YaTCKJUEJuM6bzg8/aWA5ezXBIT7omFtiZGvPxNmBREY4YW4uzQ/7tP+lDtjcejS6Glr8Hx1HvCNTWDzOBtfQKOZNHo2a4UzCI6MZN86S6UFxuM0cy/cqZiz0iWLVpDksXB6B+6rJ/GOEPgtcQ3BZNoflnhG4LxvPjz/qYLPCH1eXxViP9iQseDUGeloY2EwiPDocc3NprtpvTSo3QVXbkllOYQR6LkBTR5/vVHRxDoliyqy5zPaOJtB5JbYOE7Ad7YCuznhWe8SxYp4NPw0ScHaugfgtW4T52DnErk0ndM0SLOynEBgZhqHJZJy8FCxZMJG5K4MJC3DBaMEagny9MRqpydTlbni5r8BkpjuRPi5oq2kzzzsM5zXLsV/tifvqlTjOXUVUpFLAOUtDqFN/ewhVeihDx2oO/hHhzJ5sy3fD1NAfM5PgiBCMJi4mNDqWuVOlIcIJWFqOwnyUC+Gh3liY6shzIJUCbjyro2KZa2nJMDU9Ri/zJcjXCTurefiF+Mnx5x4Uh9OK2RjYTiY8KgRdfTOWuPqwcsU8pi7yIjJKgZ65NUZ2dkyYGYBCsYbZnv6E+fvi4DgB2zHjMNS3ZcaCSPzdpqGqZYKppT32U+cTHBvHHBtb5TzLn/VdUiZOnoOpbfjJm53B12RZwE2VhlBDsNXW5x+qulgv8yfSyw2tkZroOM4kMMCTufN8iAx3QkddA4tp7sRE+GE+eRFBEZHYGhvwk/54fEMimTXJFq/wGGaMHYWm6QIiY8IZbWHOjKWxeK8Zz0itP1jASU+hrgg6Q33dQ4yN+x95NmWYih4L3K/zonwTFqYqfPejCQHp53j8+ATTJ1tgPdYJH6eV6KlbszG3kspjO5lkNh6n5MtI/4JWTmCmfwqtNcVMV9fHe9M5nl/KY/WYccz39MZr6lRs3NdS86KUgAXjUNE1ZldhDWUbEtAbrsEPqio4LkigE3hTdo6RWmNIyi3m2tnD2NmNY5H/XooqH7B4phn//XdDwnc/AN4TPNOOkeOCeAk8vbSWYT9pMm1JOllbE3CKy6D5+UNWOTqwLO6SbGfIqolM903i/bNSFugZMlwMoX5R4A8+CcT7T3dSgs23wWa4igZrwtaSf2wrapp6cie+4ehZ4hRuDDe2J+fUVfK27+L4yfMkKGwZaeDNmbP5LHQcycKARA5krUHV2IYjV26yZPZ4zKYv4ey5S2xLSyc1ORpjc6u+yeu/zlNV14S5HiGsmj+HESrSgxH6TFjkiY/rQuYu8yQ6LpzVLn4EBgRib2+MhuEsPPyjcPXywj8okBm2tmibjMcjMAZvVw9CouPxcZ6Bhq4Nq/0i8HFbLg/TSQ+JSfPKTG2W4R8SySo3b7xDgpg93hytiQtwC/TGyTUYF+fF6Bka/sYcMzN5uah5q73wd/NmhW8g7itWYqZtxPgF3igCQ3D3DCQuOgj70ZZMDYglLsqfNW4h+Pp6oKVrw9yVsUTFRLDKw5dgHx/s9IwwGT8T/6BwXNf44+vrzmh7Q8zGuBPouwJDfR3UTMewJiQWd6clmJpKE+t/nad03krzvdRMx7LMLRIffz+Wu3gS5O+PvaklxrZL8Q5UsGy1KwsXTkdbz4ipy/wIVfjgaGWDhq60KoMRNqt98F62ADVtW5xCYlkwzQYdmyn4hgRhYDKGFd4KPN2dcfWJw999JYZzV+Dj4YahqjaTFjvh5rIMNaNJrFGE4uHjSWBsCssWz2fsLE98/P1Z7u5PtCIYR0NLVgaEMmXShM88xCAt+WKE6fiVBCiiWOXsiltACB5LF6GuacXsJYF4+nqzZMUaJo63RMtkIt5hUbgsm4+RtAKElIEzd2BZWDwhnt6scffB1duTUZYmaJtNxy8slNWrnAkMTWLFoumomIzBNSyW1cuWsMDLDy9vV9Z4RhHi74H+5AW4Bnjh5BKMs9NCjMwm4eQlxakbS5ctwszMgFGTVxMaFczsyXNwcQlgtZsXbh4eOJiYf3ho4F+5xkoCTn38XPxiEvF28WCl0xrG285kpUcYrt4+uAQqWOTogI7haNwCYvFxc2d1SBxR0f7o6lszbX4gfkEBuPoH4rZkMboaxnIchAQE4eEdTGy0P7bmBtjNcCU8KoipDg5o6vy+JXd+NQOnomHExPmRbN68Fn0jaTKglPY2RUXTCMeZ8aSvc8PISFd+YmmEiQ2r12exZ08223ceIMpvFqqq2mgaLSN913Gyd+wmPWgbmWnbmT19NPZzndixaR1jdAz5Qd2UoNQt7M3aya4DOSydPZkftCcTt+0wOXsymDPRAqf4TaQ6rUJHXQ91fWNGaFkTtmkf2Zvi0dDVYpjOdOLWH2JHVg579uxj+YIp/EPFEHVNbczWKMjOScHWVocRmrYk7ThActBMho3UYcayTRzYl4GeqTWh67ezM2c36YFKO+fMGIPdnNXs2LQeR+mJEvELEkLA/eyu7l+5QIhjP91B/iexke789cxGYWJpo3wCXt9MXmrD0NxafgJVmvjvOG02Y8fZo6qlh4b+KEyt7NAzNEXPdBTGFpbyeWdsZY+eiQUqGnoY2Y5n/LTZTJg8FT1j5bIgv8XMyHwU2kbm8rqa0jVc28gCQzMb9I0tMbCww9J+LMbmlvJTsNJwk7axDVajx2FqbiWLMnVdU3RMbLCwc8TYzFq2Q0vfGB1TG8xHjUHfULlMiLQmpzQxXFqdwHr0OMwsLOV10jQNLTG2dsTKbrS8budviSOpHfK8JdNRmNuNxdrWAX196clQaZkoaaUAR8yt7TEwMUfFyJp5YbF4zpmLmbR8iZEJw9RGscQ5Hh+X6Zhaj8bQSJpTZyLboWtuh9XosRibmcl2ahtZYWBqKdskPbSgbWqLpY09ekamv7r0xWDGkohT17PE3NYRa4mfqSVa8rp1puib22NlPw5LGzt0DI3RNLLAdJQjRtJDDH39iLaJFfomlmjpSasdWKJjKK2MYIG+qTVaBtJDA9ZY2I7FfJSt7CctY0v0TazQluZ0GSuP1dA3RsvUDitbByQf6xpZoKFrgamNA5Y2YzA0tULHwEzu33SlByE+e/0yRU1L6T/Zftsx6MlLfEmC1hKzvraaWEjtMEbP3E72hbTMhpQ1lZ721TOzUTKxc0THwERe6kNaKkVamsTS3lE+DyQ7pfVfdczssBhlg5aJJWY2Y7EYJfnVUubQHy868jIsxugY28pMrWzHoG9sioaBKcbWDnKMSsvhSA8lGPX5+vPt/LJrj6ahBQYW9lhIcWjniIGhFBdWWNqPw8LSBk1pDUA9yR82mNk4sNAlgjDv5ejr6qKiY46pjSNWtqPR6Vt/UVPPAlNbR8ys7GTfSz6XVuswGeWIiZmVvMzQ77H9VwSc8vFYNW1d+fH2wWPKyqU/pMfYDWSHSZ+lJ1h+UtGWfxlhuJq2MlVsKD3arM8PKpoMU5cen5d+TUETVR1T+RcOvlfRRl16tFffmOHSI/NqugxT1ZHT19JTHMNGavKjqp58JzRC+l7TYNCvQJgwbKQG36tIv8Qg1W/IMFUthstlaDFCU5kmlW3V1OX7Edqo60mP4Jvw40gNflQ3kh8rVtOW2qEjTywdJj2qr/YJO7/gFyN+D3hxzJedSIKT4DSUY0BeC3PQAq1SpkNau1K6PkkLn0rLckjLD2jqS52stKyEtCiscvkOSTxJbZcWRu3v/NV0pP37j/l8bAxeD1MqSypHuiFXvioXj5X26WcsrdElCTl5ffGuBOwAACAASURBVM2+Tl/6XtomvUprysnlSNuktTY/EgbKJ//6j5fLlOqTypOePv3CG+EPNvQt3t5fTn+5UnkjDayY6uHHQkcHVDQMkBagVdUexcxF/iyeO1peSqPfVun4gTb0zcGTxUnfe4nLr7bn03ylteNke/q4yDYa/LL9Upul/QYvcSGvSzqIo/I75bFSOQPtl4Srqdy5K5MoA/4b2E+5BqqSrbIuibXUXsk38usXcpcEfj8nyeZ+fh+1ddA6q5L/le1Wchqw++OfzfxQ5qC1WeVtUhzq9dssxVd/W6V4GShjoFwphqQhe+Uxkn39ZffbOtief+n9h7jti135RwMGzg3JPn1rRxat8cLJ3RtfH28mmkkPUUhCr79Nffb2nXfSMRIzyWb5vBnUjt9r668KuN9bmDju0ye8YCPYiBgQMSBi4I+LAUm0DBZGEttf2yaY/3HMBctBLA3N0TWxQk/Ojpr85nSGfxc3IeA+uoMc5Byx/aO7q39XAIpyRcyJGBAx8LtiQBJwv7hO/9o2wfd38f0FW8Hx5xyVNwzKjPbPv/san4WAE0EqhJqIAREDIgZEDIgYEDEwxGJACLgh5rCvoepFHeJOU8SAiAERAyIGRAz8tWNACDgh4MRdl4gBEQMiBkQMiBgQMTDEYkAIuCHmMHFH9Ne+IxL+Ef4RMSBiQMSAiIGvEQNCwAkBJ+66RAyIGBAxIGJAxICIgSEWA0LADTGHfQ1VL+oQd48iBkQMiBgQMSBi4K8dA/8l/c6p+BMMRAyIGBAxIGJAxICIAREDQycG/ismIRnxJxiIGBAxIGJAxICIAREDIgaGTgz8l/zr7eI/QUAQEAQEAUFAEBAEBIEhQ0AIuCHjKmGoICAICAKCgCAgCAgCSgJCwIlIEAQEgW+AQC+9vb3fQDtFEwUBQeBbISAE3LfiadFOQeAvQqCz/gn7M07T/CX29HbS9LKZni/Z9xf7dNP0sokuoOv1Iw6eP8/b7l/sJDYIAoKAIDAkCQgBNyTdJowWBIYugY7nd0jw3MFrepH0VPu7RmpfNXxoUG97G7XPntPyvp031XeIXhXPvfp3sojr7u6kqeEVre1ddHUrZV1vt/R+QJk1vHzOy8Y3vGspIW5NPJfK6+nq6qK1rY3+HFzTy+c8e9nUV6e0tYf3zQ28fPVmwI5OyY5nNLe2f9hGbw+dnZ309Bc08I14JwgIAoLAVyUgBNxXxS0qEwQEgY4X90kL2kt77zt2bIpGkRiDj+sakg4V09HWwOENsQQGhLHv0kPu525jnNE4wvdd5e2L+3gG+RK/ZT1XLuUTf+SSDLP80g5y8q8Bndw9uYXgQF9CkrI4fWoHkyzH47b5FPUvHpG05xjNPR3cP7gNf/dAfNxD2H72Mb28ZmusL7FRG/FYuYYdV8roluzYFEdAQAg5p+/S05cC7G0uJSUhnMJG4UdBQBAQBP5cAkLA/bn8Re2CwDdHQCng9tHR3URCbACHH7dDwz0iY1OoeVFEQrIfJx5U8l4a+3xTwdagLF5Lw6Dl+SwPT+cd0FpyHPftJ2V2pfnr2JZ7hVdPbxCwPoc2aWtnBz2dVewIyaKqA3h9B5/NB6gsv4tv1CbqJEHWU01ySCqPqp+QGuDKzXroeppPhGIPTQ2FrIsJ5FRRJa2dcoJO6afOt5SXlfJG2ib+CQKCgCDwJxIQAu5PhC+qFgS+RQL9Aq696zWpO7ZyS1Jn70rYtj6Sp+3QWn2LbZsSWHvkOk2NZWzyz6JF0mQVF/DbrBRtzYXHcN9xTsb3OC+VrSduUPngFF6Zyqyc/EV3FRt9d/BCGu6sv0fAjiM8fngBz4yjfdh7OLQhkeuPitidEc1TSTC+uMe6wL209PbS8vQ+WzdEE3f4LG8GRmi/RZeJNgsCgsBfkIAQcH9BpwiTBIH/ZAIdz+6Q4LULScDFp6dyqRZoKSA9NZIHFS85vncnR3dnEbgxl7rGWjK8Qth2uYiWsvO4ph5ESn51vSwiyCeQzENHifOdS9Teq/S8f8b6oDDSN+8k89AZGt9WsztEwdqTt3jz7A7e6bt41VpPTlwUKRt2sytrMyl7L9HcUsGmxABK26Wk3HWS/fZQ9aaaA1kHOLxvC/5bD9AgZfGA3ubHpCVHUSSGUP+TQ1S0TRAYEgSEgBsSbhJGCgL/OQR62pqpePScnt4OKqqe0iA9I9D1hqrKCtra33Hr3F4yd53mRbMy7fWs5BpHLhXR2trIo8qXH55IrSu5SM7BY9wrKqL2tfIhiI5XTzmalcXei/eRin1TfYMD52/x5m0LpdXPZPFHax35u3PIPnaRBinrxnuqykt51wO9bU08LX1JV/c7bubvZ8eB07x4M+gZ2I4WHhU9pKlP0P3neEW0RBAQBIYaASHghprHhL2CgCAgCAgCgoAg8M0TEALumw8BAUAQEAQEAUFAEBAEhhoBIeCGmseEvYKAICAICAKCgCDwzRMQAu6bDwEBQBAQBAQBQUAQEASGGgEh4Iaax4S9goAgIAgIAoKAIPDNExAC7psPAQFAEBAEBAFBQBAQBIYaASHghprHhL2CgCAgCAgCgoAg8M0TEALumw8BAUAQEAQEAUFAEBAEhhoBIeCGmseEvYKAICAICAKCgCDwzRMQAu6bDwEBQBAQBAQBQUAQEASGGgEh4Iaax4S9goAgIAgIAoKAIPDNExAC7psPAQFAEBAEBAFBQBAQBIYaASHghprHhL2CgCAgCAgCgoAg8M0TEALumw8BAUAQEAQEAUFAEBAEhhoBIeCGmseGtL29tLe+5e279iHdCmH8lxHo7emmo72T3i/Yvburnfau7i/YU+wyVAh0vn9Da+fXtLaHjo4Ounu+Zp2iLkHgzyMgBNyfx/6bq/nqPgUrPXzw8Qhl6+F7dPT2cvz4Hk4+bvmTWLRzZuMebpf98/V3vixlT9pxmr6K5W85mrqfR7Xvf6W2Hurrqmj9nZ1W9/u3vKxp/Ljcxsek7j9G3e/sfN9XXic59ypvX1dz7sRN3n5cOnTVc3RXGo8GVVvx8DT5BZU/3/Pf87nzDbWvX8pl37t0jMwrT7+4nie3ckm/UPLF+/9yx24ubtnL1aJBjf/lTtBVx8HkvVT8At6v7fzHbXtyaQuHbz7+Fwvs4mlBPhFhXnjErKfo5efOrzccTdlNacO/KOA7mzhz/jxPm3t41/yKZ29+FsCS31/Vym17eOUY2y6W/YvtFIcLAn8uASHg/lz+31TtJ3b4cKToDXTWs1GRwuPXzezauY7sh8oL/POqJzyuUHasEpi2hjpKih7xoqVDyamrg8pHxVS8qO/L6nTwpLSE6trmjzj29nTx/m0bkqbp7erg7Xvp+G7aunt41/iSoscVvJUFTxt7g1I5U6DsTFteVVNYXEJje1/OqLOVqrJiHj+tl8uSK+l5T3lJMcW3zrPefxev+2vuaqeprc9OemlueKM8pr2R4uJiquuVPbFkT2tfBrK7s413HV3Q00VnaxPVlc9paevqL1F+fVn+mLLq+2T4bObes/fQ1U5NySNKq1/J5Xc0lBIXsoTdV5/T0QtvX1VRVFxO09u+zrCzmbLSYirr+hl1Uvm4iLI6pT2l+XvxW5VCyatBneyr+/hv3klhZQ2FZTVI3WBvx1vaO/ra19NGy9u3H2fWet5TUVpM2fMGmh6dxn3rEdp7unn/TukH6KG64jGl5dW0va9le5IvD1qg530zrxtb6Za4dHTR09VN1/tWasrLqKl994FFW0MtJaUVtLzrpLPjlx19bXUZxaUV9EvcrvZO2prrKX1Uzpv+jXJpvby8lYOPIoCyl01czssh7tB1yp88pvbdQLltDS8pLi6l5WN38PD8TkIP3+BZRSnlfQzlYttaKC0q5ukzJef2lhZa3yvLa62v5217v8LuIjdmI8cvlvKkuJSG1oEKWutrKCx+SpsEvOs5G93SKOpzy8vqMor629fRTus7ZXndra30SOHa8553798NxKlsVCfVT4opKa/t81UPbR2dvKqtoLbhzQe20pu2xucUlVZyYZ+CHRceyn7obG6irKaWtq4emqVz49Fj3rQP2NvwrJxHlS9p73hPl2xEX5E9b8jJSud6PTzOi2PP1SKqC45R8OLjOqW9X1Q84smzQjZ7bqDgVScdXd00vK6hpq5BLkyut7iU130+7Opso6vrPTVlJVS97o/pvnrp4X1bB+1tbzm6IxznTSeof9uf7e+l7s4efEL8KK1t5Gr+bqL3X6W87DEv+s8VoL2xjkfFpTT3NbOtq41Xz6upa1QaUFslxXBdf4XiVRD4UwkIAfen4v+2Ks/bGcih+/V0tFSSEr5RFjV79mZwpLSJJ9fzCEtIIToqhYP3X0HvW87sySQ6OgafoFS5w7lxMBVFYDQb9p2lo7WRiwd3ExGfRETcZq4/H+gc3r8oZEvoLqQuoLn0LCHZl6C3iaT4AEJSNhIUFkTMrnw5M3QkciPXyt7xrPAcAf4K/INDiIjbRt2bDp4/ukBaSiL+bgEcu/sMOprI35VEWGQI4UHO+Ppl8kH2vCsjMT6LaqnPrr1GTGImNS+r2RQTQUBwMAEB4dwur+dN6XU2xp+QO9SK6/uJy38Er+4S7ruK8LUHKHjRL1p6KMnfTaRPJImJAaycHUVpcw+Njy+wNj4ZX28/jtyopr7kDAunWuIef4TX7+o4lJVBVEgIEcl7effuLUeykwiOimHzgSt0dTRz8/g2UpJjCU5K49Gres6mR+JgM59t54oGgrGpBL9gL6LTMvALCiDjTAGvCk+QvPe0vE9pXg4bMs/woStvqyd/VzIhoUFEpB+h/EEewbvP0FxXzrbwPbyhk3sn9uAZHE5YXBy3yqo5vD2OBxVlbI0IJPdWFU9uHiLp4mNaiy8SsDyYlLVJLF8RxLVXrbyvekh6YChR0RsIcQog8/CjAVvp5H7uTrwCwggK8yd1yylZxF3csBZ//0Ri/Xxwi8rmdX8/TjfXdipwmDCJnSfucP1MFov9o0lJCGaZfzIv3sPb6kIyY5KJjY9l07bzvBnQdTy5uIPF/mGkr4/FRRHF9epGepqq2a4IIyQwBF/vOM6VNfCq8Dzxm89QV1dKZGQqpa/6s0E95MbE4uuWRHJQGL7hO6lu7qbh+X3SNqYRER7H+qN3ed9Rz3b/DJ62dVF4KgfPvvZtyD7D0/tX2LH1BPS2Ee68nOwHLbTcP8vOnfmy2JbhdLWQuzMJX4UChU8oGcefAO9Zl6jAKTSYY9cHsoj1NfdJSIjEPzaNVa4L2XGrmvelV/Bd7EVwzjEqal5wLHMj0WG+BGccQtKiUsZUER5OaNo63AI8uVDxkUrm/u50Vs50ITh1F8/a4WZOLPmP6wf5rYvCc9mEh4UTlxCA85IInrd1kZeTwmJfH/acvkblw6t4ByjwCwnDf10mte1QdWErfn7BrE+Nws8vkutPBpXZ+5r1O3K4WvyI1MDZ2C7y4eqT/lusHm7sDsNh/ER25N7m5tlsFvlFkZKoYKlvIs9a4W1NMVl9ft+4/RJtPW1sSVXgGpxE3q1Kiu+dJm7tWiJDUzj8UJnJG9Qg8VYQ+OoEhID76si/3QrzM1Yxa7kLXopYjt6voZdudu3dxsHrt0gNWEHG8WucP7gJr/CNSPmr189LuXbtIjG+K8kvqOHwziDW5V6jrhV6nubj5OTCqau32LU2jMitp+jvZ98/e8B63x1Il/bmknx8tp2D7jpCY0M59VTaq42MDeu58bKevIRtXCuuZF9sKKfLlJLkVGYS6y/V0N3ewP3b19mdHoLP7qu8LjhHVNJh2YGtJWeI8d8ui0SlR7s5vT2DvbdeUHbhIDvzCrh3eCPpe2/KXzfdOYD/9jPUFl4lLfyYLODKr+4m7EQh3c8uERmXwEeDam8eExSdSrmc9Koj1SWB+7Wd9La/5t79mxxM8yN0k9KWwzsjeCAf3MPT0gdcPbOPlYoYimufszkplS0n7iKNJrVXXmbNAm9OXLvNwfQgPHZfp62ygB0JJz+wk41tKMQrJpYHcoKjloTULTx68YLt8esor3vD4W0bOdGfGgIeX9tPUKZS3EmZtubiPPx2nqa59jEZit2UV9wmJSpd9odUfntrPTviluHuHcnZmxVylQXnMok8W0zznXxC/XbJ224c30RS7h3yD25i66Vn8rZz69aSsfOe/F76r6P+EclBUTyRBdp71icncK6uhYvJyWzNlcpuJTIxgTNPWz8c0/P8Kpt3b5M/38rdSMDOG/L74+me5Je+5uyOSJyis7hx4zJBXn7kPf2g/nh0biuum0/I+zcWHiV+50XuXthFaNY1edubR2eIjc6hg16uHEnE3zWG00WDMzbdHAmLZ8cR5TDl1Z1xHLxdxLEULwLWH+HGtZN4LI3jQdVTdodlUlzxiA2KKErbpOLb2bhuLSdv3GHX4X2UPX5EfIQfGUfucPn8Pg7dHBAzDcXnCAjLRj6srZyk2Chqm1tITozipDKoZHulzPSJ9RHsvfNK/nwuO4jt18ppvneasOA9fRm9biqKHsh1uK9IprzhFdnxEdyQY66djERXTpQMjPU2PbnEtnW7uHj2CgcyNnH0xEUObjpKReMAx56mYqKC16OUQTWkuCVQ9baNA9vi2XDpOdBJVrIXJ/vOybwdqWReq6Py4nqi0/fLtjbf2kPKzuMDNxK9r4hfl87NOii5to+Uy1V9bVS+9NZeZ3POZrlNd09swifzivzFyY2enCyu40J2NGsid3Dj5hVCfIO4UlpDxvp4TkrF9NYQtmYxW/Kuy9coD/esX04N+Kg28UEQ+PcTEALu389Y1NBHIC87kEN3XzAwV72NnXu2sffSVTaELCYxcz/79+3nzNU7NFTe53BmOvv3ZuHjtpSjxS3Q/pqzuVsJ3XKUuzcOEeC9hq37DrN/3z5uFA3MY2p7fp9Uv21I2qelIBevTWeg6yVRGzZRKPfj3WzfuIXrNS9lAXel8Am7oyO43df/3cjfSfKpAgovbmHX4T2sjfTCLecaL26fJCLlrNyajicXiPIbLOCgvvAs6cnr2HIoi8LWbu5nJ5Kdp8wW9dZcxjf7HM8fXmRtWK5cxpNz2wk5VkhXzSU2bt708Xy6xgd4JGxGOaD8mli3JG7XNnPvZCa7Dx0gPdKZ4M3HoKeNnZsDKW6H5sdn2bk7g5zsjczyCeOWNInt/XOO7NlBWkouJcUXcXb2J3vfIfYePMbl4ue8fniJjdHHP47R1w/wX5+JUnY0kLJ2C2VNvTzM30p8Zg779+XRnyeUDnxwNpOAnFsfynhTko9vdj7NL5+wNXwvRUWXSY3bKvtD3qmzkc2hM5m/KozrxcqhMikbE32umIZb59mcohSD98/vY92Rq+TsSCTnoVIgnM9Yz9pd9z/U1V77gBRFYp+tkJm1meM1DVzfsJ1T1yVR8o60TZs5XTaQoW0rzyctK0Mu4/qpbNbmlcrvz+9VcLboOSd3xrA8fCMHDxxk96lzPG36kGuk8FwWYUcK5P3flJwhKesCV05nEn2sLytYe5f09K1yFvDlpSTmrfDnYXP/8Kl0WBdHo9dx6r4yd/sgN4HDd+5xJDaMgMSt7D94iGPHrvCyuZrskO08KH1IenhiXxxAVvYWTpa/4LyUaU3dy72b9zi2fzMpGzZSIas12TRePjhFSNxR5QcayM4Ipep1A+u3bONqzeBsWRcH44I5WaIUuJd2hrD9yhMa7l5kc+IpWexUFF0mIfsAmZkbWDM/kdKX5axzDaFUTip2k5nixclBAq7gaARrj/WL7EZCZswh5PCDPluUL92v7hISsL1PBL0gxT2RypY2Du3Zxu670onYwo4Ub270JdDuHs7hwNkayq5sYstxpVh+V3SQlN25A1nH3lckbtjEzdou7pzZTuLlmo/q7Hh6hrTMjfK2W/k7STxRLL+/uC+U04U15OfEsSw0nYMHJb+fp/rlMzZkb+aydBK+ryBylTPJu6Rr1CHOXSrkXUc77wcNKX9UmfggCHwFAkLAfQXIogolgRM7fDn8YCBLIGXCtmWt43BRHXeO7CQhYye7Dhzn4fN3NDy6gsIzlJx9p4nwWsORO1Vc2reFrKxsQpJ2Ufy0nIMZm9iway97cs9T0z9pRbpZbq0lK96fmLSdpAX6sXrtKXkINUbhQ/iGTDLSIklYf5Tmnm4Oha7jypM3FF/Yg29IMus2ppOUkEFx1XNyUjyIzTpG1loFLjsv0dVQTrqPgtQNm8iI88DZYzMfz8J5x/ooF/yl+oA35deJDIogbUM6a6MiyLv7jK6WSpJ9vInftp8If1d8DxbQ8+wiqevTPmSolLTekLspitDYrezJWs/S6YEUvGrkYGQo8bty2RUXQGjGQVkQ5G72I2H7eR6c2YhvTCq5B/ayJCyOO6XVHNu/gx05W0mOyuFp3UtO7khly7b97D92gpqWblqqi4h0DWLP1UET15uKcfN0I2n7TtLiQ1mfdY62XuhuqsR70Syy775Qmtj3f1vdI9L8Q0lOTSfj8GWqH57ANzuPptpSNvhl0tDZxOG0WEKSNrA1cy/F1c/YvyWCaw8fkOThQ86lEgou7yLidBENN8+wLkYpKG/nZRN7oojKm3tw9Qphc+YhFCvcWLfn4UD9va2c2b6WgNgNbMpIJHXDAep74Uz8Bo5ckuxsIWHdBvIGCbiu1wUkKrw4eq6Ac6d2EZ9bKJeXl+nH0eJG6oovkBaznpyc/Zy7VjqQ4QFKzmxlrnsYe3dsIiIwjPMl9bS9KCDRW8H69RuJT1nH8TvV1Nw7QWDGEQoenCEpeRNVH0RgL0fCFKwO3sCG9HSCYrdQ3tRNTcEZEtLXs3vPAfIKqqH7JRme6Tx918rF7DQCYjawcXMia9fvlcVq44V0lrhGU98DJzYG4dWX1e0HI50D29aGE7V+I5viUlm/9ya9NBGXuoHzlQPZSGn/kmtZBISFsC7nAK6u88m48pSmu+dYF31MLq7gXBbOwRs5fjITj8WJPH3XxvmcCLzDE9iyL5uVbivJezwgClsq7hIeHM26TZvIzM4mKNQXd49w9p24Smv/I8m9TRyJjyEyOoPdWTGsmB9EdWsn+7M3sv26Mr7un96Fq3RObsogMX0zZS29VJ5Px8UnhF2bMwnyTyC/QMrW9f3rrSM2bQNXX3RTff8wa3ziuF01kNfuqi8iKdSTQ2cfcDE/h+gjSlF5OtuPw4WveVVyibSYdbLfz14rhZ5GEjelcrqqSx6uPn90KynbdrDr4HEe1rXy+GQOAWuVN3T9JohXQeBrEhAC7mvS/sbraqyrpOFd/1wgCUYPdXUveC1lDnrfcv1CPody8ymoVsqiJwVXOXrsEg/LnvCus4vnJVc4dDifsmfKbExPyzPOnDrOkbxLVDUOSj9IN8yvn3Lq8GkellRR0/QO2qqJ3rKePXnnOX764oc5Ua+rXtD8XtmrPL5/mUNHj1Neryyrqbac3GN5XL1dTEWjstNre1VJ3uGj3H5UwatnzR917tDL3sgIDl0Z6FRanj/iyJEj3Hg0MJzzuqaIwycvUFxZQ+3bNnrbm3lR++JnZfUxyT/FhRuFPKtuQJq731pfwYncfC5fv8+zZmXn9P5VFZfO36OlrZXbV8+Tn3+Vh1V1dHZ3UvrgOoeOnqSyWTl81dn4gvO5xzmWd5qqRuVDCeXFN7lSOChb0fWe6pdV3L1ymhMXbvG2v9N9+4TA0FQKG/o3DAR0+6tK8g8f4WxhFe1tb6h61URXx3tqn75UtqurkYunT5B34QFvOzt5/aJa3t7yrISbBdW8fVvPs6ZWut42U/tM2a63Ta+oblAKg5ryAi5fucqG2ASyLlQPVCy/e8+tS/kcPXXug18ba2ppkB9+6eZ5bS1Nbf0D7MpDnxXe5+a9ChqaG3jR59umV5W8fqvMtlUX3OTo4Vwu3ihhYOAP2lobeVxexMVTR7lWMiBk3z17wsnDR7nwUOnnV5VlPO6bz1hVWETdoInyb1/UUfrwDoePnKbseb+Y6qX8/jkOHz3OuYeVdPd2U1f5AmVotnH78mm5fa/6jOlpe0NZhTI91VLzlJqXAxnGD3DaXnEp7ygnzjzsa0Mnz17U0vzhgYoPe1L18ByHzlynrKaKlvdtdEp+qGlQPvzQ+ZZ7Z/LIu3SFx6Uv+zJevTy5e5kL1y6QGOHP7Z89stxQVcDRo8c4dVU5t7Kh+DbnbxTS/3yQXHNXC1dzc7lwr4AXVU10dndT/+qlPP+037JH965w6NhJyvomMT7KS2PD9mzO5J7i5qOfz0NTtq9FusT0vOfBubOU/ozL86IH3LhbTkNzI88blHlkpd+V16Wawluy3y/cKKWrt4faly9o6ufV2cjN88c5dPw0Bc9bkB50eVKlzCD32yteBYGvSUAIuK9JW9T15xForSR26zaKBo/9/ZHWtL9k+/pogrYf4UOy5Y8s/08uq7nyNomB7uScfars1L+iPY1l99menEpyagwxKTnUvPmlgPyK5oiqgLLbp0hKTSVREcv67CsfDan/OwEV560nO085r/TfWY8oWxAYCgSEgBsKXhI2/usEert58+4dnYOnI/3rpQ6U0N1GeUUlb/pW2hj44j/jXee7Bioqqz5+2OErNa3jTQOlBYU8LPrlsh5fyQRRzc8IvKl/RkFhAUUlNT9buuRnO/7BH7va3tH6YbmeP7hwUZwgMMQICAE3xBwmzBUEBAFBQBAQBAQBQUAIOBEDgoAgIAgIAoKAICAIDDECQsANMYcJcwUBQUAQEAQEAUFAEBACTsSAICAICAKCgCAgCAgCQ4yAEHBDzGHCXEFAEBAEBAFBQBAQBISAEzEgCAgCgoAgIAgIAoLAECMgBNwQc5gwVxAQBAQBQUAQEAQEASHgRAwIAoKAICAICAKCgCAwxAgIATfEHCbMFQQEAUFAEBAEBAFBQAg4EQOCgCAgCAgCgoAgIAgMMQJCwA0xhwlzBQFBQBAQBAQBalirHAAAHFRJREFUQUAQEAJOxIAgIAgIAoKAICAICAJDjIAQcEPMYcLcb4NA+d08FBExRMbEcObhc6CTyzev8qSx+08D8O55MRfyb9AGdHd109v7+0zp6e6mp6cXet5x5fIlnrZ0UnX/NIU1TR8VKNcB9DZXcvzmA973fPT1v/yh900Nx6/cp/V3lPvqUQE3rj0dsKG3jatXT1D0qn1g21d6V3blJgWP63+1tp7uLiTUn/v39MYtHhTXfW438b0gIAj8hQgIAfcXcoYwRRBQEujmUFYyflvPUPDwAslx8RRX17E2I4UT5V9fIPR7pavtLY31LfTwlqMJWTx4/vtsubZ9D/lXayQZSFNTI21dveRt9mbvjcr+qoBmDsZl86gZeHYZ5/TdtPwOoTWowF+87X12Daf4TF7/Dk1cemw/61LODyqzh6amV7zt+AK1NOioP+JtXtw6duc+/tWiLh6K59wTCeJv/7u8fjPZ+wt+eyfxrSAgCPylCAgB95dyhzBGEJAIdHN4/w72FEm5Lji0OZIbJdVsyd7E+VroeP2IzaGh+ChiufboHfS+59TWDXh6+JCQeY7unl5eFOUTEeJJePpR3tJNw8MLxPv6ExS/laevO+Rypf8qH15hz9lyoIXdaZspqO+iofguZ04/5n3DE9Jiw/Dw9SevrAUaSzl/6QylDy4xz9iWhRFZPHvXL1g6uXZ6B/dedMplnd5+gtdtndy6cJSUjAwCAnxYm/uArsbH+Iwbz9ilURTV1HHx8nkKXrVxNSecw3eqP9hVdfsI0wxsWZlylJeVdwlIiCItRYFLQDw3ayT7u7iVdwAv7wDit+XR2NlvBzQ+fsDxvTeQtlQVXGbfrWraa++QsyODjWmx+IUlUlTXAQ138V23l3f0UHH3GCGBPvj4xJH3oAHooexmLmGBPvgFbeL/b+++ftu60zSO5w/bm73eBeZqgc3FNGAHM9gkdhLHiS1Lsqzeuyyqd6tYXbZ6sSSr90YVqvdOySpW/y5IiZayRDAzmMmAx3oEKD/yJ5b3fN4XyINzyGT+8BJOPtCUEo+n2zO8H3uRmNb7qV44oamllr71M7YnavHz+hH/5LfsXdzWdfXRSlVmKI9+8iS9dpjTowOyEiL47vFTXqSVc3wOOyNdZEanEh7gQ2JJM+/ysvjhay/ejW3a56KxppDErCyev/AgpqKLc6D5ZSpljQucnxxQnB3D9498KOxc4GBjiIdf/htffhvLzP4F0501PHX3JOBlCWtncHWyQXFSEO5Bfng99KCozjYH+pGABIwioABnlE6pznskcEltfiRffutFWFgEpowmDj7uEZ+ZStfyFrkRvmTXj2BuqyA06jW7Z0dMWqaYGOsk6NkTprb3yYwKJbaij82tfS72zfg+86HZPEtXfhLROc32f/HbQPcmWklIzmdnc54f//zfxLSuMd76mrKuVT7ubWGZmOJ9aQovouuxLrcQFxfH7ukpWU/DaRjb4jafnFCY9APVU7azcpsk/RDH4sEp+fHPefaqk93VIQK9njLx8ZSmqDiy35g5uzgk1hRP7dwB3YX+Pwtw56erJD0O5/3CMRfrPTzw8GBgZYf2/EgCX7WybWnEzTueiRkLmXFR5LVNf5qPla46or2L7QFuuDEXn7JRDiZL+e7BE8yb+8w05RGV9paDrXG8kstYXx7F3zOMnqVddife4+MbzerJFWvLc0xMTZMd+5yUtlmmmvMITqjCarVSFuZHhKnt03vCIUnpcVSbF8iKCsNUNcjmppXzK8dpw1PqSxIxlb1na8fK+uo6rUXhBGQ1s7O7y9uscFLez7LSVMD3D5JY257D84+/J7V+gfn2bDzS3sLVOaaQ7/F63YvVuk5iXCiNS3v0pmZR9X6RrvIoArIbmJ7sw88rkam1fSoz3Cjq3+Hjcgvuz8MYssxQnGYit2WQ9wWppJf3YN3bIPXZj6RX3RreOTDdlIAEXFRAAc5FG6Oy7rPAJZUFJjySy+ntH8d+kutym5isdLrHJ3jh9YhvvSMIDfbFM6WI1a1lmksSCfJ7wZ+//5qu9TOONsaJCA3DlNPGmuU9v33wHb4hEQQGvCC4tB1HrOBklfQ0EzkV76krreJ1ei75KUUsnVywMt9P1MtY3L79jmeeb9ne6CA5KYkDoPBFIkPrd689nlCS5kaz7cooH8j2SGZp75DiggxKx2yX8D5SmO5F/8EVXYnpVLXZPm91SkJKCo0Lh3S9/nmAg12yPZKYPATWu3iWWYHtvNveSAmZpZWMNGfwvw/+QlBoFL7PPSnrtHwamNXuBhKCq+z3LR0lhFSOYzWXkVFccf2YgyES83NZnTfjnfYGc189gVGNN8//SFmGG12rhyz2vSY6woe/PPiaiLoxmt6kk9S3a3/cTF05cYnvb55jW47IyImnZOqIo7UxQkNCMWU2snVgO0dmO6G3S2TiS2rtPtdb5Uk/8m7RdsYSNoeaSMhqw9JWy6u0LvteU5EvffZLyK38lFUJVx9JfpVK49r181sqCykemKU3I4/aDgvloW5889ib4LAwfN1NTG6d0vTam5Z1OB1+xVdf/4HA0Cj8vLwob2wkOTqb97PX9fWkZ5NfYb5+Yf1TAhIwhIACnCHapCLvl8AFhTkmTO+Xbw/7fINgUwwty1aqs+PILm1neGSCDesJ03WvCAhOZ3RsEN/HD2id3GV6uIPekV7inkTS2j9EWkwM1W0jjJhn2Du+G7yu6Ek18dWzcNaOjymL+TN/9Gu2BxJTXAimqgH6y5J54lbK+moLsTHRfACKvYLJajBzdO64RHhBVU4QYfktjHbm881v3Vg8PCUv4yVZPbawtk9G3GN69i8ZSE0kMvUd1sM9Yk0vqZk7oC3b/f99Bs5KjlsQBd2LHC+857v4V/b3Xe/OJiariO35XsLCkukYHcU8u8LJp0QKH2Y6CH4eSOfAOCaPJ3i8HuF4toqfPHzoGxnjTUo8MSUdnOwM8Sg6n63NGSJ9/ChuG2Cw4Q0RCYUsr40RGfgjTYOTZMa441dtZq41F8+gVIaGxnn56BueRN39DNwhiWnR5HcvMD3SQd9IN9GPgmmz2LRsPxe0FCYREFFA7+AIo1ML9NWk8iwyn77+QQrSo6kZXmG+poSX0ddhsu6VG53bcDldy4OkMvtl3fTIFwTmtTA81Ey4bySD+8e8j0mgpGEOc2spUbnlDI+MMr1x/YWQhmw3TOWjWNf6iAqLp2lglFHLAgdnl7QkxxEWVcbweD9+f/oDSbXLTPXkk9o8fFOzFglIwJUFFOBcuTuq7Z4KXGIe6aVr9vpsjx3B9o3Nnk5mbae/PsySExOJj18EbzvnuTzd4XVaLEEhaeRXVrJzfMZA02s8vf0pax2xX0r8YOkkLjgE/+BEOi22z3jd/hyujFHROmTfGG+uoGH4OjiuDL4n2i8QU1oO797NcXSwQHdXJ7ZzRpsjDYSmFLFi+2zYzc/J9iypkf4k5RVQX9nH4dk5o4M9DK/YTqOdMNhTy9IRXG2MEpOQztjSJoND/cxYT1kcbmRs+effQl3qryE8s5KN9QXq+0ftZ+AOV4bpHLgOGJNtbwkICiQo8TVz1pszXfZaLhmszyfQN5Hi8nraZnexjr8hIsSb+IhYolMq2baVfbxMdcew/XKydbGHlxH+BIXlMrllC6UXtNfm4+sfS0puKc3ze3B5RkdJJkFBJkpLG+nvvxOwOaNvsJvprQ/0N+Tj6R3Am/Zxru5+VffyiKaMZF4EhFM+uILta7wNZdk89w4gv3HAflZ0Z3KMnq7rb7fOjDSwbPPanaGqf8JumJkdjW9cImFhIdTbXgOYae9hbGbfdkDUFMTg6x9EXEW7/bgOFnoxRWQycwCrw+8IDg7CPzbL/hnAq8sPVCWaCDOZeFP+DsvCIXNjtZT13Z7NvGmtFglIwAUFFOBcsCkqSQIS+OcKLHVkEpOR98990X/1q13tEZMUyZs7//WSf3UJej8JSMB1BBTgXKcXqkQCEviVBI6355manefuxeNf6a1+xZc9wzIzydL+3bONv+Lb6aUlIAGXFlCAc+n2qDgJSEACEpCABCTgLKAA52yiHQlIQAISkIAEJODSAgpwLt0eFScBCUhAAhKQgAScBRTgnE20IwEJSEACEpCABFxaQAHOpduj4iQgAQlIQAISkICzgAKcs4l2JCABCUhAAhKQgEsLKMC5dHtUnAQkIAEJSEACEnAWUIBzNtGOBCQgAQlIQAIScGmBL2z/qxf9ykAzoBnQDGgGNAOaAc2AcWbgi+rqavQrA82AZkAzoBnQDGgGNAPGmYEvlpaW0K8MNAOaAc2AZkAzoBnQDBhnBvQZOJe+wq3iJCABCUhAAhKQgLOAApyziXYkIAEJSEACEpCASwsowLl0e1ScBCQgAQlIQAIScBZQgHM20Y4EJCABCUhAAhJwaQEFOJduj4qTgAQkIAEJSEACzgIKcM4m2pGABCQgAQlIQAIuLaAA59LtUXESkIAEJCABCUjAWUABztlEOxKQgAQkIAEJSMClBRTgXLo9Kk4CEpCABCQgAQk4CyjAOZtoRwISkIAEJCABCbi0gAKcS7dHxUlAAhKQgAQkIAFnAQU4ZxPtSEACEpCABCQgAZcWUIBz6faoOAlIQAISkIAEJOAsoADnbKIdCUhAAhKQgAQk4NICCnAu3R4VJwEJSEACEpCABJwFFOCcTbQjAQlIQAISkIAEXFpAAc6l26PiJCABCUhAAhKQgLOAApyziXYkIAEJSEACEpCASwsowLl0e1ScBCQgAQlIQAIScBZQgHM20Y4EJCABCUhAAhJwaQEFOJduj4qTgAQkIAEJSEACzgIKcM4m2pGABCQgAQlIQAIuLaAA59LtUXESkIAEJCABCUjAWUABztlEOxKQgAQkIAEJSMClBRTgXLo9Kk4CEpCABCQgAQk4CyjAOZtoRwISkIAEJCABCbi0gAKcS7dHxUlAAhKQgAQkIAFnAQU4ZxPtSEACEpCABCQgAZcWUIBz6faoOAlIQAISkIAEJOAsoADnbKIdCUhAAhKQgAQk4NICCnAu3R4VJwEJSEACEpCABJwFFOCcTbQjgXsucM5Yaw1JCcmYEhKo6jT/0zzO92YpySmjvbOboeF5Tj9a6Rqb5ezveAfr+iw9lvW/4xn/2odenX3A3Glm//zvf9+9hTnGx1a5+vufqmdIQAL3TEAB7p41XIcrgb8usI3pWy/isiuprasi3Pc50bl9XPz1J/7VR7TlRJBW3M7s/CLr63scL7TxMDKPg7/6zNsHmFvyeJrTcbvxD95a6n9N/ej8P/gqt0+/PJgm9mEsU0e3e3/rrfnqUuIj67n8W5+gx0lAAvdWQAHu3rZeBy6BXxLYJNMrnYmdm79/mMMUFIblDJbaWslITCGuehBO9yiPi8bdI5DcqhF76NicHaC4poaM+GB80t+wf357LmltpI4//vtv+DGplrnZEQbNExwu9eNmKuUU2LK0EhnwnIDsKo6vrjjfmiTN34/g5AJWDm9fZ7qngsfhiSTGBeGXUcOBLe1cnTNcUYCPxwtyG67PGA72NZCQlEhF0zjnZ7vkpoTj+SKRgdXbZHXxYYnIR//Jf/zejfapPa5OtimKiuCZZxAFdeafBantyVHamiftKLPmHhptQMfLvKmvpTA7iadhSYxtncPZEsluySxcwOnKGDHhQXgFhNEytmkrlOnutwT6eBEeV8Ge/bDO6a/Nxj84kHDvANJS23UG7pdGU/sSkMAnAQW4TxS6IQEJXAtskfk8mf7FwxuQQ5KyY2ncPKYx2IcnUZXMbmxRnhpNdFoDZvMo0f6RvBs/Yvadif96EsrIrIWK7DBi3/R+Qj3ZnyfmG28qhjZY7npFXFYR1tVxPFMr2VkdIz4gnC7zOJW54WS3T9GU50lIbgOWuUU+HN6e/5trz+F37jGYpyd46f0t5UPrLPdUEBicxajZTGZYPEPLVl5FueOR0cLa1ibFGaGkNQwx1l5BQPRbHHnw6vyYpmw3/DOq2Tk8oighgtisZszjw0T4RtI44kixYKkpITak2n48zeWpBFTNwHYXv/3mW6oG5uhvzMY3uZTdgzUynmeyuLdKVqA3uc3DjA/V4u8Xw+TeGdMTY4yMmkkI8aBofIf19jKiXuYwaZkix+8HgpNaFeA+TY1uSEACvySgAPdLMtqXwL0VsAW4FIZWT64FzjdJjgnFfHROa2wqdf1WYAff+CT6968fMlWRTEHdMGPdZYQ0Ttk3T1Z7CEiuuRNGDin0TmbUCnvDRSTlV7C3asYro4bZoWp+9+VDgkLCcHd3I7BsmN3tEaIiXxBd2Mre8e2n5CY6SvEt7LG/x1hNCEUdE3SWRfObr9wJCQ7hO3dPKocWKSlOoXzGdnpum9A//Y4ffMIICPDB/Wkaa3euUZrrwsnpsAAbPI9PYez4+pjMxQm8qu6/vgNM170hJa7Zfr+3qYDI+jnY7MEjt/bmMZtEJhQyuzpDjk8OA6PdpISn8PHmr2l5aZSOWlkbKSci5AV//OYByd2ztOVnkddy/Zm+5cYaUk3NPzvz96kA3ZCABCRwR0AB7g6GbkpAAjaBLZJ+CKe6d561jUUKkkNJyOmz01T6x1LasgycUGAKI6Gwh9X1JXJSTDRZrMy25PAwrIDNjTUa0qN4WTZwh3SPzB+j6N2Anf5cYrOKsS4P8/hlKRtrI8SEx9A5Ms3M/DLHZ2csTVpYXTATGRpEVpftPa9/zK35PMlssd/pKfEmp22C2Z5yfCPyGLNMs7CyzfnVEUlpkeSOfAA+UpQQRWZjH1PTc2x8uEloN683Wh1MZEETBx8PyY4NJaVsgNX1BTITTdSbb78ssdbzluCAFFbWNoj3fErA2xnY7eOhRxjDGxtMvMsjML6c3cMVEn9MZnZ7kVQ/b94MLrC20EvMyyze97YQF+3LsGWW+NCnRHcuMFeZQ1BICesbG+T7PMAjpummMi0SkIAEfllAAe6XbfQXCdxTgY/Up8fz9CcPnvhF8Lpl6PpzZlwxWFFP38S23eX8wwI5AQE8cvclo2GEkyuwtOfztV8IUb5uBCeXcnB2+9k1OKYtv5a5fTic76S+rZej3SVe1dnOpl1gaS7B5+lzvIIiGN08YbwxHXc3D+Kzmtk/uf1K58pkFwVtN59F6yuleWINzo5pzIznmZsnoaYy9s7OaWurpWPp+vNuR2tDxIZ68JOnPxmt1891NPd0a5horzAaxnY4218iw9efR55+5Lwzc3LnTN3VxT7VmZF4PoslOT2f2okdLrf7+SHQn+gwb9wD47BsnsDVDvWvGrBdfP0w3UOg7wueefvRMrrJxfkBxZlRuHmEE5qQQe30PlenB1SaYnn+wpe01Bzq31nunLV0VKlVAhKQwM8FFOB+7qF7EpDAPyDQX5eKe9ngP/AKxnrqR0sjDxOLuLnYbKziVa0EJGBoAQU4Q7dPxUvAtQQ25oZpnlxzraJ+xWrOrQvUDYxzevdE46/4fnppCUhAAg4BBTiHhFYJSEACEpCABCRgEAEFOIM0SmVKQAISkIAEJCABh4ACnENCqwQkIAEJSEACEjCIgAKcQRqlMiUgAQlIQAISkIBDQAHOIaFVAhKQgAQkIAEJGERAAc4gjVKZEpCABCQgAQlIwCGgAOeQ0CoBCUhAAhKQgAQMIqAAZ5BGqUwJSEACEpCABCTgEFCAc0holYAEJCABCUhAAgYRUIAzSKNUpgQkIAEJSEACEnAIKMA5JLRKQAISkIAEJCABgwgowBmkUSpTAhKQgAQkIAEJOAQU4BwSWiUgAQlIQAISkIBBBBTgDNIolSkBCUhAAhKQgAQcAgpwDgmtEpCABCQgAQlIwCACCnAGaZTKlIAEJCABCUhAAg4BBTiHhFYJSEACEpCABCRgEAEFOIM0SmVKQAISkIAEJCABh4ACnENCqwQkIAEJSEACEjCIgAKcQRqlMiUgAQlIQAISkIBDQAHOIaFVAhKQgAQkIAEJGERAAc4gjVKZEpCABCQgAQlIwCGgAOeQ0CoBCUhAAhKQgAQMIqAAZ5BGqUwJSEACEpCABCTgEFCAc0holYAEJCABCUhAAgYRUIAzSKNUpgQkIAEJSEACEnAIKMA5JLRKQAISkIAEJCABgwgowBmkUSpTAhKQgAQkIAEJOAQU4BwSWiUgAQlIQAISkIBBBBTgDNIolSkBCUhAAhKQgAQcAgpwDgmtEpCABCQgAQlIwCACCnAGaZTKlIAEJCABCUhAAg4BBTiHhFYJSEACEpCABCRgEAEFOIM0SmVKQAISkIAEJCABh4ACnENCqwQkIAEJSEACEjCIgAKcQRqlMiUgAQlIQAISkIBDQAHOIaFVAhKQgAQkIAEJGERAAc4gjVKZEpCABCQgAQlIwCHwxeXlJfqVgWZAM6AZ0AxoBjQDmgHjzMAXVVVV6FcGmgHNgGZAM6AZ0AxoBowzA1+srKygXxloBjQDmgHNgGZAM6AZMM4M6DNwjovJWiUgAQlIQAISkIBBBBTgDNIolSkBCUhAAhKQgAQcAgpwDgmtEpCABCQgAQlIwCACCnAGaZTKlIAEJCABCUhAAg4BBTiHhFYJSEACEpCABCRgEAEFOIM0SmVKQAISkIAEJCABh4ACnENCqwQkIAEJSEACEjCIgAKcQRqlMiUgAQlIQAISkIBDQAHOIaFVAhKQgAQkIAEJGERAAc4gjVKZEpCABCQgAQlIwCGgAOeQ0CoBCUhAAhKQgAQMIqAAZ5BGqUwJSOBa4OISrq5uNWy3L+/cv/2LbklAAhL4fAUU4D7f3urIJPBZCow2wXfZsHd5fXgT3dA08Lcd6tVHmN762x6rR0lAAhJwZQEFOFfujmqTgAScBMZa4WEYFPde/2noHVS03zzsAiZmYcZ6fX9/D85sN69gYxtGu+F/MmF+9+bxWiQgAQkYVEABzqCNU9kSuK8Cfa3wtg3iCmB4H+Y6oaoLri6gowEyaiCxDJatMNQKdYMwMQYRVVBbC7+JgNrx+6qn45aABD4XAQW4z6WTOg4J3BOB3iaomoStaUiug4EuaOoH6yJ8lQBNU5BXBNGtwCkUF0JUPmxdwsUKBNXfEygdpgQk8FkLKMB91u3VwUng8xPoaYSS4evjqq6FF7HwbgR2FuHrdHg7CLUj0L8OnENpIfjl2m9yYAGv2s/PREckAQncPwEFuPvXcx2xBAwtYAtwxYM3h3AA3/tA0gBcnUPtW8hsgsJu2DmCd/XwegAGeiCmBU73wD8d6nQJ1dAzoOIlIAFQgNMUSEAChhI4OoC949uS96yweXR9//wYusehbQp2j2FjEz7a/hMjFzCzZl/YWoEJ29k5/UhAAhIwsIACnIGbp9IlIAEJSEACErifAgpw97PvOmoJSEACEpCABAwsoABn4OapdAlIQAISkIAE7qeAAtz97LuOWgISkIAEJCABAwsowBm4eSpdAhKQgAQkIIH7KaAAdz/7rqOWgAQkIAEJSMDAAgpwBm6eSpeABCQgAQlI4H4KKMDdz77rqCUgAQlIQAISMLCAApyBm6fSJSABCUhAAhK4nwIKcPez7zpqCUhAAhKQgAQMLKAAZ+DmqXQJSEACEpCABO6ngALc/ey7jloCEpCABCQgAQMLKMAZuHkqXQISkIAEJCCB+ymgAHc/+66jloAEJCABCUjAwAIKcAZunkqXgAQkIAEJSOB+Cvwf0ypY5OUN/C0AAAAASUVORK5CYII=" title="Figure 6: Uploading training data." /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; text-align: left;">Figure
6: Uploading training data.</span></p></div><p style="margin: 0in;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><img alt="Figure 7: Choosing hyperparameters for building random forest." src="data:image/png;base64,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0dIAyV7P8QqO8gSNXTvZPr488A6ketDpblt7Sy31dlcwu2DY2M74zD4XB5NERcehaxukq9TCzNYmXfo6Rt1T0vv0dzUytgVnu8NkRj7ixosoDAPL7vPxbLGXSP+nBCu01FS3srw2R256BHceBFPVPv/W+TXbnE5GWRcX59u0FLazcdm04TodJeYxHJNNhPs+5v7jcKoHXIY76DKjeRSSiUrhh6ZtFtc62lf/R5wfYCpI5e79RzxNK2V6dYWqdH9uvQhBP7DK+Uo/Qf4veeabztDyGaujRup6Pef3SH0eDx8/JTS2io0TOHaOU6trxc25NkpD9winu5Okh2Qx4Pol53yDhrIcRtwL967+lcvfIvDhBCTAfThLKek7Fjja3WDRsYxjspuwkBDMg78zXPEd108O/wEETtfJSgnHMPHnsa5ovrmckHQjO1eDjB+A6M+qiNNVMpLDqZl6v3/LR7ubOJccOOf6ifUJonrU85UefyqTjkIlcSVdry7g+lMdV47zaQpIgPs0+/3PstXTLXqePH7M7ce+ZFtGXn3dxZ9lYz/hRp0c77Bz9OeReI4P9tk7eD1i9gl369c2/eRoh9337O+59kp8Hzzizj1vlFWjnL0eLP7a8j/cGxfs7+5z+HqFwYcrWkoSgXcISIB7B4psEgEREAEREAEREIHrLCAB7jr3jtRNBERABERABERABN4hIAHuHSiySQREQAREQAREQASus4AEuOvcO1I3ERABERABERABEXiHgAS4d6DIJhEQAREQAREQARG4zgIS4K5z70jdREAEREAEREAEROAdAhLg3oEim0RABERABERABETgOgtIgLvOvSN1EwEREAEREAEREIF3CEiAeweKbBIBERABERABERCB6ywgAe46947UTQREQAREQAREQATeISAB7h0oskkEREAEREAEREAErrOABLjr3DtSNxEQAREQAREQARF4h4AEuHegyCYR+NQEOieg0AKto3DxDTcAP9910ts8zsG3BDrbmKS6pZlN133bt8ZR5RVhtrVQ3zXK0bcp6+KY3o4aOhb2vs2n3tp3aWkJm81Gd3c3BwfftiVvFfVHvxjtNWGzb/zR5UgBIiACn56ABLhPr8+lxSLwSuDkFPQ2yKiGrBrP33mNcHTi2WV9voP4x8/44sYjItIbWZxuJvjzDBZflfCeT/acdI+OcQj0Z2YQ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" title="Figure 7: Choosing hyperparameters for building random forest." /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span style="font-size: 14.6667px; line-height: 107%;"><font face="">Figure 7: Choosing hyperparameters for building random forest.</font></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span style="font-size: 14.6667px; line-height: 107%;"><font face=""><br /></font></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"><o:p><span style="font-size: 14.6667px; line-height: 107%;"></span></o:p></p><p style="margin: 0in;">Once this random forest is built
(trained) with historical data, it is ready for your live trading. You can just
plug in the latest values for VIX, 1-day SPY, and any other features into a new
spreadsheet like this:<o:p></o:p></p><p style="margin: 0in;"><br /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><img alt="Figure 8: Live trading input" src="data:image/png;base64,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" title="Figure 8: Live trading input" /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><br /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
8: Live trading input.</span></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span></p><p style="margin: 0in;">Notice that the format of this
spreadsheet is the same as the training data, except that there is no known
Return of course - we are hoping to predict that! You can upload this to <a href="https://predictnow.ai/" target="_blank">predictnow.ai</a> together with the model you
just trained, press PREDICT, <o:p></o:p></p><p style="margin: 0in;"><br /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><img alt="" src="data:image/png;base64,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" /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
9: Live prediction.</span></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">and
voila! You can now download the random forest's prediction of whether that
trade will be profitable, and with what<b> conditional probability</b>.
</span></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></p><p style="margin: 0in 0in 0.0001pt; text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkkmd0dHN6BKl6UhrlhV_PqVqkepiwopFmFT9SliuZ0o5V2ppx9I0FEkhxuAN7iMTmhTmfUBygdcIkTEHifYnVCCpMW6YiE7-ufQOuohx6yj3R34XKZFUBNVeQ-_23EypaWOE0fA/s124/Figure+10.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="76" data-original-width="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkkmd0dHN6BKl6UhrlhV_PqVqkepiwopFmFT9SliuZ0o5V2ppx9I0FEkhxuAN7iMTmhTmfUBygdcIkTEHifYnVCCpMW6YiE7-ufQOuohx6yj3R34XKZFUBNVeQ-_23EypaWOE0fA/s0/Figure+10.PNG" /></a><img alt="" src="data:image/png;base64,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" style="text-align: left;" /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt;">Figure
10: Live prediction, with probability.</span></div><div class="separator" style="clear: both; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt;"><br /></span></div><p></p><p style="margin: 0in;">One of the output files (left in
Figure 10) tells you the most likely outcome of your trade: profit or not. The
other file (right one in Figure 10) tells you the probability of that outcome. <b>You
can use that probability to size your trade.</b> For example, you may decide
that if the probability of profit is higher than 0.6, you will buy $10K of
TSLA. But if the probability is between 0.51 and 0.6, you will only buy $5K,
while if the probability is lower than 0.51, you won’t buy at all.<o:p></o:p></p><div class="separator" style="clear: both;">
<p style="margin: 0in;"><o:p> </o:p></p>
<p style="margin: 0in;">Typically the live prediction will
take 1 second or less, while the training (which may not need to be re-done
more than once a quarter) typically won't take more than 15 minutes even for
thousands of rows of historical data with 100 features<span style="background-color: white;">. <span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">You can make live predictions as frequently as you
like (<i>i.e.</i> as frequently as your input changes), but if you are a high
frequency trader, you would want to use our API so that our predictions can be
seamlessly integrated with your trading system.</span></span><o:p></o:p></p><p style="margin: 0in;"><span style="background-color: white;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"><br /></span></span></p><p style="margin: 0in;">But predicting the conditional
probability of profit for your next trade is not all that we can do. We can
also tell you what features are important in making that prediction. In fact,
you may be more interested in that than a black-box prediction, because this
list of important features, sorted in decreasing order of importance, may help
you improve your underlying simple trading strategy. In other words, it can help
improves your intuition about what works with your strategy, so you can change
your trading rules.<o:p></o:p></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in;">
</p><p style="margin: 0in;">Going back to our example, <a href="https://predictnow.ai/" target="_blank">predictnow.ai</a> can generate such a graph for
you: </p><p style="margin: 0in;"><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_-b7RtfTgYzntAxTusbKQtL7yl4D0J4vC_GX5Yzgpyc3Fx53-UH5M3PLQLUDnJVWh1n05noSPYWf40nkUoD2Pk6DWbbABLOJyr_Dtefa6-PXYZM9syIpL291fPZrIZoqPCxgdw/s767/fake_features+%2528cropped%2529.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="767" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_-b7RtfTgYzntAxTusbKQtL7yl4D0J4vC_GX5Yzgpyc3Fx53-UH5M3PLQLUDnJVWh1n05noSPYWf40nkUoD2Pk6DWbbABLOJyr_Dtefa6-PXYZM9syIpL291fPZrIZoqPCxgdw/s640/fake_features+%2528cropped%2529.png" width="640" /></a></div><p style="margin: 0in;"><br /></p><p style="margin: 0in;"><br /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;">Figure 11: Features with decreasing importance</p><p style="margin: 0in;"><br /></p><p style="margin: 0in;">You can see that VIX was deemed the most
important feature, followed by 1-day SPY return, the latest interest rate
change, and so on. Our internal predictive algorithm will actually remove all
features that are "below average" and retrain the model, but you may
benefit from incorporating just VIX and 1-day SPY return in your simple
strategy when it generates a trading signal. Remember, your simple strategy
does not need to be an algorithmic strategy. It could be discretionary.</p><p style="margin: 0in;"><o:p></o:p></p>
<p style="margin: 0in;"><o:p> </o:p></p></div><p style="margin: 0in;">(For the machine learning <span style="background-color: white;">mavens </span>among you, we use SHAP for feature selection, as discussed in our <a href="https://arxiv.org/abs/2005.12483" target="_blank">paper</a>.)<o:p></o:p></p><p style="margin: 0in;"><br /></p><p style="margin: 0in;">You may wonder why our predictive service is restricted to only taking your strategy’s historical or live trades as input and predicting their probabilities of profit. Why can’t it be used directly to predict the market’s return? Of course it can: you only need to pretend that your strategy is buy-and-holding the market. It can even predict the magnitude, not just the sign, of the return. But as we all know, it is very hard to predict the market’s movement, because of low signal-to-noise ratio. Your own strategy, however, has presumably found a way to filter out those noise, and machine learning prediction is more likely to succeed in telling you what “regime” is favorable/unfavorable to your strategy, and with what probability. Another usage of our service is to use it to predict numbers that are not subject to arbitrage, things such as a company’s earning surprise, credit rating change, or the US nonfarm payroll surprise (as we have already <a href="https://epchan.blogspot.com/2019/12/us-nonfarm-employment-prediction-using.html" target="_blank">done</a> successfully). In these usages, there are no adversaries (your fellow traders) that are trying their hardest to arbitrage away your trading alpha, so these predictions will be more likely to work far into the future. </p><p style="margin: 0in;"><br /></p><p style="margin: 0in;"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">(For machine learning mavens, you may
wonder why we have only implemented random forest learning algorithm. The
beauty of random forest is that it is simple, but not too simple. Complicated
deep learning algorithms such as LSTM can indeed take into account the time series
dependence of the features and labels more readily, but they run serious risk
of data snooping due to the large number of parameters to fit. GPT-3, the
latest and hottest deep learning algorithm for natural language processing, for
example, has more than 175 <i>billion</i> parameters to fit. Imagine fitting
that to 1,000 historical trades!)</span><o:p></o:p></p><p style="margin: 0in;"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"><br /></span></p><p style="margin: 0in;">So does this stuff really work? We
have implemented this machine learning system for our <a href="http://www.qtscm.com/accounts" target="_blank">Tail Reaper strategy</a> in our fund
around the August of 2019. Yes, the 64% YTD return as of June 2020 (net of 25%
incentive fee!) is nice, but what's more amazing is that the machine learning
program told us to not enter any trade (due to the low conditional probability
of profit) from Nov 2019 - Jan 2020. In retrospect, that made sense because
Tail Reaper is a crisis alpha, tail hedge strategy. There was no crisis, no
tail movement, from which to reap profits in those calm months. But suddenly,
starting on February 1, 2020, this machine learning program told us to expect a
crisis. We thought the machine learning program was nuts - there were just a
handful of Covid-19 cases in the US at that time! Nonetheless we followed its
advice and restarted Tail Reaper. It went on to capture over 12% return later
that month, and the rest is history.<font size="2"> <font face="inherit"><i>(Past
performance is not necessarily indicative of future results. For detailed
disclosure of this strategy, please visit qtscm.com.)</i></font></font><i><o:p></o:p></i></p><p style="margin: 0in;"><font size="2"><br /></font></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><img alt="Figure 12: Tail Reaper equity curve" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP8AAADLCAYAAACh40VxAAAgAElEQVR4Ae19B3hUVfr+uLs/V13Xdd21N9yVXXV9dt21rrqKivq3oCC99w7BEAg9QAClIx3pHaSXkN47gYQESAyEkISWRkgjPeT9P+/BO8ykTCZhJiST7zxPMree8p77nvOd75x7Xx0kCAKCQLNEQNcsSy2FFgQEAQj55SGwCgIVFRVWiVcitRwCQn7LYWn1mPz9/fHpp5/i888/1/8lJycbpZuYmAh7e3ukpKRg0KBBuHbtmjpfXl6OwYMHq/s/+eQTdO/eHT///LPRvZbcCQsLQ+/evZGbm6ui/fHHHzFjxgy1zTyyDAEBAWp/z549+PjjjxEYGKj2Bw4ciP79+6vtCRMmYPv27Wpb/lkWASG/ZfG0amyZmZkICQnBO++8g06dOqnt/Px8+Pn5YePGjWBDkJqairlz5yIuLg6PPvoorly5ovJUUlKChx9+GLNnz8bp06fx4YcfKgLyZHx8PDZs2KDu5f7JkyfVfkREhLqX1x89ehQ//fQTmB4D42eaGRkZaj8qKgqurq7qXh5IT0/Hgw8+CBcXF3X+pZdewoIFC9T2pEmToNPp0K1bN7U/c+ZMtT9x4kR1H8+1aNECtB7eeOMN8HoJlkdAyG95TK0eY8+ePTF9+nSVDonatm1btGnTBh988AGCgoLw/vvvK4I///zzekKXlpbiL3/5i+qN161bh/feew9Tp05VxCfBOnbsqKwCEn3AgAGKmC1btkR4eDheffVVdY6NDnvz48eP480331T3fPXVV2r/kUceweuvv45Dhw7py9+jRw8V15kzZxSZ09LScP36dXXv0qVL8fLLL+Pq1auqsXr66afBHn/NmjV48sknlSXAPLdq1UpfVn3EsmERBIT8FoGxYSPp2rWrvjdkbz9nzhwMGzYM//jHP7B37178+9//xqlTp0Dy0hJgIJH++te/KhI/9dRTynrg8VmzZoHEW7hwIf71r39h37592LZtG5ycnPDMM89g165diqQxMTHIysoCe/B27drhxRdfVD05Cb98+XI8++yzuHjxohEQR44cUfeyMencubM6t3//ftx3330q3YceekjdO3/+fLRv3141YG+99ZZqYDg0EfIbwWnxHYuTXxw9Fq+jKhGSfGPHjlXHp0yZgtdee02R6IUXXsDu3bsVQUnWJ554wsjs//Of/wwPDw9wzP3AAw+oa2nuk+SbNm0C41qxYoXqpbds2aIaC5r6//znP7Fs2TIcOHAAr7zyikr773//uzL7aZK7u7vj8ccfR3Z2tlFeOdRgnmjGM10+G61bt1YWAv0Pn332mbICOL5nA2FnZ6euXbVqFdgIkPxi9htBatGdepOfFWlIdG3f8JhFcyqR6RGgE4y9LQOJR2cZidOlSxccPHgQvXr1wrlz59RwgGY1A4n05ZdfwsvLS+0vWbIEX3/9tRqz02rgvY6OjmoYwMaFxzicoDOOZj/v5bCCQwaO+2mi857x48ertDjs0Jx7KoFf/n3//ffKdGdDQD8AHZYcWjDk5eWhQ4cOavjA8hw+fFhZAHQWskEoKytT6axevdowStm2EAJG5K9M3Bs3bhglU/m80UnZuWMIsJ7ozb+dUFhYaHR7cXGx2icB6SgMDg42Os+dyvdUuaDSgcrPU6XTstvACBiRn2lziojOGG0Kic4db29v1QrzPKeHOJaj44aB3ufo6Gi1zX/cDg0N1e/LRtNGgA0+e3/ONEiwLQSMyM8xG805TgOxAWBrT+8uTTCaZRcuXFD7Q4cOBadnOLVD048OqISEBNUwcJ/TUDRHJQgCgkDjRcCI/Byzkbycf+X88OXLl5GTk4O1a9fCwcFBeXs5bqMl0K9fPzVGpBVAZxAXcXA8uHLlSuUYGjNmjL7UHCPSicM/TuXU9sc42PjUdp2lzjd0esw3y8d0LVWG2uJh/XCcX9t1ljzP54IOREvGaSou+gZYRv6aus6S59gp8s+ScZqKi3gSV1PXVHdu0aJFel+LRkwj8tPEozOG0y4kN8d9nOdl73/p0iV1D+dsOc8cGxur5om5wISNAxdwkNz0Ent6emL48OFaGsqJxMUlHEpwWFHbH+eKaVnUdp2lztMTzXlzS8VnTjycY2e65lxriWu4YIczBJaIy9w4+MDt2LGjwdKk9clOytznzNxymLqOsyUko6lrLHmO07A//PBDndPj0I11YRiMyM/VWpMnT8aIESOU+c9pHs7r0rvMqSPO43IOmcMAPkwk/OjRo9WyUV9fX2Xqc8qGx9gaaoENxubNm7XdWn+ZD6bXUIFLYA39Fg2R7okTJ/RLbxsiPTbkXKXXkIH+IVqPDRnYWTVkYENz9uzZBkuSnTBXZNY1REZGqjUghvcZkZ89Pxd1cNUWx/tcLcYll+yluDiDC0fYOEybNk0t/+SKLS4lpSnCe+kZZivIXt5wzpfkZwspQRAQBO4MAmz4uQDMMBiRXzvBOWFLBiG/JdGUuASBuiNgNvnrHrXpO4T8pvGRs4KAtREQ8lsbYYlfEGikCAj5G2nFSLYEAWsjIOS3NsISvyDQSBGIPn4Urgf2GOWuWoef0RUW2JExvwVAlCgEgdtAYNTOKLw92xOGX1cT8t8GoHKrINBUEGi9+iSemXVUyN9UKkzyKQhYAoEL14rw2PhArIlIN4pOen4jOGRHELA9BI7E50DXYT12e4UYFU7IbwSH7AgCtodA261noftoNg7s+cmocEJ+IzhkRxCwLQSSrhXh2RkReNthE9wPHzAqnJDfCA7ZEQRsC4GIi3nQDfOD8xY3+Lvd+rIySynkt626ltI0YwTKblRgWfBF7DuZgZLyGziTUYBeG06i5bwohIcfxcH9+4zQEfIbwSE7gkDTRWB9xBXoertAN8IT943zw+8d/fC70T74ISQV0ZHHsM+ct/osXXxZ5GNpRCU+QaAqAgv8U6Ab7I7vvJPRaV0M3OOuIi2/RF0oy3ur4iVHBAGbQWCubwqeGO+PnKKyKmUS8leBRA4IAraDgJPbebTfdKraAgn5q4VFDgoCtoHAVPfz+Gpd9Z+/E/LbRh1LKQSBahEQ8lcLixwUBGwfge99ktFGen7br2gpoSBgiEBpeQVeWRCBTptlzG+Ii2wLAjaPQGHpDejsfdB9200R1MoFljF/ZURkXxCwEQSKSm/gt45+6Lb1NsmvKbRaChdZ5GMpJCUeQaB6BG6b/Joi6xdffKGUWbOyskB9dWqwk8AMW7duVZJISUlJSqedgh6UZaJgB7/3TxUfinpouvC8h/du2rSp+lzLUUFAELhtBGojf62KPVTg+fLLL5UcF+W3+Ldw4ULMmzdPEZ7yS9TpoyKPk5OTUuphw0DVXop3UnuO2+PGjVNClFqJqKG2ePFiJf4pGu0aKvIrCFgOAVPkZydO/UuTij0kJnv69957D15eXvqcUfxQE+BkT5+YmIhevXopolPWqzqhTur9aYHS3mwUqJ5aUFCgHZZfQUAQsBACpsjv6uoKOzs77Ntn4q0+SmlHRUUpfb62bduCPfasWbMwadIklUWq77IhoMjkwIEDYW9vD0p0UxZZk+imbh8T4XVaoLAghwsSBAFBwDoImCI/Uzx58qTpnj8nJ0eRulWrVnB2dsb69evRokUL1ctTaJPquX379kWHDh1AqWB/f38l5921a1ecP38eHBZ06tQJHTt2NLIcxOFnnQqXWAUBDQGN/F1vx9ufmpqKVatWgQ2BJpVNOW5aAQxXrlxRUs/l5eVqn1LahhLFJDpbGcMg5DdEQ7YFAcsjQPLf7egni3wsD63EKAg0bgTyi8vxxLRgeJ7JqjajssinWljkoCDQ9BHIKy5Hi5khSLxaWG1hhPzVwiIHBYGmjwDJ/+yMEMSlXa+2MEL+amGRg4JA00dAyN/061BKIAjUCwF+ufe5WaGIlZ6/XvjJTYJAk0XgwOlM3O/gi4RMGfM32UqUjAsC9UFgkmui+nJvUlZRtbfLmL9aWOSgIND0EZjplQTdUA+cF/I3/cqUEggCdUFAyF8XtORaQcCGEBDy21BlSlEEgbogIOSvC1pyrSBgQwgI+W2oMqUogkBdEBDy1wUtuVYQsCEEZnknQTfQDeeuylSfDVWrFEUQqB2BaR7n8eh4f6Tm3VTlrXyHzPNXRkT2BQEbQcDhUAJ6bIutsTRC/hqhkROCQNNGYMyhBHTZXP03+1kyIX/Trl/JvSBQIwJC/hqhkROCgG0jMN7lnPT8tl3FUjpBoCoCNyqAwbvj0XWLmP1V0ZEjgoANI5BbVIZfj/HFwF0/11hKGfPXCI2cEASaLgIkv87eW8jfdKtQci4I1A8BRf7RPrdP/uvXr8Pd3R381QJFNzWNvezsbFCBRwsXL15U3/fX9vmtfx4zDPLdfkM0ZFsQsCwCFiE/CU+Rzbfeektp9pWUlGD79u1KgYfkT09Px7BhwzBkyBAlv0XZrs6dO6NPnz6g2MelS5eUug+PcYyhBTYWO3bs0HblVxAQBCyIgDnkj4uLMy3XxR6+TZs2GDRoEC5fvgwKbPbr1w/U7SP5k5OTlZzXd999p9R7Z86cqWS75syZg82bNysxTyr6UtRT0/djGXnfmDFjsH//fhQVVb/22IJYSFSCQLNCoDbyh4SEYNq0aaaFOolYUFAQPvroI0XevLw81QiwZy8rKwMlvNkw8G/p0qWYPHmyun7dunVKxnvlypWqMaDCLy0ELVDHb/r06QgLC0Npaal2WH4FAUHAAgjURn5qaJKbJlV6MzMzQZVdkppinOyxaeq3b99eZdHDw0NJbbMloWAne/f58+fD0dERBw4cUGbF2LFjQUuAUt9aoNlPYU8JgoAgYHkEaiM/U6xVpZe9Msn89ttvqzE9xTjpwKNMN3t+SnjPmDEDAwYMUCq8HOMPHz4cEyZMQGFhoTpPn8GIESOQkpKiL6U4/PRQyIYgYHEEFPntfdBruwVe7CGpLRmE/JZEU+ISBIwRyCksw91j/TDV/bzxCYM9WeRjAIZsCgK2gsDV66V4xjkYKddqdqYL+W2ltqUcgoABAiT/087BOF+DQi8vFfIbACabgoCtIKCRvyZ5bpZTyG8rtS3lEAQMECgoKcezM0NwTnp+A1RkUxBoBggcOJWBBxz9ZMzfDOpaiigIGCFgf+Cs0um7nFNsdNxwR8x+QzRkWxCwEQQmHjkH3XBPXBLy20iNSjEEATMREPKbCZRcJgjYGgJCflurUSmPIGAmAkJ+M4GSywQBW0NAyG9rNSrlEQTMREDIbyZQcpkgYGsICPltrUalPIKAmQhMcj0H3WB3XMiWeX4zIZPLBAHbQGDU/jNotfQ4Cktv1FggWeRTIzRyQhBouggM2R2PIXtufVG7upII+atDRY4JAk0cgaF74tF3Z5zJUgj5TcIjJwWBponAiH1nhPxNs+ok14JA/RGoqAD674xDP+n56w+i3CkINEUEsgpKcY+DD77df9Zk9sXsNwmPnBQEmh4CGddLoRvhCb7WayoI+U2hI+cEgSaIQCbJb+cl5G+CdSdZFgRuCwFF/pGeGLrbAlN9FOqIiooCf7VAQQ5NpZfHKNulhdzcXCXYoe3zWh4zDPxu/8aNGw0PybYgIAhYAIGM/FLcO9YXK4JNa21ERESYFuqkiCbFN9944w2lvccGwNPTU4l1Us2Hf3PnzlX7W7duBTXAevbsqVR7r127Bgp9Dh48WB07ffq0vmgkP/X8DBsU/UnZEAQaAIHYtOtwi89qgJQaNomM/BL18U5+wbemwI47NDTUNPkpzfX5558rkU2Ka1Jyq2vXruoYI46MjFQqvpTbZktC6a4ff/xRiXDu3LkT/HN2dsaqVavUMS0zVPsdOHAgli1bBsqASxAEGhqB4XvPQNfPFdGX862SdFx6AUKSc6wSt6lI5/ul4LcOPqAFUFM4dOiQ6qCpkm0YdIY73HZxccG7776rNPuozZeQkKBEOXmO6ruffvqp0u6jTDdlt4ODg1WvTmnumlR6peevjLLsNyQCJWU30H1rLHTdD2GKW82SVvXNU3BSDn4z0gt3O/jgWkHNJKxv/Kbu41hfN8wD9PrXFMzq+Wm2s/emnHa7du2QlJSkhDo7deqEiooK1dtTvZfmfo8ePTBq1CisWbNGaX/zPloE1AGn0i9/tSBjfg0J+b0TCFzJLcZdDr7Q9T+Cf80/iuslt/xZt5sfEv/eUV54bFIAHvjWGxNcE283yjrdz9V9f57oj+zCMpP3mTXmnzJlCl577TUsX74cJSUlSE1NVRLc3OaYnz6BLl26YNeuXSCpe/furZR66eRj4zFkyBD06dNHNRBabnjdhg0btF35FQQaFIGjKbl4yjkYHTeehM7OGydT6zf0TMwqRHzarXtdTmfirqEeeGF6sOp5Rx9MwF323rjagL3/oD3x4JCmtmD2PD+1vE0Fw3E7GwXDmQA69dhIGAYhvyEast3QCPCll3vH+SE1rxS6kV5wOJxQ5yxcKyzDw5MCoOvvirbrY/Dh8ij1Dr3D3jO4lFui4kvKKsJvR3pivOu5OsdfnxvY27ecEQLHw7WnZzb565MRU/cI+U2hI+esjcDA3fH4w6QAZe5/tjoaL88KBTXt6xKmuCfiN8M94eSWiBYzQ3CfnRcWBVyoEoXdvjPQ9T2CrVG3psOrXGShAxeyi6Ab5I4pbrUPNYT8FgJdomk6CHAK7O/OIeCnrhiWBl9UXv9zWYVmF+J6yQ21im7QrpsLacpvVID6eNUF9sYfr4hSS27t9sTjbGYB0nJLUGDiQxvVxWPOMSr06IZ6wOFg7ZaMkN8cROUam0KAmvW6AW5YEnSzl+aLMPeN88NL04OxKyYdecXl6o9m/bqjV+Dkcg5OhxMQkJgNXns5txgfLI3ES7NCTXrUK4O2OyoNv7bzwuNOgXh0rB/6bI/DDb6CZ8FwMbsYfxjnh8OnM2uNVchfK0Ryga0hsCbsMv40OdBoCs49Pgvvzj+qzPO7RvuAf484BUFn76N6Ut0QD9w/wR9PO4fgialBqhc/FFs7wSpjR8ffpexizPA4j18PdsepK5ZdY3AmowDPzgip0QoxzI+Q3xAN2W4WCLRZGwOdgy9oqlcOEw4loO/WWPTdFgvvs9eQfK1IfQTzQk4xzmcVIiHz5h97/9sJtCjoKPzZYKaguvjqahnwTb5fj/FFjhn+CyF/dYjLMZtGoP2Gk3hr8XGUVUP+hio4yfm4UxBWhNS8/j6/pBzPOwdjvn9VJ2JN+eyzIw66kZ5C/poAkuPNF4GzGQW4384Lq8Mu33EQHpgYgP8ti6wxH74J19TU4e8cfHH8Yl6N1xme6L0jDi/MDkdhafXOR8Nrpec3REO2bR6BmMv50PU5goUBKXe8rO8sjcQnq0/UmA8u1LlrmCf+5OCLT1aegDm+wS5bTsPJzOXKQv4aoZcTtojAicv5uNfOCwdOZdzx4m2PSsMDdl44Vc3qwqLSG2i9PBIj95/FvlMZ0A10Q2Bitsk85xWX4c+OvpjhmWTyOu2kkF9DQn6bBQJRl/LR8vuwRlHW9RFXoOvlgogLxt+6YOa4MpDTkbN9klVe/zY7DHcP88TwfWcQdD4HQeezq/ztiEpTTkQhf6OoXslEY0OA3vDHpgbhDvr69JBwTv6JyQHYGpmqP6ZtpOaV4J5R3lgVetM3kZRViHcXHcP9jn5q2MKZgip//W4e23isanxavIa/0vMboiHbNo/ARyui8PsJ/maNnxsCjMenBeOtxceqJPW9d7J696CgkuPuYnYRdh5Lxc4T6VX/ItNwOPZqlbhqOiDkrwkZOW6TCHy5NgbPzwptNOQfue8M/re8qse/65bTeGhyIDj2t1YQ8lsLWYm30SFQUn4D7yw+hkV1mDe3diH2nszAw2N8cclg0VBafgmecwrCLO+b431r5UHIby1kJd5Gh8DxC7n41UA3bIi40mjydiTuKnRdDmLAjlu6emczC9W4/nsf605HCvkbzWNgGxlJv16KD5ZFYvC2WLj/bP74syFKH5GSC10fF5Or6hoiH4ZpcJXhmrBLeGpSANqvjELEhTwwn/c7+CivvuG1lt4W8lsa0WYSX2HZDVReGc9PYf1ndjjuGe2D52eGqPfK+fbb9z7JSM8vwfXi2ledWRO+0KQcPDTW/NVy1sxL5bjjMwrx+MQA/Gm8P56aEoR/zDta+RKL7wv5LQ6p7Ud4LrMQj00MwMvfhYFj1tLyCvU3zy9FzU0Hns9GSXkFNkdcwcszQ9UClV85+OI3o7zx2rxw7L9DC2w8z2ThxbnhjbaCuJb/QlYRkrOKwM9vWzsI+a2NsI3Fz7fMOm0+hWcnB+L9pZHqddf7x/uDf/xaTY/tsUYlLr1RgbPpBRi25wx6bjmN1xdGqAbi1bnhOGjGO+dGkd3mTtv1J/G0c/BtxmI7twv5bacuG6Qk9Jjr7L3R+xf55wMx6fhmTbT6s99/ptrXZA0zxqHCvuh0vDYnHLoBrnh1YQQ2H0+t/i/8MvihTUuFd5dGqvf4LRVfU49HyN/Ua7CB8789KhW6Ie7qqza3m/T+mHT8Z95R6PodqbpajSvY+h5Rb7VNruHT13zTbU9UGvbEZNT8F5WGkKSbwhmtVkTho5VRt5ttm7lfyG8zVWm5gkRdzkfH9Sfx4vRg/PeHY/A+c00f+TcbTuK9xcctukgmPCkH4cm5CE+p+rfQNwX3fusNfmnHMLjEXlXCFLreLtU3HNry1z5H1Lf2XpgdBn6NZ1d0umE0zXpbyN+Mq5+LSN74LhRhBqY1nXG6QW54YlIg7A+exasLIpTDrvWySPCNOI7trb34pHKVvLH4mPItcA28T8I19N56Gvfb+6Dd2mj4ncuG37lrJv6y4XX2Gr5aF4O2a2NABVsJNxEwi/wU2Jw8eTJiYmLUXfwmf1BQEMrKbn3qODY2FmfPnlXnqQPm7++vx9jX1xeHDx82EuWMj4/Htm3b9NfIRsMhkFFQiumHE/DgWD88ZO+Dd3+4ubb8YGymItVCzySjL8H8FJ2Gexx8cK+9N+5x9MOlnNv7hFVdS8qv7f5nbjh0PQ7rX2ppDB/jqGs5Gtv11OLYu3evUbaMtPqysrKUDNcXX3yhRDWpvOvo6IhWrVop9R7emZ6erlR8Kc3l4eGBbt26qb9Tp07hxIkTSs2ne/fuRglR9JMSYGFhYVUEPYxyIzsWRSAluwhPTwrAb0Z44sSlfPX12fscfPDh0uPQDffAl2uiq00vPqMAvTedQq/tsVZdb15t4gAyC0pvju+j0mp9r72mOOT4LQQor0cdzX379t06CMCI/FTi6devH7755htQWTctLQ2zZ88GyVxcXKyUeai026ZNG+zZswcU63Rzc1OqvJT3om7f2rVrceTIEdjb2+sTSk5OVqKeVAmlDLgE6yOwwP8CnpwQgL9OCUS4wTvks32Toet8EG8ujGhQWSnrl1hSqAmBkJAQpZ1pkvyU2qK6Tq9evZQ0N7X3cnJy1D4jPnjwINq3b6+0+WgR8I8mP0m/aNEi1Qhs2rRJWQQjRozQ54VmPy0FCQ2DAD/woOt2CL23x+LWYO1W2rtOpNXpG/S37pStpopAXFyckTXOchj1/JmZmfj222+V0Gbfvn1x5coVXL58GW3btlVmP8cN69atU5bB0KFDlSnBXwpzhoaGqoagZ8+eGDx4MNavX6/HSeS69FBYfWMmid/jEIbu+tnqaUkCTQcBsxx+3t7eqqc/duymY4jquy4uLkZj9ejoaLA3pzNw9erVStZbg4E9PE3/wsJbckhCfg0d6/4uCLgIXffDGCbEty7QTTB2s8hvjXIJ+a2BqnGc9Mo/7OiHHltOG5+QPUEAgJDfhh8Dr7NZ6gORbpUWyNhwkaVodUBAyF8HsJrapR+vOoEWzsFWUYNtalhIfqsiIOSviolNHIm8lIdfDXRvVF+tsQlgbagQQn4bqkzDokz1OI+nnIJQXGa9D0AapifbTQ8BIX/TqzOzckxhis6bxdFnFljN9CIhvw1WfGBiDu4b7gn/xFtv49lgMaVIt4mAkP82AWyMt/P9dl1PF7ifaVwf0GyMWDXnPAn5bbD298Zk4HfDPS36FRwbhKnZF0nIb4OPwK4T6Xhz0XEbLJkUyZIICPktiWYjieubdafw1qKqElCNJHuSjUaCgJC/kVSEJbPx+JRgvL5Aen5LYmqLcQn5bbBWW84MR+vl1X+UwwaLK0WqJwJC/noC11hvo1jG32aG4/Bp8fQ31jpqLPkS8jeWmrBQPvbEZOLXAzwQ9svnqi0UrURjgwgI+W2sUrcdT4euhysCzmXbWMmkOJZGQMhvaUTvcHw/ncjAY2MDQD09CYKAKQSE/KbQaYLnhuw6g9YrxdnXBKuuwbMs5G9wyK2b4IMTgvCRePqtC7KNxC7kb4QVmZZbApeYDFCS6sDJTGyLTMPOY2nIKapd3/4xpxD8b8mJRlgqyVJjQ0DI34hqJDWvBBMPnMNDYwKU007X0w26kb54df5xPDclBK/NiUBESp7JHD8/Mxybj6WZvEZOCgJEQMjfSJ6D81lF+KtzGFpOCEK/HfFw/TkLrqcylaoOs8iPcvy/5Seg6+2OFf4XkVd80woIPp+D/y2OxJgD5xCanIunp4aC6rUSBIHaEBDy14ZQA53vtikW/2fni/xfSF1dslzA89Xqk9B1PKxI/smKaOgGeaHFtFDcNzYAut5u0A30RISB8GZ18cgxQYAImE1+indUDhUVFfpDhtv6gyY25NPdt8BZH54KXX8PsBevLZSWVygfwFyfFLScEY4N4anqlqSsIozYEY/PV8XgWoEo0daGo5w3g/yU66Lgxvvvv6/EOAgaRf6cnJyU6m5+fj6cnZ0xcOBApc6TkZGhFH54nhp8FOqYMmWKOnbp0iU95hT42Lp1q36/uW2czSxEr02x6L45Fo84BqLX1rjmBoGU9w4jUKtKL4U5P/vsMwwZMgTh4eFKrLNjx4748MMPlTpPQkKCUu+lSCf1/GbOnE/I48oAAA7CSURBVKnEOkePHq1UfSjXTYHOGTNmYP78+friUvSTsl5U9ykoKNAfbw4blJxuMSVEmeh3j/BBbyF+c6j2RlVGV1dX2NnZmVbpZY5XrVqFt99+W6nw5uXlKQ0+6vYZknbq1KlYvHix6uUDAgKUtUCyUwaYPbyXlxeGDRumB4CNBq+n9h8lvppTcPZMVmP1yEv5KDAxxm9OmEhZGxaBrKwssGPeu3evUcJGQp1U5A0MDFRyvpThTklJwbVr19CtWze9tPb06dOVSi8lu2ni79y5EwsWLFDCnBs2bFBqvdTrGzdunD4hjvmp3mvLoaD0BvKKjDVxswpK8ZC9H3ptF9FMW677plC2yMhI0+TnmH748OH473//C5L8+vXrSqW3X79+oJOP4p0vvvgiOnTooEju6emJzp07g8q8VPNNSkpSDUWnTp2UxaCB0hQcfsXlFSgsMb2w5kxGASIu5CkvfUFJOcpuVOBGRQUW+F7AA46BuMvOF/b7EsCpPHryxx06h7sGeyHxapEGhfwKAncEAbO8/TT19+/fr+/py8rKVO/PHPOcRnL+Mly8eBHp6en6AtFvwGOGobGT3+XUVTzg4I97Rvri/SVRWBxwEQWVBDA4pfZ7hwDc7xiIZ6eH4Y/jA/GUUwjeWRippt26bozFgJ3x+NW3fnhkYpC6RjfECyP3JRhCIduCwB1BwCzyWyNnjZX8uUVlaLvmJP5vpA86rD2Frptj0W7dKej6uuN/847Bz+BV2S9+jMEjk4Lxc3oBTqdex3y/C+i85iQ6rIrB2rAretiu5JYgLvW6uiYhvXk5N/UgyEajQ0DI/0uVBJ3PwafLTuCPDv7KC7/ul/lzrcb4quwLU4KhG+CBtPxSnMkswF39PbAy5Ka1o10nv4JAU0FAyA9g14kM6Pp54HmnEHTZGIu4tOp756LyCrw9/zi+WBGN1stO4LmpoaKA21SedMlnFQSaFflpflcO10vK8eSEILw7/zgKK43pK1/L/WMX8tVqPF2nw1hjYNpXd60cEwQaMwI2T/6U7GI4HjiLl2aE4g8TAvDmD8ew/9StpcpLAy8pMkdfzje7nrZHpeO9744ipg73mB25XCgINBACNk1+vnrw1epo3DvCE/9ZEIG14Zfx+sII6Aa64V/zwtFqWZRabLMk8Nay4wbCXZIRBO44AjZNfjrxdEPcsT7iluediLvEZsJubzyecgxAm1UxJt+ku+M1JBkQBKyEgE2Tv+eOOOjsvcE34SQIAoKAMQI2S/6M/FI8NykA7TacVCvujIste4KAIGCz5A9IzMbddt41TttJ1QsCzR0BmyX/l2ui8aRzcHOvXym/IFAjAjZH/os5xRi8PQ66Pi5YGSJe/BprXk40ewRsivz8xPUzkwJw13APOHucF0dfs3+8BQBTCDRp8m8+dgUrgi5itk8yWn4XCt0AN3yw6BhCknNNlVnOCQKCQF0+4GlptG7nrb7T6QXos+U0dH2PQNffFf9dfBzt1sbA42eRpbZ0PUl8totAk+v5Iy/m4f5vvfGnCf6gR78uy3JttxqlZIJA3RFoMuSPSy/AgG2x+M1QDzw7JVB9GafuxZU7BAFBQEOgSZA/La8Ef3D0w4P2PnByOYfU/Kpv52kFkl9BQBAwD4EmQf4JronQDfcEp/EkCAKCgGUQaPTkj7iQi3uHe2LwnnjLlFhiEQQEAYVAoyf/Wwsj8OQEf1zOlV5fnllBwJIINGryT3JLhK7HYRyMu/XxDUsWXuISBJozAo2W/FGX83HPKG+MP3yuOdePlF0QsBoCZpGf4pubN282+hb/+fPnlVAnc8bv8kdEROgzSQHAc+dukZbSXKdOndKf58aZ+Hhs3rje6Bh38orLcDQlD38cG4iR+2/FwTzExMRUud5aB6hKFB0dba3oq433xIkTej2Eai+w8EEqLPEBaMhAkVdN36Gh0qXGZEOG5ORknD17tsGSpAAuhW/rGmpV7MnNzcWIESPw7rvvYvbs2Uqfb9myZfjiiy8U+SnnNWjQILRv3x67du1CWFgYKOTZvXt3EITExER07dpVHfPz89Pn78zZBCxZvREUreS793N8UzDZ5Rz+ODkIut4HcHe/bTh6OgEXL6QoiTDqilEElHJhDfHn4eGhFIoaIi0tDeodMl1t39q/bLDHjh3bYOmxPIsWLQKl26xdNi1+djwODg7qWdSOWfuXEnXkiLXT0eLftm0bfvjhhzqnR3Fd1oVhMNLqYw/4zTffoE+fPqrnp/LOyJEjFZl5k4+Pj1Lh5YM0ePBgjBkzBgcOHFCZWbduHQjEkiVLsHv3biOtvrScIrSY7oenpwbjKedg6EZ6QTfUA122xWPstlAsWbYcm9avxZo1a9QfBT+XLl2q39eOW+u3odNjOVg+pmutMlWO98cff1R1U/m4NfdJihUrVjRYGakCzeePv9Ysl2Hcy5cvB/8Mj1lzm3gS17qmwYb49OnThtyHEfl5JioqSvX0tABoCWRmZqJ3797qpsOHDysRT/bw1OejlHdoaKhepZcKv9Wp9N6oAFJySpB4tVD9XcwuxiWZxzeqCNkRBBoaASPyc6z93XffKdOpS5cuyrRITU1Fu3btlLQ2x8U08RcuXIhJkyYps45KvbQO3N3dwcaBQp+TJ09W5xq6MJKeICAImI+AEfnLy8tB871169ZKz5vKvFevXlWmW2lpqYqV50eNGqWcHNnZ2Zg4cSLmzJkDCnrSqfT999+rhoENiQRBQBBovAgYkV/LJtV4JQgCgoBtI1At+RuiyGxg6B+gB5IWBy0F+gwMpwn5HQBtWjE4OBh0Wt3O1BHjpqONfg0GX19fbNq0Sc1qaGX28vJCVlaWtgtPT09l/egP1GGDltC+ffuwfv16XL9+XaWzdu1a5SfRomF5AgMD1S7LS2fVTz/9ZJQn7VpzfjktSweUFuexY8eUc8iwTAEBAeCUEQNxpROJw7v6BHqheT+xZODQkPVkaPkxDZaTviKWb+PGjfD29q5PcqA1ynsN88xnyNXVVR9fQUGBqjceYLp8rjQ89BfVYYNlYb1xFoqB5WD6SUlJ+lg4lRYXF6f2+QzR+c06r2/gTBqfVc5gMBw8eFA50m/cuKGG4EeOHFE400lPq5vPMR3ydQl3jPysMHt7ezVrwAeCU19Dhw5F3759UVhYqOb5X3/9dcyaNUsNJzi84DTOt99+W5fy6a/Nz89XwxVOIdJZSf8EZzUGDBigvO4EkFMoL730kh7w/fv344UXXgBJWZ/Ah3TYsGGqnHPnzlW+Es6S9OjRA1euXMGFCxfwySefKAwYv6Ojo3KucrakqKiozkmyEaUvxtnZGd26dVMP68CBA1X8PEbicKqoZcuWqgGMjY1VWHBal41UfcK0adOUE5jp8QFl+ViPzAfT4xTT3/72N/j7+yvS8IH+7LPPVH3XJz0SjNPN9DXxediyZQv69eunMOU6Bk5Hc59pMBBTJycnVdcakeqa7uLFizFhwgT06tULO3fuxOjRo1W90inOMrLh43PD6W92LHyG+WxzCFyfwIaYznTWGcu6d+9e9VzQ8c5GjusneH7cuHGqbGxs+RzzuarL+pg7Rn62WARu/Pjxak6fQJIMLCx7e/YgPEZ/ghZYAQSkPoHkprXBBRkEkY0Kyc4HhgRhb8Eet1OnTmqemD0jweWaBrb09Ql8ENlSz58/XzlB6RhlxbHM7EW4OIpl4j5D//79lUOV0zglJXV/lZl40g9DPw0fVDY4bFTZeNFRy/yw0aMzl4uMtm/fjq+//lo5eblYqz6B9ch42ZDOmzdP+YBofXC9B60NNzc3tU0LioEzSPQZMY/1CexNWZdsVIgn64jk47Qpp7PYSzMfxJKB02LEgo0SsalPYBnZsJJwfB7ZAfH5IKbs/YOCglT5Oe3NeuV6CvbMdJTXpxHnPewAaTHx2WTjxUaHjSvj5rPK54rWCPfZGJEzzBtxMDfcMfIzg5w1YM9BcNlycV0Byc9egoG9FHtqAs8C06whGPV9cGii8kEg4fnwkJQEjQ+uFpgPkp0PFR+YNm3aqBWP2vm6/nK1JB92NjzsEUl+xk3iMXAxFCuPgQ0eMWjbtq0eA3WiDv/4gBNDPnwhISGqYWGPR8JrZigfXg4HaH6zgWVvQlzrE2hR0bqh5UDTlz0eCdG5c2f98Im9r2aW0wRnT3o7gZixAU9PT1fEoIXFeDlTxcAFZ6xHDrs480STmHXAaen6BDaqtDyZBp8hPhe03GjtaKvtSDymQ+KyfHZ2dujQoUO9yM88sgdn48K6o7VELpD82rPCRob1zPqmBcRnmnngkM/ccMfIz3Hwo48+qiqHSzK5YIjThCSiRm4WhI0DewuCyRadpg0bi7oGPqQff/wx3nnnHdViskei+U8AtYeRPQorjIshSBwS9I033lAkqWt6vJ5psIx88PjA0mph76FVKq9hb8FGgYENHSva8KFSJ8z8x/yzTC+//LJ+3E+SkJzsPbRAjFk+mqhsFGgdkCR1DWyUiR+HRsw3eyrGzXpkA8feiYHXaONlmuScFq5voNn/3HPPKQxJBg4ZNbNf6zTo22HjQ+uJjduCBQtUo09fR30Cn8Gnn35akYvPKuuQVgfrjQ0MAy04zoTR2pkxY4Y6TzLWJ9Dsf+WVV9R6Gz6DHE6w0yK2Li4u6vl88sknVYNNLNmJsvHmc6X5s8xJ946Rnw4YtpQ0XWiC8p0Btqzc1gJbVa0wvJ5OFsP3CLTrzPmlaUo/A3tiOhq5z4eFeWDDwMCHlSQ1bFz4QGs9pjnpGF7DnpC9Kx8KmoZspbnNOLXAoY7WI7GsNFOPHz+una7TL3sdjg9ZRjqciCnzwGGEoQOOeWHPxcBek+cNHYLmJkpysfFiemzM6Vxjj8UxqBY/42L5aNEwkIDMV30De0LWGctH64Z1Q5OYpNAC64/1yMCemp0InXD1Cez1STCmSZyYPi1Dmtfc1gJx5pCSDSJ9Nry+vrNmxI6+DMZBC5Vl5HCNw1IGWo98rog5y8V0eH1dy3jHyK+BJr+CgCBwZxAQ8t8Z3CVVQeCOI/D/AcZFwhl4FHCMAAAAAElFTkSuQmCC" title="Figure 12: Tail Reaper equity curve" /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><br /></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Figure
12: Tail Reaper equity curve.</span></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><br /></p><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;"><i><span style="font-family: "Times New Roman", serif; font-size: 14pt;">For readers interested
in a free trial or to participate in a live webinar on how to use </span></i><i><span style="color: blue; font-family: "Times New Roman",serif; font-size: 14.0pt; mso-fareast-font-family: "Times New Roman";"><a href="http://predictnow.ai">predictnow.ai</a></span></i><i><span style="font-family: "Times New Roman", serif; font-size: 14pt;"> to predict the conditional probability of
profit of your trades, please sign up </span></i><a href="https://predictnow.ai/register"><i><span style="color: blue; font-family: "Times New Roman",serif; font-size: 14.0pt; mso-fareast-font-family: "Times New Roman";">here</span></i></a><i><span style="font-family: "Times New Roman", serif; font-size: 14pt;">.</span></i><span style="font-family: "Times New Roman", serif; font-size: 13.5pt;"><o:p></o:p></span></p><p style="margin: 0in;"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">
</span></p><p style="margin: 0in;"><o:p> </o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in 0in 0.0001pt; text-align: center;"><o:p><span face="" style="font-family: calibri, sans-serif; font-size: 11pt; line-height: 107%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></o:p></p><p style="margin: 0in;"><o:p><br /></o:p></p><div>
</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com31tag:blogger.com,1999:blog-35364652.post-28038399271002892572020-03-05T08:37:00.000-05:002020-03-05T08:48:58.813-05:00Why does our Tail Reaper program work in times of market turmoil?I generally don't like to write about our <a href="http://www.qtscm.com/accounts">investment programs</a> here, since the good folks at the National Futures Association would then have to review my blog posts during their regular audits/examinations of our CPO/CTA. But given the extraordinary market condition we are experiencing, our kind cap intro broker urged me to do so. Hopefully there is enough financial insights here to benefit those who do not wish to invest with us.<br />
<br />
<br />
<div class="MsoNormal">
As the name of our Tail Reaper program implies, it is
designed to benefit from tail events. It did so (+20.07%) during
August-December, 2015’s Chinese stock market crash (even though it trades only
the E-mini S&P 500 index futures), it did so (+18.38%) during
February-March, 2018’s “volmageddon”, and now it did it again (+12.98%) during
February, 2020’s Covid-19 crisis. (As of this writing, March is up over 21%
gross.) There are many names to this strategy: some call it “crisis alpha”, others
call it “convex”, “long gamma” or “long vega” (even though no options are
involved), “long volatility”, “tail hedge”, or just plain old “trend-following”.
Whatever the name or description, it usually enjoys outsize return when there
is real panic. (But of course, PAST PERFORMANCE IS NOT NECESSARILY INDICATIVE
OF FUTURE RESULTS.) Furthermore, our strategy did so without holding any
overnight positions.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Why is a trend-following strategy profitable in a crisis? A
simple example will suffice. If a short trade is triggered when the return
(from some chosen benchmark) exceeds -1%, then the trade will be very profitable
if the market ends up dropping -4%. Vice versa for a long trade. (As recent
market actions have demonstrated, prices exhibit both left and right tail
movements in a crisis.) The trick, of course, is to find the right benchmark for
the entry, and to find the right exit condition.<o:p></o:p><br />
<br /></div>
<div class="MsoNormal">
Naturally, insurance against market crash isn’t completely
free. Our goal is to prevent the insurance cost, which is essentially the loss
that the strategy suffers during a stretch of bull market, from being too high.
After all, if insurance were all we want, we could have just bought put options
on the market index, and watched it lost premium every month in “good” times.
To prevent the loss of insurance premium requires a dose of market timing,
assisted by our machine learning program that utilizes many, many factors to
predict whether the market will suffer extreme movements in the next day. In
most years, the cost (loss) is negligible despite the long bull market, except
in 2019 when we lost 8.13%. That year, which seems a long time ago, the SPY was
up 30.9%. (It was in the August of that year that we added the machine learning
risk management layer.) But most investors have a substantial long exposure. A
proper asset allocation to both Tail Reaper and to a long-only portfolio will
smooth out the annual returns and hopefully eliminate any losing year. (Again, PAST
PERFORMANCE IS NOT NECESSARILY INDICATIVE OF FUTURE RESULTS.)<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
But why should we worry about a losing year? Isnt’ total
return all investors should care about? Recently, Mark Spitznagel (who
co-founded Empirica Capital with Nassim Nicholas Taleb) wrote a series of
interesting <a href="https://www.universa.net/riskmitigation.html">articles</a>. It argued that even if a tail hedge strategy like ours
returns an arithmetic average return of 0%, as long as it provides outsize
positive returns during a market crisis, it will be able to significantly
improves the compound growth rate of a portfolio that includes both an index
fund and the tail hedge strategy. I have previously written a somewhat
technical <a href="http://epchan.blogspot.com/2017/05/paradox-resolved-why-risk-decreases.html">blog post</a> on this mathematical curiosity. The gist of the argument is that the
compound growth rate of a portfolio is m-s^2/2, where m is the arithmetic
mean return and s is the standard deviation of returns. Hedging tail risk is
not just for the psychological comfort of having no losing years - it is
mathematically proven to improve long-term compound growth rate overall.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: "tahoma" , sans-serif; font-size: 10.0pt;">PAST
PERFORMANCE IS NOT NECESSARILY INDICATIVE OF FUTURE RESULTS. <o:p></o:p></span><br />
<br />
For further reading on convex strategies, please see the papers by Paul Jusselin et al “Understanding the Momentum Risk Premium: An In-Depth Journey Through Trend-Following Strategies” and Dao et al “Tail protection for long investors: Trend convexity at work” (Hat tip to Corey Hoffstein for leading me to them!)Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com46tag:blogger.com,1999:blog-35364652.post-71121416494501956282019-12-09T07:10:00.000-05:002019-12-09T07:53:22.114-05:00US nonfarm employment prediction using RIWI Corp. alternative data<br />
<div class="MsoNormal">
<b>Introduction<o:p></o:p></b></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
The monthly US nonfarm payroll (NFP) announcement by the
United States Bureau of Labor Statistics (BLS) is one of the most closely
watched economic indicators, for economists and investors alike. (When I was
teaching a class at a well-known proprietary trading firm, the traders suddenly
ran out of the classroom to their desks on a Friday morning just before 8:30am
EST.) Naturally, there were many efforts in the past trying to predict this
number, ranging from using other <a href="https://www.cmegroup.com/education/featured-reports/our-model-forecasts-may-non-farm-payroll-and-junes-too.html">macroeconomic
indicators</a> such as credit spreads to using <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2783520">Twitter
sentiment</a> as predictive features. In this article, I will report on research
conducted by Radu Ciobanu and I using the unique and proprietary continuous survey
data provided by <a href="file:///C:/QTS%20Capital%20Dropbox/Backtests/RIWI/riwi.com">RIWI Corp.</a>
to predict this important number. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
RIWI is an alternative data provider that conducts online
surveys and risk measurement monitoring in all countries of the world anonymously,
without collecting any personally identifiable information or providing
incentives to respondents. RIWI’s technology has collected and analyzed more
than 1.5 billion responses globally. Critically, in their surveys, they can
reach a segment of the population that is usually hidden: three quarters of
their respondents across the world have not answered a survey of any kind in
the preceding month. Their surveys strive to be as representative of the
general online population as possible, without the usual bias towards the loud social
media voices. This is important in predictive data for financial markets, where
it is vital to separate noise from signal. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The financial market reacts mainly to <i>surprise</i>, i.e.
the difference between the actual announced NFP number and the Wall Street consensus.
This surprise can move not only the US financial markets, but international markets
as well. Case in point: I watched the German DAX index moved sharply higher last
week (December 6, 2019 ) due to the huge positive surprise (adding 266K jobs
instead of the Wall Street consensus of 183K).<span style="mso-spacerun: yes;">
</span>Therefore the surprise is what we want to predict. We compared
predicting the sign of this surprise using machine learning with the RIWI score
as the only feature vs. a number of other benchmarks that do not include the RIWI
score, and found that the RIWI score generates higher predictive accuracy than
all other benchmarks during cross validation test. We also predicted both the
magnitude and sign of the NFP surprise. Including the RIWI score as one of the features
achieved the smallest averaged cross-validated mean squared error (MSE) than
otherwise. Limited out-of-sample results indicate the RIWI score continues to
have significant power for both sign and magnitude predictions. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Data<o:p></o:p></b></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
The historical NFP monthly numbers were seasonally adjusted
by the BLS. These numbers were released on the first Friday of every month, at
8:30 am ET (except on certain national holidays when they are released one day
before or delayed by one week.) To compute the surprise, we subtract the Wall
Street consensus on the day before the announcement from the actual NFP number.<o:p></o:p></div>
<div class="MsoNormal">
The RIWI data were based on their online surveys of US
consumers, and consist of two datasets. The first one is dated December 2013 -
October 2017 and the second one is dated Sep 2018 - Sep 2019. The former
dataset is based on the yes/no answer to the following survey question: <i>‘Are
you working for more than 35 hours per week?’</i>. The latter dataset is based
on several survey questions related to opinions regarding US companies or
products, along with respondents’ personal background, such as their employment
status (full-time/part-time/student/retired), marital status, etc. In order to
merge the two datasets, we regard respondents who said they worked “full-time”
or “part-time” as equivalent to “working more than 35 hours per week”. If we
were to count only the “full-time” respondents, a significant structural break
in the time series would be observed between the two time periods, as seen in
Figure 1 below.<o:p></o:p></div>
<div class="MsoNormal">
<span style="mso-no-proof: yes;"><!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Imagine_x0020_5" o:spid="_x0000_i1026" type="#_x0000_t75"
style='width:468pt;height:234pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:/Users/chane/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></span><o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixY_jXDZRTSryrW-0GYuOM71qxQ7Mnpftrqgn-8ShG5MFmf3C5r_yUJZcvA3fxA9jQgC3YiAsYMcYR0uC9orefhjSuE7Q3FgibGz6P8te3UTrmsbVBTH3CUinpoU7JvqsrR8QvtQ/s1600/full_time_magnify.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1440" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixY_jXDZRTSryrW-0GYuOM71qxQ7Mnpftrqgn-8ShG5MFmf3C5r_yUJZcvA3fxA9jQgC3YiAsYMcYR0uC9orefhjSuE7Q3FgibGz6P8te3UTrmsbVBTH3CUinpoU7JvqsrR8QvtQ/s640/full_time_magnify.png" width="640" /></a></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Figure 1</b>: Weighted monthly RIWI score, without
seasonal adjustments, including only “Full-Time” respondents<span style="font-size: 10.5pt; line-height: 107%;">, for Dec 2013-Oct 2017 and Sep 2018-Sep
2019</span>.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If we include both “Full-time” and “Part-Time” respondents,
we obtain Figure 2 below, which clearly doesn’t have that structural break.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOdjfdaj45ptmnsXmqMf7qSQvO-LN0vgtl04V8JxW7Ybi4IQt9GpWfPhwizcfthEE1NAtR0-1bN5sQFFLajPTWU2qWvaJRGaqWUeSB6aVLjM9tL2QW-cXI1ZpGnVJT3VfhXlAUHw/s1600/full_time_part_timemagnify.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1440" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOdjfdaj45ptmnsXmqMf7qSQvO-LN0vgtl04V8JxW7Ybi4IQt9GpWfPhwizcfthEE1NAtR0-1bN5sQFFLajPTWU2qWvaJRGaqWUeSB6aVLjM9tL2QW-cXI1ZpGnVJT3VfhXlAUHw/s640/full_time_part_timemagnify.png" width="640" /></a></div>
<br />
<div class="MsoNormal">
<o:p><br /></o:p></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Figure 2: </b><span style="mso-bidi-font-weight: bold;">Weighted m</span><span style="font-size: 10.5pt; line-height: 107%;">onthly RIWI score,</span> without seasonal adjustments, <span style="font-size: 10.5pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>including “Full-time + part-time” respondents,
for Dec 2013-Oct 2017 and Sep 2018-Sep 2019.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-size: 10.5pt; line-height: 107%;"><br /></span></div>
<div class="MsoNormal">
RIWI provides a weight for each respondent in order to
transform the data so that it can reflect the demographics of the general US
population, hence the adjective “Weighted” in the figure captions. Note that
the survey is conducted such that each respondent can go back and change their
answers but they will not show up as more than one sample in the data set. In
order to extract a summary score in advance of each month’s NFP announcement,
we compute a monthly average of the product of the respondents’ weights and the
indicator (0 or 1) of whether the individual respondent is working full or
part-time. The monthly average is computed over the same month that the NFP
number measures. We call this the “RIWI score”. As the NFP data were seasonally
adjusted, we need to do the same to the monthly differences of the RIWI score. We
employ the same adjustment that the BLS uses: <a href="https://www.bls.gov/ces/">X12-ARIMA</a>.
But for comparison purposes, we did not apply seasonal adjustment to Figures 1
and 2.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Classification models<o:p></o:p></b></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
Our classification models were used to predict whether the
sign of the NFP surprisewas positive or negative (there were no zero surprises
in the data.) The models were trained on the data on <span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Dec
2013 – Oct 2017 (“train set”), where cross validation testing also took place.
Out-of-sample testing was done on the data Sep 2018-Oct 2019 (“test set”). As
mentioned above, the test set’s RIWI survey questions were somewhat different
from the train set questions. So test set result is a joint test of whether the
classification model works out-of-sample and whether the slight difference in
the RIWI data degrades predictive accuracy significantly. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">To provide benchmark
comparisons against RIWI score, we also studied several other standard features,
some of which were found useful for NFP predictions: <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 38.3pt; mso-add-space: auto; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="color: black; font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Previous
1-month NFP surprise<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 38.3pt; mso-add-space: auto; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="color: black; font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Previous
12-month NFP surprise<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 38.3pt; mso-add-space: auto; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span class="st"><span style="color: black; font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: text1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span></span><!--[endif]--><span class="st"><span style="color: black; mso-themecolor: text1;">Bloomberg<span style="mso-spacerun: yes;"> </span>Barclays
US Corporate High Yield Average Option Adjusted Spread Index (a.k.a. credit
spreads)</span></span><span class="st"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;"><o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 38.3pt; mso-add-space: auto; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="color: black; font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Index
of Consumer Sentiment (University of Michigan)<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 38.3pt; mso-add-space: auto; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">The </span><span class="st"><span style="color: black; mso-themecolor: text1;">Bloomberg Barclays US Corporate High Yield Average Option
Adjusted Spread</span></span><span style="color: black; mso-themecolor: text1;">
Index denotes the difference (spread) between a computed Option Adjusted Spread
index of all high yield corporate bonds and a spot US Treasury curve. An Option
Adjusted Spread index is computed using constituent bonds’ option adjusted
spreads, weighted by market capitalization. In what follows, we will refer to
the <span class="st">Bloomberg Barclays US Corporate High Yield Average Option
Adjusted Spread</span> Index as the “credit spreads” feature.<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-themecolor: text1;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-themecolor: text1;">Since </span><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">machine
learning can only be performed on stationary features, we will use</span><span style="color: black; mso-themecolor: text1;"> the monthly differences in the RIWI
score and other features. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-themecolor: text1;">The benchmarks models we tested are:<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-themecolor: text1;"><br /></span></div>
<div class="MsoNormal" style="margin-left: .25in; text-align: justify;">
</div>
<ol>
<li>Logistic regression* on Previous surprise.</li>
<li>Trend-following model predicts next
sign(surprise)=sign(previous surprise).</li>
<li>Contrarian model predicts next
sign(surprise)=-sign(previous surprise).</li>
<li>Logistic regression on credit
spreads.</li>
<li>Logistic regression on Index of
Consumer Sentiment.</li>
</ol>
*All logistic regressions were
L2-regularized.<br />
<div>
<br />
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto; text-align: justify;">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">Here are
the results, compared to applying Random Forest to the RIWI score alone:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 0in; mso-add-space: auto; text-align: justify;">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184; width: 623px;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">ML
model</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">Features</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">CV accuracy
(in-sample)</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">Out-of-sample
accuracy</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 28.75pt; mso-yfti-irow: 1;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 28.75pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Contrarian
model<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.75pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Prev 1-month
surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.75pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.46<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.75pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.66<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">LogReg (Ridge)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Credit spreads<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.52<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.51<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">LogReg (Ridge)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Prev 1-month surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.53<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.50<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">LogReg (Ridge)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Consumer sentiment index<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.53<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.50<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 16.55pt; mso-yfti-irow: 5;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 16.55pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Random Forest<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 16.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">All features<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 16.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.53<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 16.55pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.58<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Trend
following model<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">Prev 1-month surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.54<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;">0.33<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 7; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 107.75pt;" valign="top" width="144"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt; line-height: 107%;">Random Forest</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 112.5pt;" valign="top" width="150"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt; line-height: 107%;">RIWI score alone</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt; line-height: 107%;">0.63<span style="mso-spacerun: yes;">
</span>+/- 0.03</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 125.75pt;" valign="top" width="168"><div class="MsoNormal" style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt; line-height: 107%;">0.58<span style="mso-spacerun: yes;">
</span>+/- 0.04</span></b><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoListParagraph" style="margin-left: 0in; mso-add-space: auto; text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;"><b>Table 1</b>: Classification benchmarks and other features<o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<br /></div>
<div class="MsoNormal">
Based on the predictive accuracy on the cross validation
data, the best machine learning model is one that uses the RIWI score as the <i>only</i>
feature. This model applied the random forest classifier to the RIWI score to
predict sign(NFP surprise). It obtained an average cross-validated (CV)
accuracy of 63% <span style="color: black; font-size: 10.5pt; line-height: 107%;">+/- 0.03</span> (using 10-fold
cross-validation on Dec 2013 – Oct 2017 data) and a 58.3% +/- 0.04 out-of-sample
accuracy. As the out-of-sample data consists only of 12 data points, we view
that as a test of whether the random forest classifier overfitted on training
data, and whether the slightly different RIWI data affected predictions, but
not as a fair comparison of the various models. Since the predictive accuracy
did not deteriorate significantly on the out-of-sample data, we conclude that
no overfitting was likely, and the new RIWI data did not differ significantly
from that which we trained on. We have also applied random forest to all the
features including the RIWI score, and found lower CV (53%) and out-of-sample
(58%)<span style="mso-spacerun: yes;"> </span>accuracies than using the RIWI
score alone.<span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Regression models<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></b></div>
<div class="MsoNormal">
Our regression models were used to predict the actual NFP
surprise (sign + magnitude). The train vs. test data were the same as for the
classification models, and features set were also the same.<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">To provide benchmark
comparisons against the RIWI score, we studied the following models:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-left: .25in;">
</div>
<ol>
<li>ARMA
(2,1) model* that uses past NFP surprises. </li>
<li>Trend-following
model predicts next surprise=(previous surprise).</li>
<li>Contrarian
model predicts next surprise=-(previous surprise).</li>
</ol>
*The
lags and coefficients were optimized based on AIC minimization on the train
set.<br />
<div class="MsoNormal" style="margin-left: .25in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">Here are the results, compared to applying Random Forest
to the RIWI score alone:<o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr style="height: 19.1pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid windowtext 1.0pt; height: 19.1pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt;">ML
method</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; height: 19.1pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt;">Features</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; height: 19.1pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="background: white; color: black;">CV MSE (in-sample)</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; height: 19.1pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span style="background: white; color: black;">Out-of-sample MSE</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Trend following model<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Prev 1-month surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">6788.60<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">19575.16<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Contrarian model<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Prev 1-month surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">5941.78<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">9652.16<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">ARMA(2,1)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Prev 1-month surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">3317.47<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">7192.9<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 25.9pt; mso-yfti-irow: 4;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 25.9pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Linear regression (Ridge)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 25.9pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Prev 1mth surprise +prev 12mth surprise<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 25.9pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">3310.66</span><span style="background: white; color: red;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 25.9pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">7302.94</span><span style="color: red; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Random Forest<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">RIWI score<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">3280.13<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">7208.01<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Random Forest<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Credit spreads<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 10.5pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">3257.51<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">7227.63</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Random Forest </span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Consumer sentiment index<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">3251.48</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">7231.74</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">Random Forest </span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; font-size: 10.5pt;">All features</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: black;">3251.18<span style="mso-spacerun: yes;"> </span></span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-hansi-font-family: Calibri; mso-themecolor: text1;">7268.75 </span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 9; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt;">Random Forest</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.85pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-size: 10.5pt;">RIWI score + prev 1mth surprise +
prev 12mth surprise</span></b><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="background: white; color: black;">3249.35 </span></b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">+/- 70</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;" valign="top" width="156"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">7269.20 </span></b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">+/- 134</span><span style="color: black; font-size: 10.5pt;"><o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div align="center" class="MsoNormal" style="text-align: center;">
<br /></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 10.5pt; line-height: 107%;"><b>Table 2</b>: Regression benchmarks<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Based on the mean squared error (MSE) of predicted surprises
on the cross validation data, the best machine learning model is one that <i>includes</i>
the RIWI score as a feature. It applied the random forest classifier to the RIWI
score<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">, previous
1-month and 12-month surprises in order to predict actual NFP surprise</span>.
It obtained an average cross-validated MSE of <span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">3249.35 +/- 70 </span>and a <span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-themecolor: text1;">7269.2+/- 134</span> out-of-sample accuracy. It
marginally outperformed all benchmarks in cross-validation. As with all other
benchmarks, including the Contrarian model which requires no training, out-of-sample
MSE increased significantly over the CV MSE. But again, as the out-of-sample
data consists only of 12 data points, we don’t view it as a fair comparison of
the various models. <span style="color: black; mso-themecolor: text1;">We also
applied random forest to all the features including the RIWI score, and found somewhat
higher CV MSE (and hence a worse model) than using the RIWI score alone, but
the difference is within error bounds.</span><span style="color: black; font-size: 10.5pt; line-height: 107%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; mso-themecolor: text1;"><br /></span></div>
<div class="MsoNormal">
<b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Conclusion and Future Work<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></b></div>
<div class="MsoNormal">
Using the technique of cross validation on RIWI data from <span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">December 2013 - October 2017, we found that the RIWI score (after
weighting, seasonal adjustment, and differentiation), has outperformed all
other benchmarks in predictive accuracy for the sign of the NFP surprises. We
also found that the similarly transformed RIWI score, if supplemented with
other indicators, has performed as well or better than all
other benchmarks. While such absolute dominance needs to be confirmed in an
extended out-of-sample test, we believe there is great potential for using the RIWI
score for predicting the all-important Nonfarm Payroll number.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">But beyond predicting NFP surprises,
RIWI’s data have the potential to be a more accurate gauge of the actual U.S.
employment situation, and therefore economic growth, than the NFP number. T</span>he
“gig economy” is employing more workers whose data do not easily find their way
into the official BLS count. (Here is an <a href="https://www.aspeninstitute.org/blog-posts/bls-data-on-platform-work-reflects-challenges-of-measurement/">article</a>
on why BLS’ effort to count these workers has been a failure. This Bank of
Canada <a href="http://conference.iza.org/conference_files/Statistic_2019/kostyshyna_o28235.pdf">report</a>
also concluded that official numbers were undercounting gig workers.) Undocumented
workers are not counted in the NFP but they do contribute to the economy. Even
illegal activities could have contributed more than 1% to the U.S. GDP,
according to this <a href="https://www.wsj.com/articles/gdp-doesnt-include-proceeds-of-crime-should-it-11575628201">Wall
Street Journal report</a>. In contrast, RIWI’s survey methodology was cited in
this <a href="https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.1002879">paper</a>
by Harvard researchers among others as the <i>preferred</i> method of
collecting data on hard-to-reach populations. One can imagine an ambitious researcher
using RIWI data to directly predict GDP growth and achieving better results
than using the traditional economic indicators such as NFP.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Acknowledgement<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></b></div>
<div class="MsoNormal">
We thank Jason Cho, Head of Data Operations at <a href="http://www.riwi.com/">RIWI</a>, for providing us the Company’s proprietary
data for our evaluation purposes.<span style="color: black; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br />
*Note a PDF version of this article can be downloaded from <a href="http://www.epchan.com/">www.epchan.com</a>.</div>
<br /></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com2tag:blogger.com,1999:blog-35364652.post-17537807370060917692019-12-04T14:41:00.003-05:002019-12-05T07:23:37.009-05:00Experiments with GANs for Simulating Returns (Guest post)By <span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;">Akshay Nautiyal, <a href="http://www.quantinsti.com/">Quantinsti</a></span><br />
<div>
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;"><br /></span></div>
<div>
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da"></span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Simulating returns using either the traditional closed-form equations or probabilistic models like Monte Carlo has been the standard practice</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to match them against empirical observations from stock, bond and other financial time-series data. </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> (See </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><a href="http://epchan.blogspot.com/2017/11/optimizing-trading-strategies-without.html" style="color: #1155cc; text-decoration-line: none;">Chan and Ng, 2017</a> and </span><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.amazon.com/Advances-Financial-Machine-Learning-Marcos/dp/1119482089/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=d7381a1bc4fd7adf25c210b2967e15be&creativeASIN=1119482089" style="text-decoration-line: none;">Lopez de Prado, 2018</a>.)</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; white-space: pre-wrap;">Some of the stylised facts of return distributions are as follows:</span></span></div>
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da">
</span>
<br />
<ol style="margin-bottom: 0; margin-top: 0;"><span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da">
<li dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><div dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The tails of an empirical return distribution are always thick, indicating lucky gains and enormous losses are more probable than a Gaussian distribution would suggest. </span></div>
</li>
<li dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: lower-alpha; vertical-align: baseline; white-space: pre;"><div dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Empirical distributions of assets </span><a href="http://finance.martinsewell.com/stylized-facts/dependence/Cont2001.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">show sharp peaks</span></a><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> which traditional models are often not able to gauge. </span></div>
</li>
</span></ol>
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">To generate simulated return distributions that are faithful to their empirical counterpart, I tried my hand on various kinds of Generative Adversarial Networks, a very specialised Neural Network to learn the features of a stationary series we’ll describe later. The GAN architectures used here are a direct descendant of the simple GAN invented by Goodfellow in his 2014 </span><a href="https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">paper</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. The ones tried for this exercise were the conditional recurrent GAN and the simple GAN using fully connected layers. The idea involved in the architecture is that there are two constituent neural networks. One is called the Generator which takes a vector of random noise as input and then </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">generates </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">a time series window of a couple of days as output. The other component called Discriminator tries to take either this generated window as input or takes a real window of price returns or other features as input and tries to decipher whether a given window of returns or other features is “real” ( from the AAPL data) or “fake” (generated by the Generator). The job of the generator is to try to “fool” the discriminator by successively (as it is being trained) generating more “real” data. The training goes on until:</span></span></div>
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da">
</span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">1) the generator is able to output the feature set which is identical in distribution to the real dataset on which both the networks were trained </span></span></div>
<span id="docs-internal-guid-c37b6b65-7fff-08e9-9448-2dc37ba743da">
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">2) The discriminator is able to tell real data from the generated one</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The mathematical objectives of this training are to maximise: </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">a ) </span><span style="font-family: "arial"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">log(D(x)) + log(1 - D(G(z))) - Done by the discriminator - Increase the expected ( over many iterations ) log probability of the Discriminator D to identify between the real and fake samples x. Simultaneously, increase the expected log probability of discriminator D to correctly identify all samples generated by generator G using noise z. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">b) </span><span style="color: green; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">log(D(G(z))) - Done by the generator - So, as observed empirically while training GANs, at the beginning of training G is an extremely poor “truth” generator while D quickly becomes good at identifying real data. Hence, the component log(1 - D(G(z))) saturates or remains low. It is the job of G to maximize log(1 - D(G(z))). What that means is G is doing a good job of creating real data that D isn’t able to “call out”. But because log(1 - D(G(z))) saturates, we train G to maximize log(D(G(z))) rather than minimize log(1 - D(G(z))). </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">Together the min-max game that the two networks play between them is formally described as:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">min</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">G</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">max</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">D</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">V (D, G) =</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">E</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">pdata(x)</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">[log D(x)] +</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;">E</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"> p(z)</span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"> [log(1 − D(G(z)))] </span><span style="font-family: "arial"; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The real data sample </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">x</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> is sampled from the distribution of empirical returns </span><span style="font-family: "arial"; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;">p</span><span style="font-family: "arial"; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;">data(x)</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">and the </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">z</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">is random noise variable sampled from a multivariate gaussian </span><span style="font-family: "arial"; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;">p</span><span style="font-family: "arial"; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;">(z)</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. The expectations are calculated over both these distributions. This happens over multiple iterations. </span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The </span><span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">hypothesis</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> was that the various GANs tried will be able to generate a distribution of returns which are closer to the empirical distributions of returns than ubiquitous baselines like Monte Carlo method using the </span><a href="https://blog.quantinsti.com/random-walk-geometric-brownian-motion/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Geometric Brownian motion</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The experiments</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">A bird’s-eye view of what we’re trying to do here is that we’re trying to learn a </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">joint probability distribution</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> across time windows of all features along with the percentage change in adjusted close. This is so that they can be simulated organically with all the nuances they naturally come together with. For all the GAN training processes, Bayesian optimisation was used for hyperparameter tuning. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">In this exercise, initially, we first collected some features belong to the categories of trend, momentum, volatility etc like </span><a href="https://blog.quantinsti.com/rsi-indicator/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RSI</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, MACD, </span><a href="https://blog.quantinsti.com/parabolic-sar/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Parabolic SAR</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://blog.quantinsti.com/bollinger-bands/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Bollinger bands</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> etc to create a feature set on the adjusted close of AAPL data which spanned from the 1980s to today. The window size of the sequential training sample was set based on hyperparameter tuning. Apart from these indicators the percentage change in the adjusted OLHCV data were taken and concatenated to the list of features. Both the generator and discriminator were recurrent neural networks ( to sequentially take in the multivariate window as input) powered by LSTMs which further passed the output to dense layers. I have tried learning the joint distributions of 14 and also 8 features The results were suboptimal, probably because of the architecture being used and also because of how notoriously tough the GAN architecture might become to train. The suboptimality was in terms of the generators’ error not reducing at all ( log(1 - D(G(z))) saturating very early in the training ) after initially going up and the random return distributions without any particular form being generated by the generators. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">After trying conditional recurrent GANs, which didn’t train well, I tried using simpler multilayer perceptrons for both Generator and Discriminators in which I passed the entire window of returns of the adjusted close price of AAPL. The optimal window size was derived from hyperparameter tuning using Bayesian optimisation. The distribution generated by the feed-forward GAN is shown in figure 1. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<div class="separator" style="clear: both; text-align: center;">
<span style="border: none; clear: left; display: inline-block; float: left; height: 270px; margin-bottom: 1em; margin-right: 1em; overflow: hidden; width: 254px;"><img height="270" src="https://lh5.googleusercontent.com/yala-nhfC_9fY5CwasVkW19YUWBXgss9QVgfDJ9A94fREyhOdoKE4tlBNhO7Rz0YpFs3WijflTzkfS-5_JpDPqYk9C7YxWOmaFaVlVY5mJZuTL0YJgjJ58Dv-zxtbC6A0qzYUogl" style="margin-left: 0px; margin-top: 0px;" width="254" /></span><span style="border: none; display: inline-block; height: 270px; margin-left: 1em; margin-right: 1em; overflow: hidden; width: 254px;"></span><span style="font-family: "arial"; font-size: 8pt; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
Fig 1. Returns by simple feed-forward GAN</div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Some of the common problems I faced were either partial or complete </span><a href="https://aiden.nibali.org/blog/2017-01-18-mode-collapse-gans/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">mode collapse</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> - where the distribution either did not have a similar sharp peak as the empirical distribution ( partial ) or </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">any </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">noise sample input into the generator produces a limited set of output samples ( complete). </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 188px; overflow: hidden; width: 425px;"><img height="188" src="https://lh4.googleusercontent.com/JIk7hA6PRzKZN8wlaYk6rYUq_05VG3NE5IuPZgcIJG0DQCgnAzgGTZNF687fnEOe_ahKP1snTjIbuNm-hXiMeyaMDnWthgI_73tCNwJhjez4LbWVlaWRPMB02W6epW_bw_De2kbq" style="margin-left: 0px; margin-top: 0px;" width="425" /></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The figure above shows mode collapsing during training. Every subsequent epoch of the training is printed with the mean and standard deviation of both the empirical subset (“real data”) that is put into the discriminator for training and the subset generated by the generator ( “fake data”). As we can see at the 150th epoch, the distribution of the generated “fake data” absolutely collapses. The mean becomes 1.0 and the stdev becomes 0. What this means is that all the noise samples put into the generator are producing the same output! This phenomenon is called Mode Collapse as the frequencies of other local modes are not inline with the real distribution. As you can see in the figure below, this is the final distribution generated in the training iterations shown above: </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-left: 108pt; margin-top: 12pt;">
<div class="separator" style="clear: both; text-align: center;">
<span style="border: none; clear: left; display: inline-block; float: left; height: 375px; margin-bottom: 1em; margin-right: 1em; overflow: hidden; width: 298px;"><img height="375" src="https://lh6.googleusercontent.com/iiymauAWlJRMDfqb4bpPA4j9coOyNR7E8Qq2CXpLAxOZOtKF1-N63qKOk28YbRi7cQHp1wUtELntWomB_Eyi1Grnl32EzWIdE00isjUK-Os9tcD1oGqtZYUzE2vTIp_4x8whGjb8" style="margin-left: 0px; margin-top: 0px;" width="298" /></span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">A few tweaks which reduced errors for both Generator and Discriminator were 1) using a different learning rate for both the neural networks. Informally, the discriminator learning rate should be one order higher than the one for the generator. 2) Instead of using fixed labels like 1 or a 0 (where 1 means “real data” and 0 means “fake data”) for training the discriminator it helps to subtract a small noise from the label 1 and add a similar small noise to label 0. This has the effect of changing from classification to a regression model, using mean square error loss instead of binary cross-entropy as the objective function. Nonetheless, these tweaks have not eliminated completely the suboptimality and mode collapse problems associated with recurrent networks.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Baseline Comparisons</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">We compared this generated distribution against the distribution of empirical returns and the distribution generated via the Geometric Brownian Motion - </span><a href="https://blog.quantinsti.com/introduction-monte-carlo-analysis/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Monte Carlo</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> simulations done on AAPL via python. The metrics used to compare the empirical returns from GBM-MC and GAN were Kullback-Leibler divergence to compare the “distance” between return distributions and VAR measures to understand the risk being inferred for each kind of simulation. The chains generated by the GBM-MC can be seen in fig. 4. Ten paths were simulated in 1000 days in the future based on the inputs of the variance and mean of the AAPL stock data from the 1980s to 2019. The input for the initial price in GBM was the AAPL price on day one.</span></div>
<br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 2pt; margin-top: 2pt; text-indent: 36pt;">
<span style="border: none; clear: left; display: inline-block; float: left; height: 322px; margin-bottom: 1em; margin-right: 1em; overflow: hidden; width: 262px;"><img height="322" src="https://lh3.googleusercontent.com/CN0s4Qb1eyVadeRzbyX1WwRavbpqY5ovTECU0R4lkgUXzu1I1DM7yMFBFvcxjt0I5AOqlJMTczzWQtgsniD0sZu1b64nIRNPZ2dhjW6QcuNq_iTiDDGJpafcv2qtTnvcFXoOtphW" style="margin-left: 0px; margin-top: 0px;" width="262" /></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 327px; overflow: hidden; width: 287px;"><img height="327" src="https://lh5.googleusercontent.com/GSn95cryFpgJw3n5YJDY1rbVfNMbnsyDn95Tlradgd13y7U-OSYrmCIkaPMdsW-NplpRcteQ7ppcvQ4Cu5N4kyKkiAfc58dHGuPDMLoOBH8ZIJmcxqLux0cnXz26kTvbV3-5Yk87" style="margin-left: 0px; margin-top: 0px;" width="287" /></span></span><span style="font-family: "arial"; font-size: 8pt; vertical-align: baseline; white-space: pre-wrap;"> </span><br />
<span style="font-family: "arial"; font-size: 8pt; vertical-align: baseline; white-space: pre-wrap;"> </span><br />
<div style="text-align: right;">
<span style="font-family: "arial"; font-size: 8pt; text-indent: 36pt; vertical-align: baseline; white-space: pre-wrap;">Fig 2. shows the empirical distributions for AAPL starting </span><span style="font-family: "arial"; font-size: 10.6667px; text-indent: 36pt; white-space: pre-wrap;">1980s up till now. </span><span style="font-family: "arial"; font-size: 8pt; text-indent: 36pt; white-space: pre-wrap;">Fig 3. shows the generated returns by Geometric Brownian motion on AAPL.</span></div>
</div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">To compare the various distributions generated in the exercise I binned the return values into 10,000 bins and then calculated the Divergence using the non-normalised frequency value of each bin. The code is: </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-left: 36pt; margin-top: 12pt; text-indent: 36pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 116px; overflow: hidden; width: 498px;"><img height="116" src="https://lh4.googleusercontent.com/QfnwyQ6bC139BlCR-I8okZPRUBAQmANS-V1o_Y2NIKtPJyue2LpRlhDzSbqDptyD4-p61P12NU88gO8IS7kbGJsLjhG4nOxLRnATgAxLYQTQxZDzfHoWzntzxcGP4Y63EdYVLWu7" style="margin-left: 0px; margin-top: 0px;" width="498" /></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The formula </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">scipy </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">uses behind the scene for entropy is: </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "courier new"; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">S = sum(pk * log(pk / qk)) </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">where pk,qk are bin frequencies</span><span style="font-family: "courier new"; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="http://hanj.cs.illinois.edu/cs412/bk3/KL-divergence.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Kullback-Leibler</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> divergence which was calculated between distributions: </span></div>
<div align="left" dir="ltr" style="margin-left: 0pt;">
<table style="border-collapse: collapse; border: none; table-layout: fixed; width: 468pt;"><colgroup><col></col><col></col></colgroup><tbody>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Comparison</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">KL Divergence</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Empirical vs GAN</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">7.155841564194154</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">GAN vs Empirical </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">10.180867728820251</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Empirical vs GBM </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">1.9944835997277586</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">GBM vs Empirical </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">2.990622397328334</span></div>
</td></tr>
</tbody></table>
</div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The Geometric Brownian Motion generation is a better match for the empirical data </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">compared</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to the one generated using Multiperceptron GANs even though it should be noted that both are extremely bad.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The VAR values ( calculated over 8 samples ) here tell us that beyond a confidence level, the kind of returns (or losses) we might get - in this case, it is the percentage losses with 5% and 1% chance given the distributions of returns: </span></div>
<div align="left" dir="ltr" style="margin-left: 0pt;">
<table style="border-collapse: collapse; border: none;"><colgroup><col width="101"></col><col width="261"></col><col width="261"></col></colgroup><tbody>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Comparison</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Mean and Std Dev of VAR Values ( for 95% confidence level ) </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Mean and Std Dev of VAR Values ( for 99% confidence level )</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">GANs</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Mean </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= -0.1965352900</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Stdev </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= 0.007326252</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Mean </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= -0.27456501573</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Stdev </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= 0.0093324205</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">GBM with Monte Carlo </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Mean </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= -0.0457949236</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Stdev </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= 0.0003046359</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Mean </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= -0.0628570539</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Stdev </span><span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">= 0.0008578205</span></div>
</td></tr>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Empirical data</span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">-0.0416606773394755 (one ground truth value) </span></div>
</td><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; overflow-wrap: break-word; overflow: hidden; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #212121; font-family: "courier new"; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;">-0.0711425634927405 (one ground truth value) </span></div>
</td></tr>
</tbody></table>
</div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The GBM generator VARs seem to be much closer to the VARs of the Empirical distribution. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 355px; overflow: hidden; width: 613px;"><img height="355" src="https://lh6.googleusercontent.com/OFeBfpVRmx7YclDfrymJ1N599zJRyorC63nsEmo_6XjazdiSgbqFVnkIG1Th8LrqEZ3DFS-WmLEyAetaTKinRpzW9dIsSs-t13Fk08KI8tr9m_LuKMoza7SSiyZf2SFYuGoSwb6x" style="margin-left: 0px; margin-top: 0px;" width="613" /></span></span></div>
<div dir="ltr" style="line-height: 1.3679999999999999; margin-bottom: 1pt; margin-top: 1pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: "arial"; font-size: 8pt; vertical-align: baseline; white-space: pre-wrap;">Fig 4. Showing the various paths generated by the Geometric Brownian motion model using monte Carlo. </span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Conclusion</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The distributions generated by both methods didn’t generate the sharp peak shown in the empirical distribution (figure 2). The spread of the return distribution by the GBM with Monte Carlo was much closer to reality as shown by the VAR values and its distance to the empirical distribution was much closer to the empirical distribution as shown by the Kulback-Leibler divergence, compared to the ones generated by the various GANs I tried. This exercise reinforced that GANs even though enticing are tough to train. While at it I discovered and read about a few tweaks that might be helpful in GAN training. Some of the common problems I faced were 1) </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">mode collapse</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> discussed above 2) Another one was the </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">saturation of the generator</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and “overpowering” by the discriminator. This saturation causes suboptimal learning of distribution probabilities by the GAN. Although not really successful, this exercise creates scope for exploring the various newer GAN architectures, in addition to the conditional recurrent and multilayer perceptron ones which I tried, and use their fabled ability to learn the subtlest of distributions and apply them for financial time-series modelling. Our codes can be found at Github </span><a href="https://github.com/QuantInsti/EPAT/tree/master/Blogs/GAN%20Simulation" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. Any modifications to the codes that can help improve performance are most welcome!</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">About Author:</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Akshay Nautiyal is a Quantitative Analyst at Quantinsti, working at the confluence of Machine Learning and Finance. QuantInsti is a premium institute in Algorithmic & Quantitative Trading with </span><a href="https://www.quantinsti.com/epat" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">instructor-led</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://quantra.quantinsti.com/courses" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">self-study</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> learning programs. For example,</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> there is an interactive</span><a href="https://quantra.quantinsti.com/learning-track/machine-learning-deep-learning-in-financial-markets" style="text-decoration-line: none;"><span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">course </span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">on using Machine Learning in Finance Markets that provides</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> hands-on training in complex concepts like LSTM, RNN, cross validation and hyper parameter tuning.</span></div>
<br /><h4 dir="ltr" style="line-height: 1.38; margin-bottom: 2pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Industry update</span></h4>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">1) Cris Doloc published a new book “</span><a href="https://amzn.to/2ONFYJX" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Computational Intelligence in Data-Driven Trading</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">” that has extensive discussions on applying reinforcement learning to trading.</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">2) <a href="https://www.linkedin.com/in/nicholas-ferguson-55a9584">Nicolas Ferguson</a> has translated the Kalman Filter codes in my book <a href="https://www.amazon.com/Algorithmic-Trading-Winning-Strategies-Rationale-ebook/dp/B00CY5HC0U/ref=as_sl_pc_qf_sp_asin_til?tag=quantitativet-20&linkCode=w00&linkId=OKVO7DYTPENVN5Y7&creativeASIN=B00CY5HC0U">Algorithmic Trading</a> to KDB+/Q. It is available on <a href="http://github.com/nicholasferguson/kdb.q.kalman.filter.beta.ETFs">Github</a>. He is available for programming/consulting work.</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">3) Brain Stanley at <a href="http://quantrocket.com/">QuantRocket.com</a> wrote a blog post on "<a href="https://www.quantrocket.com/blog/pairs-trading-still-viable/">Is Pairs Trading Still Viable?</a>"</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">4) Ramon Martin started a new blog with a piece on "<a href="https://todotrader.com/deeptrading-with-tensorflow-iv/">DeepTrading with Tensorflow IV</a>".</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">5) Joe Marwood added my book to his <a href="https://decodingmarkets.com/best-trading-books/">top 100 trading books list</a>.</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">6) Agustin Lebron's new book <a href="https://www.amazon.com/gp/product/1119574218/ref=as_li_tl?ie=UTF8&tag=quantitativet-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1119574218&linkId=b8ace98211e708d60eebb64d9ffc62b4">The Laws of Trading</a> contains a good interview question on adverse selection (via Bayesian reasoning).</span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">7) </span><span style="background-color: white; color: #14171a; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif; font-size: 15px; white-space: pre-wrap;">Linda Raschke's new autobiography <a href="https://lindaraschke.net/trading-sardines/">Trading Sardines</a> is hilarious!</span><br />
<br /></div>
</span></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com5tag:blogger.com,1999:blog-35364652.post-88770377298620137532019-04-26T05:55:00.001-04:002019-04-26T10:18:21.798-04:00Is News Sentiment Still Adding Alpha?By Ernest Chan and <a href="http://www.qtscm.com/principals/">Roger Hunter</a><br />
<br />
Nowadays it is nearly impossible to step into a quant trading conference without being bombarded with flyers from data vendors and panel discussions on news sentiment. Our team at QTS has made a vigorous effort in the past trying to extract value from such data, with indifferent results. But the central quandary of testing pre-processed alternative data is this: is the null result due to the lack of alpha in such data, or is the data pre-processing by the vendor faulty? We, like many quants, do not have the time to build a natural language processing engine ourselves to turn raw news stories into sentiment and relevance scores (though NLP was the specialty of one of us back in the day), and we rely on the data vendor to do the job for us. The fact that we couldn't extract much alpha from one such vendor does not mean news sentiment is in general useless.<br />
<br />
So it was with some excitement that we heard Two Sigma, the $42B+ hedge fund, was sponsoring a <a href="https://www.kaggle.com/c/two-sigma-financial-news" target="_blank">news sentiment competition at Kaggle</a>, providing free sentiment data from Thomson-Reuters for testing. That data started from 2007 and covers about 2,000 US stocks (those with daily trading dollar volume of roughly $1M or more), and complemented with price and volume of those stocks provided by Intrinio. Finally, we get to look for alpha from an industry-leading source of news sentiment data!<br />
<br />
The evaluation criterion of the competition is effectively the Sharpe ratio of a user-constructed market-neutral portfolio of stock positions held over 10 days. (By market-neutral, we mean zero beta. Though that isn't the way Two Sigma put it, it can be shown <a href="http://www.kaggle.com/marketneutral/eda-what-does-mktres-mean" target="_blank">statistically</a> and mathematically that their criterion is equivalent to our statement.) This is conveniently the Sharpe ratio of the "alpha", or excess returns, of a trading strategy using news sentiment.<br />
<br />
It may seem straightforward to devise a simple trading strategy to test for alpha with pre-processed news sentiment scores, but Kaggle and Two Sigma together made it unusually cumbersome and time-consuming to conduct this research. Here are some common complaints from Kagglers, and we experienced the pain of all of them:<br />
<br />
<ol>
<li>As no one is allowed to download the precious news data to their own computers for analysis, research can only be conducted via Jupyter Notebook run on Kaggle's servers. As anyone who has tried Jupyter Notebook knows, it is a great real-time collaborative and presentation platform, but a very unwieldy debugging platform</li>
<li>Not only is Jupyter Notebook a sub-optimal tool for efficient research and software development, we are only allowed to use 4 CPU's and a very limited amount of memory for the research. GPU access is blocked, so good luck running your deep learning models. Even simple data pre-processing killed our kernels (due to memory problems) so many times that our hair was thinning by the time we were done.</li>
<li>Kaggle kills a kernel if left idle for a few hours. Good luck training a machine learning model overnight and not getting up at 3 a.m. to save the results just in time.</li>
<li>You cannot upload any supplementary data to the kernel. Forget about using your favorite market index as input, or hedging your portfolio with your favorite ETP.</li>
<li>There is no "securities master database" for specifying a unique identifier for each company and linking the news data with the price data.</li>
</ol>
<div>
The last point requires some elaboration. The price data uses two identifiers for a company, assetCode and assetName, neither of which can be used as its unique identifier. One assetName such as Alphabet can map to multiple assetCodes such as GOOG.O and GOOGL.O. We need to keep track of GOOG.O and GOOGL.O separately because they have different price histories. This presents difficulties that are not present in industrial-strength databases such as CRSP, and requires us to devise our own algorithm to create a unique identifier. We did it by finding out for each assetName whether the histories of its multiple assetCodes overlapped in time. If so, we treated each assetCode as a different unique identifier. If not, then we just used the last known assetCode as the unique identifier. In the latter case, we also checked that “joining” the multiple assetCodes made sense by checking that the gap between the end of one and the start of the other was small, and that the prices made sense. With only around 150 cases, these could all be checked externally. On the other hand, the news data has only assetName as the unique identifier, as presumably different classes of stocks such as GOOG.O and GOOGL.O are affected by the same news on Alphabet. So each news item is potentially mapped to multiple price histories.</div>
<div>
<br /></div>
<div>
The price data is also quite noisy, and Kagglers spent much time replacing bad data with good ones from outside sources. (As noted above, this can't be done algorithmically as data can neither be downloaded nor uploaded to the kernel. The time-consuming manual process of correcting the bad data seemed designed to torture participants.) It is harder to determine whether the news data contained bad data, but at the very least, time series plots of the statistics of some of the important news sentiment features revealed no structural breaks (unlike those of another vendor we tested previously.) </div>
<div>
<br /></div>
<div>
To avoid overfitting, we first tried the two most obvious numerical news features: Sentiment and Relevance. The former ranges from -1 to 1 and the latter from 0 to 1 for each news item. The simplest and most sensible way to combine them into a single feature is to multiply them together. But since there can be many news item for a stock per day, and we are only making a prediction once a day, we need some way to aggregate this feature over one or more days. We compute a simple moving average of this feature over the last 5 days (5 is the only parameter of this model, optimized over training data from 20070101 to 20141231). Finally, the predictive model is also as simple as we can imagine: if the moving average is positive, buy the stock, and short it if it is negative. The capital allocation across all trading signals is uniform. As we mentioned above, the evaluation criterion of this competition means that we have to enter into such positions at the market open on day t+1 after all the news sentiment data for day t was known by midnight (in UTC time zone). The position has to be held for 10 trading days, and exit at the market open on day t+11, and any net beta of the portfolio has to be hedged with the appropriate amount of the market index. The alpha on the validation set from 20150101 to 20161231 is about 2.3% p.a., with an encouraging Sharpe ratio of 1. The alpha on the out-of-sample test set from 20170101 to 20180731 is a bit lower at 1.8% p.a., with a Sharpe ratio of 0.75. You might think that this is just a small decrease, until you take a look at their respective equity curves:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN5GELo3zgAj1hxSPQh_FY_MAUOecKiBvVZbwqnHt_B2RL7qHmkP9WGIv_Gf9MDJxR1Q77SzbVk4bn_BiPf_nU4Ctkd7lsvUdCyDc5y85zi7YtpstKerSkoM2et-iZSBBNNLxy7g/s1600/News+strategy+validation+set.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="418" data-original-width="615" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN5GELo3zgAj1hxSPQh_FY_MAUOecKiBvVZbwqnHt_B2RL7qHmkP9WGIv_Gf9MDJxR1Q77SzbVk4bn_BiPf_nU4Ctkd7lsvUdCyDc5y85zi7YtpstKerSkoM2et-iZSBBNNLxy7g/s400/News+strategy+validation+set.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHQLrWwICgNvZg2I-bTxUMzgNVcnbx6Y-OQixl6nUIU3H7CmOyBFcWDqtFetdZmRdNwa3wIjNk7dA1uDaW9ZyzLU_TibRY8Ei4p3ThcI3vo-GXl4jLdiEN8QxPW4U1Myn9Slw4Q/s1600/News+strategy+test+set.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="585" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHQLrWwICgNvZg2I-bTxUMzgNVcnbx6Y-OQixl6nUIU3H7CmOyBFcWDqtFetdZmRdNwa3wIjNk7dA1uDaW9ZyzLU_TibRY8Ei4p3ThcI3vo-GXl4jLdiEN8QxPW4U1Myn9Slw4Q/s400/News+strategy+test+set.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
One cliché in data science confirmed: a picture is worth a thousand words. (Perhaps you’ve heard of the <a href="https://en.wikipedia.org/wiki/Anscombe%27s_quartet" target="_blank">Anscombe's Quartet</a>?) We would happily invest in a strategy that looked like that in the validation set, but no way would we do so for that in the test set. What kind of overfitting have we done for the validation set that caused so much "variance" (in the bias-variance sense) in the test set? The honest answer is: Nothing. As we discussed above, the strategy was specified based only on the train set, and the only parameter (5) was also optimized purely on that data. The validation set is effectively an out-of-sample test set, no different from the "test set". We made the distinction between validation vs test sets in this case in anticipation of machine learning hyperparameter optimization, which wasn't actually used for this simple news strategy. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We will comment more on this deterioration in performance for the test set later. For now, let’s address another question: Can categorical features improve the performance in the validation set? We start with 2 categorical features that are most abundantly populated across all news items and most intuitively important: headlineTag and audiences. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The headlineTag feature is a single token (e.g. "BUZZ"), and there are 163 unique tokens. The audiences feature is a set of tokens (e.g. {'O', 'OIL', 'Z'}), and there are 191 unique tokens. The most natural way to deal with such categorical features is to use "one-hot-encoding": each of these tokens will get its own column in the feature matrix, and if a news item contains such a token, the corresponding column will get a "True" value (otherwise it is "False"). One-hot-encoding also allows us to aggregate these features over multiple news items over some lookback period. To do that, we decided to use the OR operator to aggregate them over the most recent trading day (instead of the 5-day lookback for numerical features). I.e. as long as one news item contains a token within the most recent day, we will set that daily feature to True. Before trying to build a predictive model using this feature matrix, we compared their features importance to other existing features using boosted random forest, as implemented in LightGBM. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOwGEUaA_kXl4KXT44Hbt7lFcyxs4fnl_BxkywglqTBeRK-scjQ4TeLGQoT-cv0UTYO7dvOgd5yruHJV6qQ251aL8-t6733V6-0i7VOdNybUrQm2ddunmCTbyMvvvvzFgseFPWSg/s1600/Features+importance+LGBM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="193" data-original-width="906" height="85" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOwGEUaA_kXl4KXT44Hbt7lFcyxs4fnl_BxkywglqTBeRK-scjQ4TeLGQoT-cv0UTYO7dvOgd5yruHJV6qQ251aL8-t6733V6-0i7VOdNybUrQm2ddunmCTbyMvvvvzFgseFPWSg/s400/Features+importance+LGBM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These categorical features are nowhere to be found in the top 5 features compared to the price features (returns). But more shockingly, LightGBM returned assetCode as the most important feature! That is a common fallacy of using train data for feature importance ranking (the problem is highlighted by <a href="https://www.kaggle.com/marketneutral/the-fallacy-of-encoding-assetcode" target="_blank">Larkin</a>.) If a classifier knows that GOOG had a great Sharpe ratio in-sample, of course it is going to predict GOOG to have positive residual return no matter what! The proper way to compute feature importance is to apply <a href="https://www.amazon.com/Advances-Financial-Machine-Learning-Marcos/dp/1119482089/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=d7381a1bc4fd7adf25c210b2967e15be&creativeASIN=1119482089" target="_blank">Mean Decrease Accuracy</a> (MDA) using validation data or with cross-validation (see our <a href="http://www.kaggle.com/chanep/assetcode-with-mda-using-random-data" target="_blank">kernel</a> demonstrating that assetCode is no longer an important feature once we do that.) Alternatively, we can manually exclude such features that remain constant through the history of a stock from features importance ranking. Once we have done that, we find the most important features are</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftipeXELT07Lof60YIEgoIOefOnmGVpUXrfapzShCqG0yBFFzqfwPVLporAbp-dFBPx1OEq9SnoYYhptDO1-vOKCiBg-e6i15SBQoyfZySWWi_NKSIalJBkIsX_Jvod02TE37QA/s1600/Correct+features+importance+LGBM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="264" data-original-width="942" height="111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftipeXELT07Lof60YIEgoIOefOnmGVpUXrfapzShCqG0yBFFzqfwPVLporAbp-dFBPx1OEq9SnoYYhptDO1-vOKCiBg-e6i15SBQoyfZySWWi_NKSIalJBkIsX_Jvod02TE37QA/s400/Correct+features+importance+LGBM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Compared to the price features, these categorical news features are much less important, and we find that adding them to the simple news strategy above does not improve performance.<br />
<br />
So let's return to the question of why it is that our simple news strategy suffered such deterioration of performance going from validation to test set. (We should note that it isn’t just us that were unable to extract much value from the news data. Most other kernels published by other Kagglers have not shown any benefits in incorporating news features in generating alpha either. Complicated price features with complicated machine learning algorithms are used by many leading contestants that have published their kernels.) We have already ruled out overfitting, since there is no additional information extracted from the validation set. The other possibilities are bad luck, regime change, or alpha decay. Comparing the two equity curves, bad luck seems an unlikely explanation. Given that the strategy uses news features only, and not macroeconomic, price or market structure features, regime change also seems unlikely. Alpha decay seems a likely culprit - by that we mean the decay of alpha due to competition from other traders who use the same features to generate signals. A recently published academic paper (<a href="https://jpm.iijournals.com/content/45/2/58" target="_blank">Beckers, 2018</a>) lends support to this conjecture. Based on a meta-study of most published strategies using news sentiment data, the author found that such strategies generated an information ratio of 0.76 from 2003 to 2007, but only 0.25 from 2008-2017, a drop of 66%!<br />
<br />
Does that mean we should abandon news sentiment as a feature? Not necessarily. Our predictive horizon is constrained to be 10 days. Certainly one should test other horizons if such data is available. When we gave a summary of our findings at a conference, a member of the audience suggested that news sentiment can still be useful if we are careful in choosing which country (India?), or which sector (defence-related stocks?), or which market cap (penny stocks?) we apply it to. We have only applied the research to US stocks in the top 2,000 of market cap, due to the restrictions imposed by Two Sigma, but there is no reason you have to abide by those restrictions in your own news sentiment research.<br />
<br />
----<br />
<b><br /></b>
<b>Workshop update:</b><br />
<br />
We have launched a new online course "Lifecycle of Trading Strategy Development with Machine Learning." This is a 12-hour, in-depth, online workshop focusing on the challenges and nuances of working with financial data and applying machine learning to generate trading strategies. We will walk you through the complete lifecycle of trading strategies creation and improvement using machine learning, including automated execution, with unique insights and commentaries from our own research and practice. We will make extensive use of Python packages such as Pandas, Scikit-learn, LightGBM, and execution platforms like QuantConnect. It will be co-taught by Dr. Ernest Chan and Dr. Roger Hunter, principals of QTS Capital Management, LLC. See <a href="http://www.epchan.com/workshops">www.epchan.com/workshops</a> for registration details.</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com5tag:blogger.com,1999:blog-35364652.post-55496497578853890502019-04-05T09:13:00.002-04:002019-04-10T19:44:03.018-04:00The most overlooked aspect of algorithmic tradingMany algorithmic traders justifiably worship the legends of our industry, people like Jim Simons, David Shaw, or <a href="https://amzn.to/2HQvyaa" target="_blank">Peter Muller</a>, but there is one aspect of their greatness most traders have overlooked. They have built their businesses and vast wealth not just by sitting in front of their trading screens or scribbling complicated equations all day long, but by collaborating and managing other talented traders and researchers. If you read the recent <a href="https://youtu.be/srbQzrtfEvY" target="_blank">interview</a> of Simons, or the book by <a href="https://amzn.to/2I3t33f" target="_blank">Lopez de Prado</a> (head of machine learning at AQR), you will notice that both emphasized a collaborative approach to quantitative investment management. Simons declared that total transparency within Renaissance Technologies is one reason of their success, and Lopez de Prado deemed the "production chain" (assembly line) approach the best meta-strategy for quantitative investment. One does not need to be a giant of the industry to practice team-based strategy development, but to do that well requires years of practice and trial and error. While this sounds no easier than developing strategies on your own, it is more sustainable and scalable - we as individual humans do get tired, overwhelmed, sick, or old sometimes. My experience in team-based strategy development falls into 3 categories: 1) pair-trading, 2) hiring researchers, and 3) hiring subadvisors. Here are my thoughts.<br />
<br />
<h4>
From Pair Programming to Pair Trading</h4>
<br />
Software developers may be familiar with the concept of "pair programming". I.e. two programmers sitting in front of the same screen staring at the same piece of code, and taking turns at the keyboard. According to <a href="https://amzn.to/2WxS22J" target="_blank">software experts</a>, this practice reduces bugs and vastly improves the quality of the code. I have found that to work equally well in trading research and executions, which gives new meaning to the term "pair trading".<br />
<br />
The more different the pair-traders are, the more they will learn from each other at the end of the day. One trader may be detail-oriented, while another may be bursting with ideas. One trader may be a programmer geek, and another may have a CFA. Here is an example. In financial data science and machine learning, data cleansing is a crucial step, often seriously affecting the validity of the final results. I am, unfortunately, often too impatient with this step, eager to get to the "red meat" of strategy testing. Fortunately, my colleagues at <a href="http://www.qtscm.com/" target="_blank">QTS Capital</a> are much more patient and careful, leading to much better quality work and invalidating quite a few of my bogus strategies along the way. Speaking of invalidating strategies, it is crucial to have a pair-trader independently backtest a strategy before trading it, preferably in two different programming languages. As I have written in my <a href="https://amzn.to/2HUiyQG" target="_blank">book</a>, I backtest with Matlab and others in my firm use Python, while the final implementation as a production system by my pair-trader Roger is always in C#. Often, subtle biases and bugs in a strategy will be revealed only at this last step. After the strategy is "cross-validated" by your pair-trader, and you have moved on to live trading, it is a good idea to have one human watching over the trading programs at all times, even for fully automated strategies. (For the same reason, I always have my foot ready on the brake even though my car has a collision avoidance system.) Constant supervision requires two humans, at least, especially if you trade in international as well as domestic markets.<br />
<br />
Of course, pair-trading is not just about finding bugs and monitoring live trading. It brings to you new ideas, techniques, strategies, or even completely new businesses. I have started two hedge funds in the past. In both cases, it started with me consulting for a client, and the consulting progressed to a collaboration, and the collaboration became so fruitful that we decided to start a fund to trade the resulting strategies.<br />
<br />
For balance, I should talk about a few downsides to pair-trading. Though the final product's quality is usually higher, collaborative work often takes a lot longer. Your pair-trader's schedule may be different from yours. If the collaboration takes the form of a formal partnership in managing a fund or business, be careful not to share ultimate control of it with your pair-trading partner (sharing economic benefits is of course necessary). I had one of my funds shut down due to the early retirement of my partner. One of the reasons I started trading independently instead of working for a large firm is to avoid having my projects or strategies prematurely terminated by senior management, and having a partner involuntarily shuts you down is just as bad.<br />
<br />
Where to find your pair-trader? Publish your ideas and knowledge to social media is the easiest way (note this blog here). Whether you blog, tweet, quora, linkedIn, podcast, or youTube, if your audience finds you knowledgeable, you can entice them to a collaboration.<br />
<br />
<h4>
Hiring Researchers</h4>
Besides pair-trading with partners on a shared intellectual property basis, I have also hired various interns and researchers, where I own all the IP. They range from undergraduates to post-doctoral researchers (and I would not hesitate to hire talented high schoolers either.) The difference with pair-traders is that as the hired quants are typically more junior in experience and hence require more supervision, and they need to be paid a guaranteed fee instead of sharing profits only. Due to the guaranteed fee, the screening criterion is more important. I found short interviews, even one with brain teasers, to be quite unpredictive of future performance (no offence, D.E. Shaw.) We settled on giving an applicant a tough financial data science problem to be done at their leisure. I also found that there is no particular advantage to being in the same physical office with your staff. We have worked very well with interns spanning the globe from the UK to Vietnam.<br />
<br />
Though physical meetings are unimportant, regular Google Hangouts with screen-sharing is essential in working with remote researchers. Unlike with pair-traders, there isn't time to work together on coding with all the different researchers. But it is very beneficial to walk through their codes whenever results are available. Bugs will be detected, nuances explained, and very often, new ideas come out of the video meetings. We used to have a company-wide weekly video meetings where a researcher would present his/her results using Powerpoints, but I have found that kind of high level presentation to be less useful than an in-depth code and result review. Powerpoint presentations are also much more time-consuming to prepare, whereas a code walk-through needs little preparation.<br />
<br />
Generally, even undergraduate interns prefer to develop a brand new strategy on their own. But that is not necessarily the most productive use of their talent for the firm. It is rare to be able to develop and complete a trading strategy using machine learning within a summer internship. Also, if the goal of the strategy is to be traded as an independent managed account product (e.g. our <a href="https://www.qtscm.com/accounts" target="_blank">Futures strategy</a>), it takes a few years to build a track record for it to be marketable. On the other hand, we can often see immediate benefits from improving an existing strategy, and the improvement can be researched within 3 or 4 months. This also fits within the "production chain" meta-strategy described by Lopez de Prado above, where each quant should mainly focus on one aspect of the strategy production.<br />
<br />
This whole idea of emphasizing improving existing strategies over creating new strategies was suggested to us by our post-doctoral researcher, which leads me to the next point.<br />
<br />
Sometimes one hires people because we need help with something we can do ourselves but don't have time to. This would generally be the reason to hire undergraduate interns. But sometimes, I hire people who are better than I am at something. For example, despite my theoretical physics background, my stochastic calculus isn't top notch (to put it mildly). This is remedied by hiring our postdoc Ray who found tedious mathematics a joy rather than a drudgery. While undergraduate interns improve our productivity, graduate and post-doctoral researchers are generally able to break new ground for us. For these quants, they require more freedom to pursue their projects, but that doesn't mean we can skip the code reviews and weekly video conferences, just like what we do with pair-traders.<br />
<br />
Some firms may spend a lot of time and money to find such interns and researchers using professional recruiters. In contrast, these hires generally found their way to us, despite our minuscule size. That is because I am known as an educator (both formally as adjunct faculty in universities, as well as informally on social media and through books). Everybody likes to be educated while getting paid. If you develop a reputation of being an educator in the broadest sense, you shall find recruits coming to you too.<br />
<br />
<h4>
Hiring Subadvisors</h4>
<div>
If one decides to give up on intellectual property creation, and just go for returns on investment, finding subadvisors to trade your account isn't a bad option. After all, creating IP takes a lot of time and money, and finding a profitable subadvisor will generate that cash flow and diversify your portfolio and revenue stream while you are patiently doing research. (In contrast to Silicon Valley startups where the cash for IP creation comes from venture capital, cash flow for hedge funds like ours comes mainly from fees and expense reimbursements, which are quite limited unless the fund is large or very profitable.)</div>
<div>
<br /></div>
<div>
We have tried a lot of subadvisors in the past. All but one failed to deliver. Why? That is because we were cheap. We picked "emerging" subadvisors who had profitable, but short, track records, and charged lower fees. To our chagrin, their long and deep drawdown typically immediately began once we hired them. There is a name for this: it is called selection bias. If you generate 100 geometric random walks representing the equity curves of subadvisors, it is likely that one of them has a Sharpe ratio greater than 2 if the random walk has only 252 steps. </div>
<div>
<br /></div>
<div>
Here, I simulated 100 normally distributed returns series with 252 bars, and sure enough, the maximum Sharpe ratio of those is 2.8 (indicated by the red curve in the graph below.)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNeTKtYE_FiKmS9iEBhfTbrlfB0DewYb8q6A1-NYYExrOh3lhNbgjgqsrLF_2ktOcOn1YSYa5_6fB59B1C60jZTeo4njkJxSs_HGkGgkwyM-6rO8FGAoTW894VbMspoysbrZP0-w/s1600/randomWalk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNeTKtYE_FiKmS9iEBhfTbrlfB0DewYb8q6A1-NYYExrOh3lhNbgjgqsrLF_2ktOcOn1YSYa5_6fB59B1C60jZTeo4njkJxSs_HGkGgkwyM-6rO8FGAoTW894VbMspoysbrZP0-w/s400/randomWalk.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
(The first 3 readers who can email me a correct analytical expression with a valid proof that describes the cumulative probability P of obtaining a Sharpe ratio greater than or equal to S of a normally distributed returns series of length T <b>will get a free copy of my book <a href="https://www.amazon.com/Machine-Trading-Deploying-Computer-Algorithms/dp/1119219604/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=b6c22e03b04fdcf3f6a14bc4b5891edb&creativeASIN=1119219604" target="_blank">Machine Trading</a></b>. At their option, I can also tweet their names and contact info to attract potential employment or consulting opportunities.)</div>
<div>
<br /></div>
<div>
These lucky subadvisors are unlikely to maintain their Sharpe ratios going forward. To overcome this selection bias, we adopted this rule: whenever a subadvisor approaches us, we time-stamp that as Day Zero. We will only pay attention to the performance thereafter. This is similar in concept to "paper trading" or "walk-forward testing". </div>
<div>
<br /></div>
<div>
Subadvisors with longer profitable track records do pass this test more often than "emerging" subadvisors. But these subadvisors typically charge the full 2 and 20 fees, and the more profitable ones may charge even more. Some investors balk at those high fees. I think these investors suffer from a behavioral finance bias, which for lack of a better term I will call "Scrooge syndrome". Suppose one owns Amazon's stock that went up 92461% since IPO. Does one begrudge Jeff Bezo's wealth? Does one begrudge the many millions he rake in every day? No, the typical investor only cares about the net returns on equity. So why does this investor suddenly becomes so concerned with the difference between gross and net return of a subadvisor? As long as the net return is attractive, we shouldn't care how much fees the subadvisor is raking in. Renaissance Technologies' Medallion Fund reportedly charges 5 and 44, but most people would jump at the chance of investing if they were allowed.</div>
<div>
<br /></div>
<div>
Besides fees, some quant investors balk at hiring subadvisors because of pride. That is another behavioral bias, which is known as the "NIH syndrome" (Not Invented Here). Nobody would feel diminished buying AAPL even though they were not involved in creating the iPhone at Apple, why should they feel diminished paying for a service that generates uncorrelated returns? Do they think they alone can create every new strategy ever discoverable by humankind?</div>
<div>
<br /></div>
<h4>
Epilogue</h4>
<div>
<br /></div>
<div>
Your ultimate wealth when you are 100 years old will more likely be determined by the strategies created by your pair-traders, your consultants/employees, and your subadvisors, than the amazing strategies you created in your twenties. Hire well.</div>
<div>
<br /></div>
<div>
===</div>
<div>
<br /></div>
<h4>
Industry update</h4>
<div>
<br /></div>
<div>
1) A python package for market simulations by Techila<span style="background-color: white; color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;"> </span>is available <a href="http://www.techilatechnologies.com/python-how-to" target="_blank">here</a>. It enables easy parallel computations.</div>
<div>
<br /></div>
<div>
2) A very readable new <a href="https://amzn.to/2UeABI1" target="_blank">book</a> on using R in Finance by Jonathan Regenstein, who is the Director of Financial Services Practice at RStudio.</div>
<div>
<br /></div>
<div>
3) PsyQuation now provides an <a href="https://psyquation.com/en/premium" target="_blank">order flow sentiment indicator</a>.</div>
<div>
<br /></div>
<div>
4) Larry Connors published a new <a href="https://amzn.to/2Db9Auu" target="_blank">book</a> on simple but high Sharpe ratio strategies. I enjoyed reading it very much.</div>
<div>
<br /></div>
<div>
5) <a href="https://qresearch.qedgeam.com/" target="_blank">QResearch</a> is a backtest platform for the Chinese stock market for non-programmers. </div>
<div>
<br /></div>
<div>
6) Logan Kane describes an innovative application of volatility prediction <a href="https://seekingalpha.com/article/4226165-trading-strategy-beat-s-and-p-500-16-plus-percentage-points-per-year-since-1928" target="_blank">here</a>.</div>
<div>
<br /></div>
<div>
7) If you aren't following @VolatilityQ on Twitter, you are missing out on a lot of quant research and alphas.</div>
<div>
<br /></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com45tag:blogger.com,1999:blog-35364652.post-81961070684581416962018-06-29T07:45:00.003-04:002018-06-29T07:45:49.867-04:00Loss aversion is not a behavioral biasIn his famous book "<a href="https://amzn.to/2yU4IKr" target="_blank">Thinking, Fast and Slow</a>", the Nobel laureate Daniel Kahneman described one common example of a behavioral finance bias:<br />
<br />
"You are offered a gamble on the toss of a [fair] coin.<br />
If the coin shows tails, you lose $100.<br />
If the coin shows heads, you win $110.<br />
Is this gamble attractive? Would you accept it?"<br />
<br />
(I have modified the numbers to be more realistic in a financial market setting, but otherwise it is a direct quote.)<br />
<br />
Experiments show that most people would not accept this gamble, even though the expected gain is $5. This is the so-called "loss aversion" behavioral bias, and is considered irrational. Kahneman went on to write that "professional risk takers" (read "traders") are more willing to act rationally and accept this gamble.<br />
<br />
It turns out that the loss averse "layman" is the one acting rationally here.<br />
<br />
It is true that if we have infinite capital, and can play infinitely many rounds of this game simultaneously, we should expect $5 gain per round. But trading isn't like that. We are dealt one coin at a time, and if we suffer a string of losses, our capital will be depleted and we will be in debtor prison if we keep playing. The proper way to evaluate whether this game is attractive is to evaluate the expected compound rate of growth of our capital.<br />
<br />
Let's say we are starting with a capital of $1,000. The expected return of playing this game once is initially 0.005. The standard deviation of the return is 0.105. To simplify matters, let's say we are allowed to adjust the payoff of each round so we have the same expected return and standard deviation of return each round. For e.g. if at some point we earned so much that we doubled our capital to $2,000, we are allowed to win $220 or lose $200 per round. What is the expected growth rate of our capital? According to standard <a href="http://epchan.blogspot.com/2017/05/paradox-resolved-why-risk-decreases.html" target="_blank">stochastic calculus</a>, in the continuous approximation it is -0.0005125 per round - we are losing, not gaining! The layman is right to refuse this gamble.<br />
<br />
Loss aversion, in the context of a risky game played repeatedly, is rational, and not a behavioral bias. Our primitive, primate instinct grasped a truth that behavioral economists cannot. It only seems like a behavioral bias if we take an "ensemble view" (i.e. allowed infinite capital to play many rounds of this game simultaneously), instead of a "time series view" (i.e. allowed only finite capital to play many rounds of this game in sequence, provided we don't go broke at some point). The time series view is the one relevant to all traders. In other words, take time average, not ensemble average, when evaluating real-world risks.<br />
<br />
The important difference between ensemble average and time average has been raised in this <a href="https://aip.scitation.org/doi/full/10.1063/1.4940236" target="_blank">paper</a> by Ole Peters and Murray Gell-Mann (another Nobel laureate like Kahneman.) It deserves to be much more widely read in the behavioral economics community. But beyond academic interest, there is a practical importance in emphasizing that loss aversion is rational. As traders, we should <b>not </b>only focus on average returns: risks can depress compound returns severely.<br />
<br />
===<br />
<br />
Industry update<br />
<br />
1) <a href="https://alpaca.markets/)" target="_blank">Alpaca</a> is a new an algo-trading API brokerage platform with zero commissions.<br />
<br />
2) <a href="https://www.algotrader.com/features/" target="_blank">AlgoTrader</a> started a new quant strategy development and implementation platform.<br />
<br />
<b>My Upcoming Workshop</b><br />
<b><br /></b>
August 4 and 11: <a href="http://www.epchan.com/workshops/" target="_blank">Artificial Intelligence Techniques for Traders</a><br />
<br />
I briefly discussed why AI/ML techniques are now part of the standard toolkit for quant traders <a href="https://www.youtube.com/watch?v=5-nG8NSzE1s&t=5s" target="_blank">here</a>. This real-time online workshop will take you through many of the nuances of applying these techniques to trading.Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com41tag:blogger.com,1999:blog-35364652.post-89741838450060432782018-02-02T05:02:00.000-05:002018-02-02T05:02:21.885-05:00FX Order Flow as a PredictorOrder flow is signed trade size, and it has long been known to be predictive of future price changes. (See <a href="http://amzn.to/2DKKn8j" target="_blank">Lyons, 2001</a>, or <a href="https://www.amazon.com/Machine-Trading-Deploying-Computer-Algorithms/dp/1119219604/ref=as_sl_pc_tf_til?tag=quantitativet-20&linkCode=w00&linkId=b6c22e03b04fdcf3f6a14bc4b5891edb&creativeASIN=1119219604" target="_blank">Chan, 2017</a>.) The problem, however, is that it is often quite difficult or expensive to obtain such data, whether historical or live. This is especially true for foreign exchange transactions which occur over-the-counter. Recognizing the profit potential of such data, most FX market operators guard them as their crown jewels, never to be revealed to customers. But recently FXCM, a FX broker, has kindly provided me with their <a href="https://www.fxcm.com/uk/trading-services/market-data/" target="_blank">proprietary data</a>, and I have made use of that to test a simple trading strategy using order flow on EURUSD.<br />
<br />
First, let us examine some general characteristics of the data. It captures all trades transacted on FXCM occurring in 2017, time stamped in milliseconds, and with their trade prices and signed trade sizes. The sign of a trade is positive if it is the result of a buy market order, and negative if it is the result of a sell. If we take the absolute value of these trade sizes and sum them over hourly intervals, we obtain the usual hourly volumes (click to enlarge) aggregated over the 1 year data set:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSb_PW_6PCkE4gIbsM2CwupQXfzcvG3_mVGo6COQqfyqHq-cYowW8wG8m5gJhMDNlKWDH88usOzs78Rd_t54Y_-rQhLGpxL2TpXZvAIY5j2iS-zSU5r7LpMz1QQaED8n3eQqUb4w/s1600/hourlyVolume.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSb_PW_6PCkE4gIbsM2CwupQXfzcvG3_mVGo6COQqfyqHq-cYowW8wG8m5gJhMDNlKWDH88usOzs78Rd_t54Y_-rQhLGpxL2TpXZvAIY5j2iS-zSU5r7LpMz1QQaED8n3eQqUb4w/s400/hourlyVolume.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It is not surprising that the highest volume occurs between 16:00-17:00 London time, as 16:00 is when the benchmark rate (the "<a href="https://www.investopedia.com/articles/forex/031714/how-forex-fix-may-be-rigged.asp" target="_blank">fix</a>") is determined. The secondary peak at 9:00-10:00 is of course the start of the business day in London.<br />
<br />
Next, I compute the daily total order flow of EURUSD (with the end of day at New York's midnight), and I establish a histogram of the last 20 days' daily order flow. I then determine the average next-day return of each daily order flow quintile. (I.e. I bin a next-day return based on which quintile the prior day's order flow fell into, and then take the average of the returns in each bin.) The result is satisfying:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0lYe72txg8HeMMDjAT2uOxBZ0P10mW95oTNsPsOPDVzlc7bhvfjpr4VyYwozZ-UgnhkcWJJG538nLQYhFhGcI9pxaocM9gXhMNkIcRj9-VQKMwPEjp34MoSv7lPuGcEqxVVSGOw/s1600/order+flow+return+quintiles.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0lYe72txg8HeMMDjAT2uOxBZ0P10mW95oTNsPsOPDVzlc7bhvfjpr4VyYwozZ-UgnhkcWJJG538nLQYhFhGcI9pxaocM9gXhMNkIcRj9-VQKMwPEjp34MoSv7lPuGcEqxVVSGOw/s400/order+flow+return+quintiles.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
We can see that the average next-day returns are almost monotonically increasing with the previous day's order flow. The spread between the top and bottom quintiles is about 12 bps, which annualizes to about 30%. This doesn't mean we will generate 30% annualized returns, since we won't be able to arbitrage between today's return (if the order flow is in the top or bottom quintile) with some previous day's return when its order flow was in the opposite extreme. Nevertheless, it is encouraging. Also, this is an illustration that even though order flow must be computed on a tick-by-tick basis (I am not a fan of the <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2182819" target="_blank">bulk volume classification</a> technique), it can be used in low-frequency trading strategies.<br />
<br />
(One may be tempted to also regress future returns against past order flows, but the result is statistically insignificant. Apparently only the top and bottom quintiles of order flow are predictive. This situation is actually quite <a href="https://www.bloomberg.com/news/articles/2017-06-27/ex-bridgewater-quant-says-smart-beta-etfs-use-factors-all-wrong" target="_blank">common</a> in finance, which is why linear regression isn't used more often in trading strategies.)<br />
<br />
Finally, one more sanity check before backtesting. I want to see if the buy trades (trades resulting from buy market orders) are filled above the bid price, and the sell trades are filled below the ask price. Here is the plot for one day (times are in New York):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJlwaOC-WeG5xXrT1rgefXhyOS37csnjXELLGbYWSYDsv_EfE6b9RbydNqBgMkidgHzwvddbs8TraElPvft9KId8iSYSRukkoStfMcwX3qpnmwvsDT-ZaY3kqvUyowUMlq5nhsmA/s1600/compare+trade+vs+quote+prices.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJlwaOC-WeG5xXrT1rgefXhyOS37csnjXELLGbYWSYDsv_EfE6b9RbydNqBgMkidgHzwvddbs8TraElPvft9KId8iSYSRukkoStfMcwX3qpnmwvsDT-ZaY3kqvUyowUMlq5nhsmA/s400/compare+trade+vs+quote+prices.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
We can see that by and large, the relationship between trade and quote prices is satisfied. We can't really expect that this relationship holds 100%, due to rare occasions that the quote has moved in the sub-millisecond after the trade occurred and the change is reported as synchronous with the trade, or when there is a delay in the reporting of either a trade or a quote change.<br />
<br />
So now we are ready to construct a simple trading strategy that uses order flow as a predictor. We can simply buy EURUSD at the end of day when the daily flow is in the top quintile among its last 20 days' values, and hold for one day, and short it when it is in the bottom quintile. Since our daily flow was measured at midnight New York time, we also define the end of day at that time. (Similar results are obtained if we use London or Zurich's midnight, which suggests we can stagger our positions.) In my backtest, I have subtracted 0.20 bps commissions (based on Interactive Brokers), and I assume I buy at the ask and sell at the bid using market orders. The equity curve is shown below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6J-sUli0Uveemufn7684ch1MxLcegtKAmC6VYRnXgweMkT5LqhNJ9A15dURJbRlIgeMF2PDzcbPNLM7LlGkXY4K5LKyzWrxB2BxUWYNF1bgK38D31R9PqzyQqDk5QGjKJYJNXfw/s1600/equity+curve.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6J-sUli0Uveemufn7684ch1MxLcegtKAmC6VYRnXgweMkT5LqhNJ9A15dURJbRlIgeMF2PDzcbPNLM7LlGkXY4K5LKyzWrxB2BxUWYNF1bgK38D31R9PqzyQqDk5QGjKJYJNXfw/s400/equity+curve.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The CAGR is 13.7%, with a Sharpe ratio of 1.6. Not bad for a single factor model!<br />
<br />
<i>Acknowledgement</i>: I thank <a href="http://zacharydavid.com/" target="_blank">Zachary David</a> for his review and comments on an earlier draft of this post, and of course FXCM for providing their <a href="https://www.fxcm.com/uk/trading-services/market-data/" target="_blank">data</a> for this research.<br />
<br />
===<br />
<br />
Industry update<br />
<br />
1) <a href="http://www.qbitia.com/" target="_blank">Qcaid</a> is a cloud-based platform that provides traders with backtesting, execution, and simulation facilities. They also provide servers and data feed.<br />
<br />
2) <a href="https://blog.cadre.com/how-cadre-uses-machine-learning-to-target-real-estate-markets-3c03ca1dac26" target="_blank">How Cadre Uses Machine Learning to Target Real Estate Markets</a>.<br />
<br />
3) Check out Quantopian's new <a href="https://www.quantopian.com/tutorials/getting-started" target="_blank">tutorial</a> on getting started in quantitative finance.<br />
<br />
4) A new Matlab-based backtest and live trading platform for download <a href="https://github.com/EliteQuant/EliteQuant_Matlab" target="_blank">here</a>.<br />
<br />
5) A nice resource page for open source algorithmic trading tools at <a href="http://www.quantnews.com/resources/" target="_blank">QuantNews</a>.<br />
<br />
<b>My Upcoming Workshops</b><br />
<b><br /></b>
February 24 and March 3: <a href="http://www.epchan.com/workshops" target="_blank">Algorithmic Options Strategies</a><br />
<br />
This online course focuses on backtesting intraday and portfolio option strategies. No pesky options pricing theories will be discussed, as the emphasis is on arbitrage trading.<br />
<br />
June 4-8: London workshops<br />
<br />
These intense 8-16 hours workshops cover <a href="http://www.globalmarkets-training.co.uk/algorithmicoptions.html" target="_blank">Algorithmic Options Strategies</a>, <a href="http://www.globalmarkets-training.co.uk/quantmomentum.html" target="_blank">Quantitative Momentum Strategies</a>, and <a href="http://www.globalmarkets-training.co.uk/intradaytrading.html" target="_blank">Intraday Trading and Market Microstructure</a>. Typical class size is under 10. They may qualify for CFA Institute continuing education credits. (Bonus: nice <a href="https://twitter.com/chanep/status/908250965786144769" target="_blank">view</a> of the Thames, and lots of free food.)<br />
<br />
<div>
<br /></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com38tag:blogger.com,1999:blog-35364652.post-62098497241003177182018-01-04T06:58:00.000-05:002018-01-04T08:05:22.904-05:00A novel capital booster: Sports Arbitrage<div class="MsoNormal">
<br />
By Stephen Hope<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=35364652" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
As traders, we of course need money to make money, but not everyone has 10-50k of capital lying around to start one's trading journey. Perhaps the starting capital is only 1k or less. This article describes how one can take a small amount of capital and multiply it as much as 10 fold in one year by taking advantage of large market inefficiencies (leading to arbitrage opportunities) in the sports asset class. However, impressive returns such as this are difficult to achieve with significantly larger seed capital, as discussed later.<br />
<br />
Arbitrage is the perfect trade if you can get your hands on one, but clearly this is exceptionally difficult in the financial markets. In contrast, the sports markets are very inefficient due to the general lack of trading APIs and patchy liquidity etc. Arbitrages can persist for minutes (or even hours at a time).<br />
<br />
Consider a very simple example of sports arbitrage; Team A vs Team B and three bookmakers quoting the odds shown in the table below. When the odds are expressed in decimal form we can calculate the implied probability of the event e occurring as quoted by bookmaker i as P(i,e) = 1/Odds(i,e) (shown in brackets in the table).<br />
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: 2.75pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.75pt; mso-table-layout-alt: fixed;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Three Way Market<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Bookmaker B1<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Bookmaker B2<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Bookmaker B3</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">Team A win<span style="color: red;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="color: red; font-size: 9.0pt;">1.4 (71.4%)</span><span lang="EN-GB" style="font-size: 9.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1.2 (83.3%)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1.2 (83.3%)</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">Team A lose<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">8.8 (11.4%)<span style="color: red;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="color: red; font-size: 9.0pt;">9.5 (10.5%)</span><span lang="EN-GB" style="font-size: 9.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">9.1 (11.0%)</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">Draw<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">5.8 (17.2%)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">6.0 (16.7%)<span style="color: red;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="color: red; font-size: 9.0pt;">6.8 (14.7%)</span></div>
</td>
</tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br /></div>
In the Three Way Market, there are only 3 possible outcomes; Team A wins, Team A loses or it's a draw. Therefore the sum of the probabilities of these 3 events should equal 100% (in a fair market). However, we can see that the market is not efficient and the combination of odds shown in red give; </div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ShDzRUSMo7fMr-dMTtnw880fCBESiHLH3kAUPMx-dmwXmtZFrX-OEvLLhx6vHWlPrn5MdlXMonY0HvQCXK3Nlz-x1MeCs_hTgfeJuWM0itl2Ke0hKjMYe6GcL_9RB5H73VkQRQ/s1600/formula_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="43" data-original-width="640" height="25" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ShDzRUSMo7fMr-dMTtnw880fCBESiHLH3kAUPMx-dmwXmtZFrX-OEvLLhx6vHWlPrn5MdlXMonY0HvQCXK3Nlz-x1MeCs_hTgfeJuWM0itl2Ke0hKjMYe6GcL_9RB5H73VkQRQ/s400/formula_1.png" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is an arbitrage opportunity in the Three Way market with 3 legs;</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=35364652" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="MsoNormal">
1_2_X and Odds = (1.4, 9.5, 6.8)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
where</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
1 = Three Way Market (home team to win)</div>
<div class="MsoNormal">
2 = Three Way Market (away team to win)</div>
<div class="MsoNormal">
X = Three Way Market (a draw)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The size of the arbitrage is given by </div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiCkPaB5UnX6wb-bW_fnwirJa62HPnlqKFuh0EYI_h5p-1h3aMeX8jGOAlhJFneHXCK8aggkuXLUPY547-yE0Pa3CXkB99pBHvpUwa4yoxDAB8gRbr-p_hnd6rJ8bv_8wDgtPUDw/s1600/formula_2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="80" data-original-width="592" height="43" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiCkPaB5UnX6wb-bW_fnwirJa62HPnlqKFuh0EYI_h5p-1h3aMeX8jGOAlhJFneHXCK8aggkuXLUPY547-yE0Pa3CXkB99pBHvpUwa4yoxDAB8gRbr-p_hnd6rJ8bv_8wDgtPUDw/s320/formula_2.png" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
and in order to realise this arbitrage we need to bet the following percentage stakes against our notional<br />
<br /></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5cJEKXNXVeKxCypzM0zUnVgsMvNNH-dpvg0fKDoFLCwnM2etXsi5sDaiWi4sZgvZjoS-DKl3fKq_lYN1DtnPw8d2tMiYFhsQiTOWMJYl_ts1jzuSVlBf-_FTk_fgMgTpa8pT19A/s1600/formula_3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="196" data-original-width="640" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5cJEKXNXVeKxCypzM0zUnVgsMvNNH-dpvg0fKDoFLCwnM2etXsi5sDaiWi4sZgvZjoS-DKl3fKq_lYN1DtnPw8d2tMiYFhsQiTOWMJYl_ts1jzuSVlBf-_FTk_fgMgTpa8pT19A/s320/formula_3.png" width="320" /></a></div>
<br /></div>
<div class="MsoNormal">
<br />
<br />
<br />
<br />
<br />
<br />
The above example is a 'simple' arbitrage. However, the majority of football arbitrage opportunities are 'complex' arbitrages. Complex in the sense that the bet legs are not mutually exclusive and more than one leg can pay out over some overlapping subset of possible outcomes. The calculation then becomes more complex. </div>
<div class="MsoNormal">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For example, consider the following 3 leg complex arbitrage;</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
AH2(-0.25)_X1_1 and Odds = (1.69, 2.1, 5.25);</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
where</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
AH2(-0.25) = <a href="http://www.valuepunter.com/asianhandicap-table.htm" target="_blank">Asian Handicap Market</a> (away team to win, handicap -0.25) </div>
<div class="MsoNormal">
X1 = Double Chance Market (home team to win or draw)</div>
<div class="MsoNormal">
1 = Three Way Market (home team to win)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We can construct a payoff matrix to more easily visualise the outcome dependent payoffs of the 3 bet legs.</div>
<div>
<br /></div>
</div>
<div class="MsoNormal">
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: 2.75pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.75pt; mso-table-layout-alt: fixed;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Payoff Matrix<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Away Team Wins<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Draw<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Home Team Wins</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">AH2(-0.25)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">0.69<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">-0.5<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">-1</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">X1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">-1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1.1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1.1</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">-1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.45pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">-1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 120.5pt;" valign="top" width="161"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">4.25</span></div>
</td>
</tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<div class="MsoNormal">
Matrix Element Meanings</div>
<div class="MsoNormal">
0.69 –> win 0.69 * stake 1 (+ stake 1 returned)</div>
<div class="MsoNormal">
1.1 –> win 1.1 * stake 2 (+ stake 2 returned)</div>
<div class="MsoNormal">
4.25 –> win 4.25 * stake 3 (+ stake 3 returned)</div>
<div class="MsoNormal">
-0.5 –> lose -0.5 * stake 1 (get half of stake 1 back)</div>
<div class="MsoNormal">
-1 –> lose -1 * stake i (lose your full stake)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The structure of the Payoff Matrix reveals a 'potential' arbitrage because there exists no column (event outcome) that contains only negative cash flows. It is a potential 'complex arbitrage' because in the event of a draw or home team win, there exists two bet legs that can give rise to a positive cash flow for the same outcome (remember, -0.5 means half of the stake is returned so is still positive). However, whether or not the arbitrage can be 'realised' depends on whether or not we can find a solution for the stake percentages for each leg that gives a positive net profit for every outcome. So how do we do this ?</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Constructed as a dynamic programming optimisation we have;</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="160" data-original-width="384" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s200/formula_4.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggoVSzYbYOfGTUE-0ECGv633WAhIOL8J-yvJ76kn-67yM2ci0Hk9NLZ3AAly-R-8xnu0lJOu6kkY-QyCxO5INGTRP-UA4RQRU3Bnk9_H4tYUPiY5RcuH1qBtSw9fJqliAchWR_w/s1600/formula_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<div class="MsoNormal">
<br /></div>
<div>
<a href="https://www.blogger.com/blogger.g?blogID=35364652" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
where</div>
<div>
<br /></div>
<div>
x = ( x1 , x2 , x3 ... ) are the bet leg stakes</div>
<div>
C is a payoff matrix column chosen to maximise</div>
</div>
<div>
</div>
<div>
A is the constraints matrix (e.g sum of stakes = 1, stake (i) >= 0 etc)</div>
<div>
<div>
<br /></div>
<div>
Solving the optimisation for the AH2(-0.25)_X1_1 example above gives;</div>
</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: 2.75pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.75pt; mso-table-layout-alt: fixed;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Payoff Matrix<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Away Team Wins<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Draw<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Home Team Wins<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Stake %</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">AH2(-0.25)<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">101.70%<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">30.10%<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">60.20%</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">X1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">71.60%<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">71.60%<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">34.10%</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">1<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">30.10%<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<span lang="EN-GB" style="font-size: 9.0pt;">5.70%</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">Net Profit<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">1.70%<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.35pt;" valign="top" width="128"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">1.70%<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">1.70%<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.75pt; width: 96.4pt;" valign="top" width="129"><div align="center" class="TableContents" style="text-align: center;">
<b><span lang="EN-GB" style="font-size: 9.0pt;">100.00%</span></b></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<a href="https://www.blogger.com/blogger.g?blogID=35364652" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br /></div>
<div>
<div>
We can see that the arbitrage does indeed have a solution with the stake percentages (60.2%, 34.1%, 5.7%) giving an arbitrage of 1.7% for every possible outcome. There are many thousands of these arbitrage opportunities appearing each day in the sports markets ranging in size from 0.1% - 7%+.</div>
<div>
<br /></div>
<div>
What returns are possible? Consider, starting with a seed capital of £1k and a trading frequency of 3 times per week with an average arbitrage size of 1.6%. Initially we compound our winnings but there are limits to how much you can stake with a given bookmaker. Assume that we cannot increase our notional beyond £5000 across any multi-leg arbitrage trade. In that case, the initial £1k can grow to approximately £9,500 in one year. Not bad for a few minutes of effort per trade. </div>
<div>
<br /></div>
<div>
So what's the catch? </div>
<div>
<br /></div>
<div>
There are really only two pitfalls. </div>
<div>
1) Scaling: You cannot easily compound your returns as with the financial markets.</div>
<div>
2) Limit Risk: Bookmakers don't want you to win and can be inclined to significantly reduce your allowed stake notional if you win too much. Avoiding this requires careful management.</div>
<div>
<br /></div>
<div>
Although sports arbitrage does not easily scale, it is a great way of boosting trading capital by a few thousand pounds per year with very small time effort; capital which could be put to use in the financial or crypto markets.</div>
<div>
<br /></div>
</div>
<div>
===</div>
<div>
<i>About the author</i>: Stephen Hope is Co-Founder of Machina Trading, a proprietary crypto & sports trading firm that provides an arbitrage tool called <a href="https://www.rational.bet/affiliate-redirect/02da18ac-5333-4e87-ade8-1044645ba7fd" target="_blank">rational bet</a>. He is former Head of Quantitative Trading Strategies at BNP Paribas and received his PhD in Physics from the University of Cambridge.</div>
<div>
<br /></div>
<div>
===</div>
<div>
<b>Upcoming Workshops by Dr. Ernie Chan</b></div>
<div>
<br /></div>
<div>
<div>
<b>February 24 and March 3</b>: <a href="http://www.epchan.com/workshops" target="_blank">Algorithmic Options Strategies</a></div>
<div>
<br /></div>
<div>
This online course focuses on backtesting intraday and portfolio option strategies. No pesky options pricing theories will be discussed, as the emphasis is on arbitrage trading.</div>
</div>
<div>
<br /></div>
<div>
<div>
<b>June 4-8</b>: <a href="http://www.globalmarkets-training.co.uk/courses.html" target="_blank">London workshops</a></div>
<div>
<br /></div>
<div>
These intense 8-16 hours workshops cover Algorithmic Options Strategies, Quantitative Momentum Strategies, and Intraday Trading and Market Microstructure. Typical class size is under 10. They may qualify for CFA Institute continuing education credits.</div>
</div>
</div>
</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com16tag:blogger.com,1999:blog-35364652.post-84136218324819231482017-11-17T07:08:00.002-05:002017-11-17T09:16:11.352-05:00Optimizing trading strategies without overfittingBy Ernest Chan and Ray Ng<br />
<br />
===<br />
<br />
Optimizing the parameters of a trading strategy via backtesting has one major problem: there are typically not enough historical trades to achieve statistical significance. Whatever optimal parameters one found are likely to suffer from data snooping bias, and there may be nothing optimal about them in the out-of-sample period. That's why parameter optimization of trading strategies often adds no value. On the other hand, optimizing the parameters of a time series model (such as a maximum likelihood fit to an autoregressive or GARCH model) is more robust, since the input data are prices, not trades, and we have plenty of prices. Fortunately, it turns out that there are clever ways to take advantage of the ease of optimizing time series models in order to optimize parameters of a trading strategy.<br />
<br />
One elegant way to optimize a trading strategy is to utilize the methods of stochastic optimal control theory - elegant, that is, if you are mathematically sophisticated and able to analytically solve the Hamilton-Jacobi-Bellman (HJB) equation (see <a href="https://www.amazon.com/Algorithmic-High-Frequency-Trading-Mathematics-Finance/dp/1107091144/ref=as_sl_pc_qf_sp_asin_til?tag=quantitativet-20&linkCode=w00&linkId=F3CCPNPZVPYO6H5M&creativeASIN=1107091144" target="_blank">Cartea et al</a>.) Even then, this will only work when the underlying time series is a well-known one, such as the continuous Ornstein-Uhlenbeck (OU) process that underlies all mean reverting price series. This OU process is neatly represented by a stochastic differential equation. Furthermore, the HJB equations can typically be solved exactly only if the objective function is of a simple form, such as a linear function. If your price series happens to be neatly represented by an OU process, and your objective is profit maximization which happens to be a linear function of the price series, then stochastic optimal control theory will give you the analytically optimal trading strategy: with exact entry and exit thresholds given as functions of the parameters of the OU process. There is no more need to find such optimal thresholds by trial and error during a tedious backtest process, a process that invites overfitting to sparse number of trades. As we indicated above, the parameters of the OU process can be fitted quite robustly to prices, and in fact there is an analytical maximum likelihood solution to this fit given in <a href="https://arxiv.org/abs/1411.5062" target="_blank">Leung et. al.</a><br />
<br />
But what if you want something more sophisticated than the OU process to model your price series or require a more sophisticated objective function? What if, for example, you want to include a GARCH model to deal with time-varying volatility and optimize the Sharpe ratio instead? In many such cases, there is no representation as a continuous stochastic differential equation, and thus there is no HJB equation to solve. Fortunately, there is still a way to optimize without overfitting.<br />
<br />
In many optimization problems, when an analytical optimal solution does not exist, one often turns to simulations. Examples of such methods include simulated annealing and Markov Chain Monte Carlo (MCMC). Here we shall do the same: if we couldn't find an analytical solution to our optimal trading strategy, but could fit our underlying price series quite well to a standard discrete time series model such as ARMA, then we can simply simulate many instances of the underlying price series. We shall backtest our trading strategy on each instance of the simulated price series, and find the best trading parameters that most frequently generate the highest Sharpe ratio. This process is much more robust than applying a backtest to the real time series, because there is only one real price series, but we can<br />
we can simulate as many price series (all following the same ARMA process) as we want. That means we can simulate as many trades as we want and obtain optimal trading parameters with as high a precision as we like. This is almost as good as an analytical solution. (See flow chart below that illustrates this procedure - click to enlarge.)<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBmBx6KjIQuDqyzey_wCRXqQai6Mlj5lYRXT1bikYdBj4lX2FIR2-Y0n5NikP-NKdS9640tp6GH8P45iYHSFk6vOlx9lUgZEd6jSCa0ZS4pMU9kjl3BSZMSEPC-8t7_quLUxFU8Q/s1600/optimal+trading.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1131" data-original-width="819" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBmBx6KjIQuDqyzey_wCRXqQai6Mlj5lYRXT1bikYdBj4lX2FIR2-Y0n5NikP-NKdS9640tp6GH8P45iYHSFk6vOlx9lUgZEd6jSCa0ZS4pMU9kjl3BSZMSEPC-8t7_quLUxFU8Q/s400/optimal+trading.png" width="288" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Optimizing a trading strategy using simulated time series</td></tr>
</tbody></table>
<br />
<div>
Here is a somewhat trivial example of this procedure. We want to find an optimal strategy that trades AUDCAD on an hourly basis. First, we fit a AR(1)+GARCH(1,1) model to the data using <i>log </i>midprices. The maximum likelihood fit is done using a one-year moving window of historical prices, and the model is refitted every month. We use MATLAB's Econometrics Toolbox for this fit. Once the sequence of monthly models are found, we can use them to predict both the log midprice at the end of the hourly bars, as well as the expected variance of log returns. So a simple trading strategy can be tested: if the expected log return in the next bar is higher than K times the expected volatility (square root of variance) of log returns, buy AUDCAD and hold for one bar, and vice versa for shorts. But what is the optimal K?</div>
<div>
<br /></div>
<div>
Following the procedure outlined above, each time after we fitted a new AR(1)+GARCH(1, 1) model, we use this to <i>simulate </i>the log prices for the next month's worth of hourly bars. In fact, we simulate this 1,000 times, generating 1,000 time series, each with the same number of hourly bars in a month. Then we simply iterate through all reasonable value of K and remember which K generates the highest Sharpe ratio for each simulated time series. We pick the K that most often results in the best Sharpe ratio among the 1,000 simulated time series (i.e. we pick the <i>mode </i>of the distribution of optimal K's across the simulated series). This is the sequence of K's (one for each month) that we use for our final backtest. Below is a sample distribution of optimal K's for a particular month, and the corresponding distribution of Sharpe ratios:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvr62wZ2DCBsuJqYQSHGz9djy8n0AihbKbG7nRohgQlQJJcCHrcwXEuDuaWWzygWkjp1iyXj7inI_ZZBlF0BJizSdljHyGKBrKeUuXbW7TDzkAg5D1TdaXksnUuQmgSpOAV8llRA/s1600/bestEntryZscoreForAUDCAD.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvr62wZ2DCBsuJqYQSHGz9djy8n0AihbKbG7nRohgQlQJJcCHrcwXEuDuaWWzygWkjp1iyXj7inI_ZZBlF0BJizSdljHyGKBrKeUuXbW7TDzkAg5D1TdaXksnUuQmgSpOAV8llRA/s400/bestEntryZscoreForAUDCAD.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Histogram of optimal K and corresponding Sharpe ratio for 1,000 simulated price series</td></tr>
</tbody></table>
<br />
Interestingly, the mode of the optimal K is 0 for any month. That certainly makes for a simple trading strategy: just buy whenever the expected log return is positive, and vice versa for shorts. The CAGR is about 4.5% assuming zero transaction costs and midprice executions. Here is the cumulative returns curve:<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEksc6xeQWdYB7h09G2HQK7DHUxXTJSsFYhSscEjZDLapUfEmyOKsec80HfqSWdf5PAg4DSMxAIdI1U1QuAKGPRj7nP_9Jz3v4EoroxfWGFQH5fHrwzpTbSD1xM63cgJLvZnRaTw/s1600/AUDCAD_optimalStrategy.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="420" data-original-width="560" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEksc6xeQWdYB7h09G2HQK7DHUxXTJSsFYhSscEjZDLapUfEmyOKsec80HfqSWdf5PAg4DSMxAIdI1U1QuAKGPRj7nP_9Jz3v4EoroxfWGFQH5fHrwzpTbSD1xM63cgJLvZnRaTw/s400/AUDCAD_optimalStrategy.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
You may exclaim: "This can't be optimal, because I am able to trade AUDCAD hourly bars with much better returns and Sharpe ratio!" Of course, optimal in this case only means optimal within a certain universe of strategies, and assuming an underlying AR(1)+GARCH(1, 1) price series model. Our universe of strategies is a pretty simplistic one: just buy or sell based on whether the expected return exceeds a multiple of the expected volatility. But this procedure can be extended to whatever price series model you assume, and whatever universe of strategies you can come up with. In every case, it greatly reduces the chance of overfitting.<br />
<div>
<br /></div>
<div>
P.S. we invented this procedure for our own use a few months ago, borrowing similar ideas from Dr. Ng’s computational research in condensed matter physics systems (see Ng <i>et al </i><a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.88.144304" target="_blank">here</a> or <a href="http://iopscience.iop.org/article/10.1088/1751-8113/44/6/065305/meta" target="_blank">here</a>). But later on, we found that a similar procedure has already been described in a paper by <a href="https://arxiv.org/abs/1408.1159" target="_blank">Carr <i>et al</i></a>. </div>
<div>
<br /></div>
<div>
===</div>
<div>
<br />
<i>About the authors:</i> Ernest Chan is the managing member of <a href="http://www.qtscm.com/" target="_blank">QTS Capital Management, LLC.</a> Ray Ng is a quantitative strategist at QTS. He received his Ph.D. in theoretical condensed matter physics from McMaster University. </div>
<div>
<br /></div>
<div>
===</div>
<div>
<div>
<br />
<b>Upcoming Workshops by Dr. Ernie Chan</b></div>
<div>
<br /></div>
<div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: inherit;"><b>November 18 and December 2</b>: <a href="http://www.epchan.com/workshops/" target="_blank">Cryptocurrency Trading with Python</a></span></div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I will be moderating this online workshop for Nick Kirk, a noted cryptocurrency trader and fund manager, who taught this widely acclaimed course here and at CQF in London.</span></div>
<div>
<br />
<b>February 24 and March 3</b>: <a href="http://www.epchan.com/workshops" target="_blank">Algorithmic Options Strategies</a></div>
<div>
<div>
<br />
This online course focuses on backtesting <i>intraday </i>and <i>portfolio </i>option strategies. <i>No</i> pesky options pricing theories will be discussed, as the emphasis is on arbitrage trading.</div>
<div>
<br /></div>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
</div>
</div>
</div>
</div>
</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com33tag:blogger.com,1999:blog-35364652.post-16421853719959391092017-09-07T07:28:00.000-04:002017-09-18T20:26:50.223-04:00StockTwits Sentiment Analysis<br />
By Colton Smith<br />
===<br />
<br />
Exploring alternative datasets to augment financial trading models is currently the hot trend among the quantitative community. With so much social media data out there, its place in financial models has become a popular research discussion. Surely the stock market’s performance influences the reactions from the public but if the converse is true, that social media sentiment can be used to predict movements in the stock market, then this would be a very valuable dataset for a variety of financial firms and institutions.<br />
<br />
When I began this project as a consultant for QTS Capital Management, I did an extensive <a href="https://quantoisseur.wordpress.com/2017/01/04/social-media-sentiment-analysis-and-trading-strategies/" target="_blank">literature review</a> of the social media sentiment providers and academic research. The main approach is to take the social media firehose, filter it down by source credibility, apply natural language processing (NLP), and create a variety of metrics that capture sentiment, volume, dispersion, etc. The best results have come from using Twitter or StockTwits as the source. A feature of StockTwits that distinguishes it from Twitter is that in late 2012 the option to label your tweet as bullish or bearish was added. If these labels accurately capture sentiment and are used frequently enough, then it would be possible to avoid using NLP. Most tweets are not labeled as seen in Figure 1 below, but the percentage is increasing.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp67F1EViuIBhtB_OWf3uNPt2XPud8zZigqjwElnSxShcfvfNd756PpXW3dmCS0rRWGd8tfZTKI5IP5Q1V-YLx2So_2QggYyLdA2vH3lQudFFMFpeGMg_714ESZfeufSFrc2kSMA/s1600/EPCHAN_F1.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="222" data-original-width="450" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp67F1EViuIBhtB_OWf3uNPt2XPud8zZigqjwElnSxShcfvfNd756PpXW3dmCS0rRWGd8tfZTKI5IP5Q1V-YLx2So_2QggYyLdA2vH3lQudFFMFpeGMg_714ESZfeufSFrc2kSMA/s400/EPCHAN_F1.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 1: Percentage of Labeled
StockTwits Tweets by Year<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br />
This blog post will compare the use of just the labeled tweets versus the use of all tweets with NLP. To begin, I did some basic data analysis to better understand the nature of the data. In Figure 2 below, the number of labeled tweets per hour is shown. As expected there are spikes around market open and close.<br />
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI2SIwt9N0jQeFtCFE0cV1RFWm26UeB74-HFETC2G41x_nH4aEENIkX9ASU9YJblmgyPVFI9QcAMCpcWHyBfvtk9NFbMqKRIryQHL8NhG5Iq4LFlk1ak8eP5x1nM4CE0qXWIFvxQ/s1600/EPCHAN_F2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="497" data-original-width="626" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI2SIwt9N0jQeFtCFE0cV1RFWm26UeB74-HFETC2G41x_nH4aEENIkX9ASU9YJblmgyPVFI9QcAMCpcWHyBfvtk9NFbMqKRIryQHL8NhG5Iq4LFlk1ak8eP5x1nM4CE0qXWIFvxQ/s400/EPCHAN_F2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 2: Number of Tweets Per Hour
of the Day<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<br />
The overall market sentiment can be estimated by aggregating the number of bullish and bearish labeled tweets each day. Based on the previous literature, I expected a significant bullish bias. This is confirmed in Figure 3 below with the daily mean percetage of bullish tweets being 79%.<br />
<div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UckE-14HATB-Fa0vcc4E3Jh5fK0wedgV-iAqOGKYZSXhZPfhhwiT_v0yJIugfEc3iowyX49y9PfLf-1Rzkj3HiF0UJFibZcskwyW3RxJBjm2tntX212u68-Zf24EO-yM4eZe8Q/s1600/EPCHAN_F3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="530" data-original-width="656" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UckE-14HATB-Fa0vcc4E3Jh5fK0wedgV-iAqOGKYZSXhZPfhhwiT_v0yJIugfEc3iowyX49y9PfLf-1Rzkj3HiF0UJFibZcskwyW3RxJBjm2tntX212u68-Zf24EO-yM4eZe8Q/s400/EPCHAN_F3.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 3: Percentage of Bullish
Tweets Each Day<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<br />
When writing a StockTwits tweet, users can tag multiple symbols so it is possible that the sentiment label could apply to more than one symbol. Tagging more than one symbol would likely indicate less specific sentiment and predictive potential so I hoped to find that most tweets only tag a single symbol. Looking at Figure 4 below, over 90% of the tweets tag a single symbol and a very small percentage tag 5+.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv-iPZ41vfkHH6UpERLHqM0vPa27EYKFNF5iw-y_Tjhb0DpycJL4csiWBCSaTHnjFv_W6uJK4SpHF6KxSZUe1RtCMSWOkJ6pDMjLeSewKuQQWyneUsX4rXultgiWo8PRKHsB94nw/s1600/EPCHAN_F4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="497" data-original-width="601" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv-iPZ41vfkHH6UpERLHqM0vPa27EYKFNF5iw-y_Tjhb0DpycJL4csiWBCSaTHnjFv_W6uJK4SpHF6KxSZUe1RtCMSWOkJ6pDMjLeSewKuQQWyneUsX4rXultgiWo8PRKHsB94nw/s400/EPCHAN_F4.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 4: Relative Frequency
Histogram of the Number of Symbols Mentioned Per Tweet<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<br />
The time period of data used in my analysis is from 2012-11-01 to 2016-12-31. In Figure 5 below, the top symbols, industries, and sectors by total labeled tweet count are shown. By far the most tweeted about industries were biotechnology and ETFs. This makes sense because of how volatile these industries are which hopefully means that they would be the best to trade based on social media sentiment data.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl9DVhhRF_w498HGRmCdcgfjmDXxQMCI5z1r0GSOf_Q5ivg5WtqdZFSH0QaacYizzvWiIrcpt1dLxgrkZIsxWGvnUvGNtVPv2GDkuI_OO2d59Pxb7KZVwrwtjrKjlrz-SvIw4qCg/s1600/EPCHAN_F5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="688" data-original-width="823" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl9DVhhRF_w498HGRmCdcgfjmDXxQMCI5z1r0GSOf_Q5ivg5WtqdZFSH0QaacYizzvWiIrcpt1dLxgrkZIsxWGvnUvGNtVPv2GDkuI_OO2d59Pxb7KZVwrwtjrKjlrz-SvIw4qCg/s400/EPCHAN_F5.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 5: Top Symbols, Industries,
and Sectors by Total Tweet Count<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div>
<br />
Now I needed to determine how I would create the sentiment score to best encompass the predictive potential of the data. Though there are obstacles to trading an open to close strategy including slippage, liquidity, and transaction costs, analyzing how well the sentiment score immediately before market open predicts open to close returns is a valuable sanity check to see if it would be useful in a larger factor model. The sentiment score for each day was calculated using the tweets from the previous market day’s open until the current day’s open:</div>
<div>
<br /></div>
<div>
S-Score = (#Bullish-#Bearish)/(#Bullish+#Bearish)</div>
<div>
<br /></div>
<div>
This S-Score then needs to be normalized to detect the significance of a specific day’s sentiment with respect to the symbol’s historic sentiment trend. To do this, a rolling z-score is applied to the series. By changing the length of the lookback window the sensitivity can be adjusted. Additionally, since the data is quite sparse, days without any tweets for a symbol are given an S-Score of 0. At the market open each day, symbols with an S-Score above the positive threshold are entered long and symbols with an S-Score below the negative threshold are entered short. Equal dollar weight is applied to the long and short legs. These positions are assumed to be liquidated at the day’s market close. The first test is on the universe of equities with previous day closing prices > $5. With a relatively small long-short portfolio of ~250 stocks, its performance can be seen in Figure 6 below (click on chart to enlarge).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinEGmr3i2FmVbsWVUwb2EOlfcMLvp0GO2E6pSqcWin7cdJD8FNXsTHLCACsmNNTqgvG6b2OONY6-68EZmn4ELpV9YXRHYYnLfYN-nMRfX2aAcTQhqtHmIZIj3_v_S__51jZjTCdQ/s1600/Colton+Figure+6+new.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="910" data-original-width="1580" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinEGmr3i2FmVbsWVUwb2EOlfcMLvp0GO2E6pSqcWin7cdJD8FNXsTHLCACsmNNTqgvG6b2OONY6-68EZmn4ELpV9YXRHYYnLfYN-nMRfX2aAcTQhqtHmIZIj3_v_S__51jZjTCdQ/s400/Colton+Figure+6+new.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 6: Price > $5 Universe Open
to Close Cumulative Returns<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<br />
The thresholds were cherry-picked to show the potential of a 2.11 Sharpe Ratio but the results vary depending on the thresholds used. This sensitivity is likely due to the lack of tweet volume on most symbols. Also, the long and short thresholds are not equal in an attempt to maintain roughly equal number of stocks in each leg. The neutral basket contains all of the stocks in the universe that do not have an S-Score extreme enough to generate a long or short signal. Using the same thresholds as above, the test was ran on a liquidity universe which is defined as the top quartile of 50-day Average Dollar Volume stocks. As seen in Figure 7 below, the Sharpe drops to a 1.24 but is still very encouraging.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNhJ8CrcEgw_OLN686c1IA681rljDo0KjrxZqq7yX7d6oAaSgl57v1Y9Thb9mhEJbIMW-JtjiNPZJ7s7XXx5TVgOSghY7FZlCWFvlck1ZKYK6hCH7f-n9j53kAJH1wNCQKIo0tBw/s1600/Colton+Figure+7+new.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="906" data-original-width="1578" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNhJ8CrcEgw_OLN686c1IA681rljDo0KjrxZqq7yX7d6oAaSgl57v1Y9Thb9mhEJbIMW-JtjiNPZJ7s7XXx5TVgOSghY7FZlCWFvlck1ZKYK6hCH7f-n9j53kAJH1wNCQKIo0tBw/s400/Colton+Figure+7+new.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 7: Liquidity Universe Open to
Close Cumulative Returns<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<br />
The sensitivity of these results needs to be further inspected by performing analysis on separate train and test sets but I was very pleased with the returns that could be potentially generated from just labeled StockTwits data.<br />
<div>
<br /></div>
<div>
In July, I began working for <a href="https://socialmarketanalytics.com/" target="_blank">Social Market Analytics</a>, the leading social media sentiment provider. Here at SMA, we run all the StockTwits tweets through our proprietary NLP engine to determine their sentiment scores. Using sentiment data from 9:10 EST which looks at an exponentially weighted sentiment aggregation over the last 24 hours, the open to close simulation can be ran on the price > $5 universe. Each stock is separated into its respective quintile based on its S-Score in relation to the universe’s percentiles that day. A long-short portfolio is constructed in a similar fashion as previously with long positions in the top quintile stocks and short positions in the bottom quintile stocks. In Figure 8 below you can see that the results are much better than when only using sentiment labeled data.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirj_91_gg2auvfGtf12ZKnyJwNxnvBN6ntDO7BPUb1m7baJOSKcntX1LPLHDtkPgwTyLzrfTNjNNHTyVYLCAY0io8Gx6TGMGACUpQsqCOcbYaFvvwDeVEhmbt7Al_kHJ5LnUTVUQ/s1600/EPCHAN_F8.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="903" data-original-width="1577" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirj_91_gg2auvfGtf12ZKnyJwNxnvBN6ntDO7BPUb1m7baJOSKcntX1LPLHDtkPgwTyLzrfTNjNNHTyVYLCAY0io8Gx6TGMGACUpQsqCOcbYaFvvwDeVEhmbt7Al_kHJ5LnUTVUQ/s400/EPCHAN_F8.PNG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="line-height: 115%;">
<span style="font-size: 10.0pt; line-height: 115%;">Figure 8: SMA
Open to Close Cumulative Returns Using StockTwits Data<o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div>
<br />The predictive power is there as the long-short boasts an impressive 4.5 Sharpe ratio. Due to having more data, the results are much less sensitive to long-short portfolio construction. To avoid the high turnover of an open-to-close strategy, we have been exploring possible long-term strategies. Deutsche Bank’s Quantitative Research Team recently released a paper about strategies that solely use our SMA data which includes a longer-term strategy. Additionally, I’ve recently developed a strong weekly rebalance strategy that attempts to capture weekly sentiment momentum.<br />
<br /></div>
<div>
Though it is just the beginning, my dive into social media sentiment data and its application in finance over the course of my time consulting for QTS has been very insightful. It is arguable that by just using the labeled StockTwits tweets, we may be able to generate predictive signals but by including all the tweets for sentiment analysis, a much stronger signal is found. If you have questions please contact me at coltonsmith321@gmail.com.</div>
<div>
<br />
<i><span style="background-color: white; color: #222222; font-family: "arial" , sans-serif; font-size: 12.8px;">Colton Smith is a recent graduate of the University of Washington where he majored in Industrial and Systems Engineering and minored in Applied Math. He now lives in Chicago and works for Social Market Analytics. He has a passion for data science and is excited about his developing quantitative finance career. LinkedIn: </span><a data-saferedirecturl="https://www.google.com/url?hl=en&q=https://www.linkedin.com/in/coltonfsmith/&source=gmail&ust=1504798421808000&usg=AFQjCNEUDOowQfwcQXN8KW5ygaAJ56vh_w" href="https://www.linkedin.com/in/coltonfsmith/" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 12.8px;" target="_blank">https://www.<wbr></wbr>linkedin.com/in/coltonfsmith/</a></i></div>
<div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: "times new roman" , serif;">===</span></div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: inherit;"><b>Upcoming Workshops by Dr. Ernie Chan</b></span></div>
<div class="MsoNormal" style="line-height: 24px;">
<br /></div>
<div class="MsoNormal" style="line-height: 24px;">
<b>September 11-15</b>: <a href="http://www.globalmarkets-training.co.uk/" target="_blank">City of London workshops</a></div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: inherit;"><br /></span></div>
<span style="font-family: inherit;">These intense 8-16 hours workshops cover <a href="http://www.globalmarkets-training.co.uk/algorithmicoptions.html" target="_blank">Algorithmic Options Strategies</a>, <a href="http://www.globalmarkets-training.co.uk/quantmomentum.html" target="_blank">Quantitative Momentum Strategies</a>, and <a href="http://www.globalmarkets-training.co.uk/intradaytrading.html" target="_blank">Intraday Trading and Market Microstructure</a>. Typical class size is under 10. They may qualify for CFA Institute continuing education credits.</span><br />
<div class="MsoNormal" style="line-height: 24px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; widows: 2;">
<div style="color: black; font-size: medium; font-style: normal; font-weight: normal; letter-spacing: normal; margin: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<br /></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; color: black; font-family: "Times New Roman"; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: "times new roman" , serif;"><b>November 18 and December 2</b>: <a href="http://www.epchan.com/workshops/" target="_blank">Cryptocurrency Trading with Python</a></span></div>
<div class="MsoNormal" style="color: black; font-size: medium; font-style: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: inherit;"><br /></span></div>
<div class="MsoNormal" style="line-height: 24px;">
<span style="font-family: inherit;">I will be moderating this online workshop for Nick Kirk, a noted cryptocurrency trader and fund manager, who taught this widely acclaimed course here and at CQF in London.</span></div>
</div>
<br /></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com8tag:blogger.com,1999:blog-35364652.post-71378484891690174252017-07-21T16:13:00.000-04:002017-07-21T16:13:17.291-04:00Building an Insider Trading Database and Predicting Future Equity Returns<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">By John Ryle, CFA<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">===</span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">I’ve long been
interested in the behavior of corporate insiders and how their actions may
impact their company’s stock. I had done some research on this in the past,
albeit in a very low-tech way using mostly Excel. It’s a highly compelling
subject, intuitively aligned with a company’s equity performance - if those individuals
most in-the-know are buying, it seems sensible that the stock should perform
well. If insiders are selling, the opposite is implied. While reality proves
more complex than that, a tremendous amount of literature has been written on
the </span><a href="https://scholar.google.com/scholar?hl=en&q=insider+trading&btnG=&as_sdt=1%2C22&as_sdtp="><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">topic</span></a><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">,
and it has shown to be predictive in </span><a href="https://www.amazon.com/Investment-Intelligence-Insider-Trading-Press/dp/0262692341/ref=sr_1_1?ie=UTF8&qid=1500148884&sr=8-1&keywords=nejat+seyhun"><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">prior
studies</span></a><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">In generating <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__papers.ssrn.com_sol3_papers.cfm-3Fabstract-5Fid-3D3000704&d=DwMCaQ&c=yHlS04HhBraes5BQ9ueu5zKhE7rtNXt_d012z2PA6ws&r=HcdzcN9QHYqnVIfkU6GOG0i6ty8DOaZLP8DKHa427Ac&m=Q7q5j0CJlcGtx3XyIuy1mlF4VfgYniHcin8TiQRcmQE&s=4fOizzmREE5lyEOeySMpziy2xLR3UIbGR4to1_YRdJw&e=" target="_blank">my thesis</a>
to complete Northwestern’s MS in Predictive Analytics program, I figured employing
some of the more prominent machine learning algorithms to insider trading could
be an interesting exercise. I was concerned, however, that, as the market had
gotten smarter over time, returns from insider trading signals may have decayed
as well, as is often the case with strategies exposed to a wide audience over
time. Information is more readily available now than at any time in the past. Not
too long ago, investors needed to visit SEC offices to obtain insider filings.
The standard filing document, the form 4 has only required electronic
submission since 2003. Now anyone can obtain it freely via the </span><a href="https://www.sec.gov/edgar/searchedgar/companysearch.html"><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">SEC’s
EDGAR website</span></a><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">. If all this data is just sitting out
there, can it continue to offer value?<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">I decided to inquire by
gathering the filings directly by scraping the EDGAR site. While there are numerous data providers
available (at a cost), I wanted to parse the raw data directly, as this would
allow for greater “intimacy” with the underlying data. I’ve spent much of my
career as a database developer/administrator, so working with raw text/xml and
transforming it into a database structure seemed like fun. Also, since I
desired this to be a true end-to-end data science project, including the often
ugly </span><a href="http://blog.revolutionanalytics.com/2014/08/data-cleaning-is-a-critical-part-of-the-data-science-process.html"><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">80%
of the real effort</span></a><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"> – data wrangling, was an important
requirement. That being said, mining and
cleansing the data was a monstrous amount of work. It took several weekends to
work through the code and finally download 2.4 million unique files. I relied
heavily on Powershell scripts to first parse through the files and shred the
xml into database tables in MS SQL Server. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">With data from the
years 2005 to 2015, the initial 2.4 million records were filtered down to
650,000 Insider Equity Buy transactions. I focused on Buys rather than Sells
because the signal can be a bit murkier with sells. Insider selling happens for
a great many innocent reasons, including diversification and paying living
expenses. Also, I focused on equity trades rather than derivatives for similar
reasons -it can be difficult to interpret the motivations behind various
derivative trades. Open market buy orders,
however, are generally quite clear. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">After some careful
cleansing, I had 11 years’ worth of useful SEC data, but in addition, I needed
pricing and market capitalization data, ideally which would account for
survivorship bias/dead companies. Respectively, Zacks Equity Prices and Sharadar’s
Core US Fundamentals data sets did the trick, and I could obtain both via </span><a href="https://www.quandl.com/"><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">Quandl</span></a><span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"> at reasonable
cost (about $350 per quarter.)<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">For exploratory data
analysis and model building, I used the R programming language. The models I
utilized were linear regression, recursive partitioning, random forest and
multiplicative adaptive regression splines (MARS). I intended to make use of a support vector
machine (SVM) models as well, but experienced a great many performance issues
when running on my laptop with a mere 4 cores. SVMs have trouble with scaling. I
failed to overcome this issue and abandoned the effort after 10-12 crashes,
unfortunately. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">For the recursive
partitioning and random forest models I used functions from Microsoft’s
RevoScaleR package, which allows for impressive scalability versus standard tree-based
packages such as rpart and randomForest. Similar results can be expected, but
the RevoScaleR packages take great advantage of multiple cores. I split my data
into a training set for 2005-2011, a validation set for 2012-2013, and a test
set for 2014-2015. Overall, performance for each of the algorithms tested were
fairly similar, but in the end, the random forest prevailed. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">
</span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">For my response
variable, I used 3-month relative returns vs the Russell 3000 index. For
predictors, I utilized a handful of attributes directly from the filings and
from related company information. The models proved quite predictive in the
validation set as can be seen in exhibit 4.10 of the paper, and reproduced
below:<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuZdpD_dX56Qj4vqLc4E98EZIewP7P-F_0-P2VR5LfUf_5CnYro6XXzyufNsEBxsm2rUg5pDRBI4AsWH6-KY3s2NwEyixSyZj4n3CfoBABxkEK9IbecoofU0vshycZn0GnSMdrLA/s1600/John+Ryle+Exhibit+4.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="277" data-original-width="597" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuZdpD_dX56Qj4vqLc4E98EZIewP7P-F_0-P2VR5LfUf_5CnYro6XXzyufNsEBxsm2rUg5pDRBI4AsWH6-KY3s2NwEyixSyZj4n3CfoBABxkEK9IbecoofU0vshycZn0GnSMdrLA/s400/John+Ryle+Exhibit+4.10.png" width="400" /></a></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">The random forest’s predicted
returns were significantly better for quintile 5, the highest predicted return
grouping, relative to quintile 1(the lowest). Quintiles 2 through 4 also lined
up perfectly - actual performance correlated nicely with grouped predicted
performance. The results in validation
seemed very promising!<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">
</span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">However, when I ran the
random forest model on the test set (2014-2015), the relationship broke down
substantially, as can be seen in the paper’s Exhibit 5.2, reproduced below:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJLUKBD3Osu5HqcCOrKz-6cUo-343b-skyB6bsenqjgZ1U_85yxKD33lBEEhvcphOhgTSDA0VLJ0gZuL0ElyWkus8HckfMERiJyoncpwA9UQyGbhfdVkoItJlTHGZjCbhCiaeNpQ/s1600/John+Ryle+Exhibit+5.2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="508" data-original-width="509" height="398" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJLUKBD3Osu5HqcCOrKz-6cUo-343b-skyB6bsenqjgZ1U_85yxKD33lBEEhvcphOhgTSDA0VLJ0gZuL0ElyWkus8HckfMERiJyoncpwA9UQyGbhfdVkoItJlTHGZjCbhCiaeNpQ/s400/John+Ryle+Exhibit+5.2.png" width="400" /></a></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">Fortunately, the
predicted 1<sup>st</sup> decile was in in fact the lowest performing actual
return grouping. However, the actual returns on all remaining prediction
deciles appeared no better than random. In addition, relative returns were negative
for every decile. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">While disappointing, it
is important to recognize that when modeling time-dependent financial data, as the
time-distance moves further away from the training set’s time-frame,
performance of the model tends to decay. All market regimes, gradually or
abruptly, end. This represents a partial (yet unsatisfying) explanation for this
relative decrease in performance. Other effects that may have impaired
prediction include the use of price, as well as market cap, as predictor
variables. These factors certainly underperformed during the period used for
the test set. Had I excluded these, and refined the filing specific features more
deeply, perhaps I would have obtained a clearer signal in the test set. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , "serif"; font-size: 12.0pt; line-height: 150%;">In any event, this was
a fun exercise where I learned a great deal about insider trading and its
impact on future returns. Perhaps we can conclude that this signal has weakened
over time, as the market has absorbed the informational value of insider
trading data. However, perhaps further study, additional feature engineering
and clever consideration of additional algorithms is worth pursuing in the
future.</span></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal">
<i>John J Ryle, CFA lives in the Boston area
with his wife and two children. He is a software developer at a hedge fund, a
graduate of Northwestern’s Master’s in Predictive Analytics program (2017), a
huge tennis fan, and a machine learning enthusiast. He can be reached at
john@jryle.com. <o:p></o:p></i></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , serif;">===</span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , serif;"><b>Upcoming Workshops by Dr. Ernie Chan</b></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , serif;"><b><br /></b></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<span style="font-family: "times new roman" , serif;"><b>July 29 and August 5</b>: <a href="http://www.epchan.com/workshops/" target="_blank">Mean Reversion Strategies</a></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
In the last few years, mean reversion strategies have proven to be the most consistent winner. However, not all mean reversion strategies work in all markets at all times. This workshop will equip you with basic statistical techniques to discover mean reverting markets on your own, and describe the detailed mechanics of trading some of them. </div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
<b>September 11-15</b>: <a href="http://www.globalmarkets-training.co.uk/" target="_blank">City of London workshops</a></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
These intense 8-16 hours workshops cover <a href="http://www.globalmarkets-training.co.uk/algorithmicoptions.html" target="_blank">Algorithmic Options Strategies</a>, <a href="http://www.globalmarkets-training.co.uk/quantmomentum.html" target="_blank">Quantitative Momentum Strategies</a>, and <a href="http://www.globalmarkets-training.co.uk/intradaytrading.html" target="_blank">Intraday Trading and Market Microstructure</a>. Typical class size is under 10. They may qualify for CFA Institute continuing education credits.</div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%;">
===</div>
<div class="MsoNormal" style="line-height: 150%;">
Industry updates</div>
<div class="MsoNormal" style="line-height: 150%;">
</div>
<ul>
<li>scriptmaker.net allows users to record order book data for backtesting.</li>
<li><a href="https://www.pairtradinglab.com/" target="_blank">Pair Trading Lab</a> offers a web-based platform for easy backtesting of pairs strategies.</li>
</ul>
<br />
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
<div>
<div>
<div class="msocomtxt" id="_com_1" language="JavaScript">
<!--[if !supportAnnotations]--></div>
<!--[endif]--></div>
</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com6tag:blogger.com,1999:blog-35364652.post-82309655717240805082017-05-04T08:36:00.000-04:002017-05-04T08:36:04.761-04:00Paradox Resolved: Why Risk Decreases Expected Log Return But Not Expected WealthI have been troubled by the following paradox in the past few years. If a stock's log returns (i.e. change in log price per unit time) follow a Gaussian distribution, and if its net returns (i.e. percent change in price per unit time) have mean <i>m</i> and standard distribution <i>s</i>, then many finance students know that the mean log returns is <i>m-s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span><i style="font-size: 13.3333px;">. </i>That is, the compound growth rate of the stock is <i>m-s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span><i style="font-size: 13.3333px;">. </i>This can be derived by applying Ito's lemma to the log price process (see e.g. <a href="http://amzn.to/2m8SO5w" target="_blank">Hull</a>), and is intuitively satisfying because it is saying that the expected compound growth rate is lowered by risk ("volatility"). OK, we get that - risk is bad for the growth of our wealth.<br />
<br />
However, let's find out what the expected price of the stock is at time <i>t</i>. If we invest our entire wealth in one stock, that is really asking what our expected wealth is at time <i>t</i>. To compute that, it is easier to first find out what the expected log price of the stock is at time <i>t</i>, because that is just the expected value of the sum of the log returns in each time interval, and is of course equal to the sum of the expected value of the log returns when we assume a geometric random walk. So the expected value of the log price at time <i>t</i> is just <i>t</i> * (<i>m-s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span>). But what is the expected price (not log price) at time <i>t</i>? It isn't correct to say exp(<i>t</i> * (<i>m-s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span>)), because the expected value of the exponential function of a normal variable is not equal to the exponential function of the expected value of that normal variable, or E[exp(x)] !=exp(E[x]). Instead, E[exp(x)]=exp(μ<i>+</i>σ<span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span>) where μ and σ<i> </i>are the mean and standard deviation of the normal variable (see <a href="https://www.amazon.com/Statistics-Data-Analysis-Financial-Engineering/dp/1493926136/ref=as_sl_pc_qf_sp_asin_til?tag=quantitativet-20&linkCode=w00&linkId=WFSJHXJMFNABLDOT&creativeASIN=1493926136" target="_blank">Ruppert</a>). In our case, the normal variable is the log price, and thus μ=<i>t</i> * (<i>m-s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span><i style="font-size: 13.3333px;"> </i><span style="font-size: 13.3333px;">/2</span>), and σ<span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2</span>=<i>t</i> *<i>s</i><span style="font-family: "calibri" , sans-serif; font-size: 11pt; vertical-align: super;">2 </span>. Hence the expected price at time <i>t</i> is exp(<i>t</i>*<i>m</i>). Note that it doesn't involve the volatility <i>s. </i>Risk doesn't affect the expected wealth at time <i>t</i>. But we just argued in the previous paragraph that the expected compound growth rate <i>is</i> lowered by risk. What gives?<br />
<br />
This brings us to a famous recent <a href="http://aip.scitation.org/doi/full/10.1063/1.4940236" target="_blank">paper</a> by Peters and Gell-Mann. (For the physicists among you, this is <i>the </i>Gell-Mann who won the Nobel prize in physics for inventing quarks, the fundamental building blocks of matter.) This happens to be the most read paper in the Chaos Journal in 2016, and basically demolishes the use of the utility function in economics, in agreement with John Kelly, Ed Thorp, Claude Shannon, Nassim Taleb, etc., and against the entire academic economics profession. (See <a href="http://amzn.to/2mtn39y" target="_blank">Fortune's Formula</a> for a history of this controversy. And just to be clear which side I am on: I hate utility functions.) To make a long story short, the error we have made in computing the expected stock price (or wealth) at time <i>t</i>, is that the expectation value there is ill-defined. It is ill-defined because wealth is not an "ergodic" variable: its finite-time average is not equal to its "ensemble average". Finite-time average of wealth is what a specific investor would experience up to time <i>t</i>, for large <i>t</i>. Ensemble average is the average wealth of many millions of similar investors up to time <i>t</i>. Naturally, since we are just one specific investor, the finite-time average is much more relevant to us. What we have computed above, unfortunately, is the ensemble average. Peters and Gell-Mann exhort us (and other economists) to only compute expected values of ergodic variables, and log return (as opposed to log price) is happily an ergodic variable. Hence our average log return is computed correctly - risk <i>is</i> bad. Paradox resolved!<br />
<br />
===<br />
<br />
<b>My Upcoming Workshops</b><br />
<br />
May 13 and 20: <a href="http://epchan.com/workshops" target="_blank">Artificial Intelligence Techniques for Traders</a><br />
<br />
I will discuss in details AI techniques as applied to trading strategies, with plenty of in-class exercises, and with emphasis on nuances and pitfalls of these techniques.<br />
<br />
June 5-9: <a href="http://www.technicalanalyst.co.uk/courses/calendar/" target="_blank">London in-person workshops</a><br />
<br />
I will teach 3 courses there: Quantitative Momentum, Algorithmic Options Strategies, and Intraday Trading and Market Microstructure.<br />
<br />
(The London courses may qualify for continuing education credits for CFA Institute members.)<br />
<br />
<br />
<div class="MsoNormal">
<!--[endif]--><o:p></o:p></div>
<div class="MsoNormal">
<!--[endif]--><o:p></o:p></div>
<div class="MsoNormal">
<!--[endif]--><o:p></o:p></div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com73tag:blogger.com,1999:blog-35364652.post-17256556516734606412017-03-03T07:02:00.001-05:002017-03-03T07:02:46.045-05:00More Data or Fewer Predictors: Which is a Better Cure for Overfitting?One of the perennial problems in building trading models is the spareness of data and the attendant danger of overfitting. Fortunately, there are systematic methods of dealing with both ends of the problem. These methods are well-known in machine learning, though most traditional machine learning applications have a lot more data than we traders are used to. (E.g. Google used 10 million YouTube videos to train a deep learning network to <a href="http://static.googleusercontent.com/media/research.google.com/en//archive/unsupervised_icml2012.pdf" target="_blank">recognize cats' faces</a>.)<br />
<br />
To create more training data out of thin air, we can <i>resample </i>(perhaps more vividly, <i>oversample</i>) our existing data. This is called bagging. Let's illustrate this using a fundamental factor model described in my <a href="http://amzn.to/2kTMvUM" target="_blank">new book</a>. It uses 27 factor loadings such as P/E, P/B, Asset Turnover, etc. for each stock. (Note that I call cross-sectional factors, i.e. factors that depend on each stock, "factor loadings" instead of "factors" by convention.) These factor loadings are collected from the quarterly financial statements of SP 500 companies, and are available from Sharadar's Core US Fundamentals database (as well as more expensive sources like Compustat). The factor model is very simple: it is just a multiple linear regression model with the next quarter's return of a stock as the dependent (target) variable, and the 27 factor loadings as the independent (predictor) variables. Training consists of finding the regression coefficients of these 27 predictors. The trading strategy based on this predictive factor model is equally simple: if the predicted next-quarter-return is positive, buy the stock and hold for a quarter. Vice versa for shorts.<br />
<br />
Note there is already a step taken in curing data sparseness: we do not try to build a separate model with a different set of regression coefficients for each stock. We constrain the model such that the same regression coefficients apply to all the stocks. Otherwise, the training data that we use from 200701-201112 will only have 1,260 rows, instead of 1,260 x 500 = 630,000 rows.<br />
<br />
The result of this baseline trading model isn't bad: it has a CAGR of 14.7% and Sharpe ratio of 1.8 in the out-of-sample period 201201-201401. (Caution: this portfolio is not necessarily market or dollar neutral. Hence the return could be due to a long bias enjoying the bull market in the test period. Interested readers can certainly test a market-neutral version of this strategy hedged with SPY.) I plotted the equity curve below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6a_rYfuPj8vMDFgVGn3MrCNgIfHX-WZe477-xg2AODOgCtVys-uYrZ9gKXfysf4Tk33cenu9rKDE8n7av6MGWBZH5-EUWW16MhxuD8gPr0s93e7LGEoQ1VuSxCWaOLWeBpr9BHg/s1600/SPX+fundamental+factor+cumret.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6a_rYfuPj8vMDFgVGn3MrCNgIfHX-WZe477-xg2AODOgCtVys-uYrZ9gKXfysf4Tk33cenu9rKDE8n7av6MGWBZH5-EUWW16MhxuD8gPr0s93e7LGEoQ1VuSxCWaOLWeBpr9BHg/s400/SPX+fundamental+factor+cumret.jpg" width="400" /></a></div>
<br />
<br />
<br />
Next, we resample the data by randomly picking N (=630,000) data points <i>with replacement </i>to form a new training set (a "bag"), and we repeat this K (=100) times to form K bags. For each bag, we train a new regression model. At the end, we average over the predicted returns of these K models to serve as our official predicted returns. This results in marginal improvement of the CAGR to 15.1%, with no change in Sharpe ratio.<br />
<br />
Now, we try to reduce the predictor set. We use a method called "random subspace". We randomly pick half of the original predictors to train a model, and repeat this K=100 times. Once again, we average over the predicted returns of all these models. Combined with bagging, this results in further marginal improvement of the CAGR to 15.1%, again with little change in Sharpe ratio.<br />
<br />
The improvements from either method may not seem large so far, but at least it shows that the original model is robust with respect to randomization.<br />
<br />
But there is another method in reducing the number of predictors. It is called stepwise regression. The idea is simple: we pick one predictor from the original set at a time, and add that to the model only if BIC (Bayesian Information Criterion) decreases. BIC is essentially the negative log likelihood of the training data based on the regression model, with a penalty term proportional to the number of predictors. That is, if two models have the same log likelihood, the one with the larger number of parameters will have a larger BIC and thus penalized. Once we reached minimum BIC, we then try to remove one predictor from the model at a time, until the BIC couldn't decrease any further. Applying this to our fundamental factor loadings, we achieve a quite significant improvement of the CAGR over the base model: 19.1% vs. 14.7%, with the same Sharpe ratio.<br />
<br />
It is also satisfying that the stepwise regression model picked only two variables out of the original 27. Let that sink in for a moment: just two variables account for all of the predictive power of a quarterly financial report! As to which two variables these are - I will reveal that in my talk at <a href="http://www.quantcon.com/" target="_blank">QuantCon 2017</a> on April 29.<br />
<br />
===<br />
<br />
<b>My Upcoming Workshops</b><br />
<b><br /></b>
March 11 and 18: <a href="http://epchan.com/workshops" target="_blank">Cryptocurrency Trading with Python</a><br />
<br />
I will be moderating this online workshop for my friend Nick Kirk, who taught a similar course at CQF in London to wide acclaim.<br />
<br />
May 13 and 20: <a href="http://epchan.com/workshops" target="_blank">Artificial Intelligence Techniques for Traders</a><br />
<br />
I will discuss in details AI techniques such as those described above, with other examples and in-class exercises. As usual, nuances and pitfalls will be covered.Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com41tag:blogger.com,1999:blog-35364652.post-26351892145360784852016-11-16T10:32:00.000-05:002016-11-18T07:21:27.379-05:00Pre-earnings Annoucement Strategies<div>
Much has been written about the Post-Earnings Announcement Drift (PEAD) strategy (see, for example, my <a href="http://amzn.to/2fFbBoC" target="_blank">book</a>), but less was written about <b>pre</b>-earnings announcement strategies. That changed recently with the publication of two papers. Just as with PEAD, these pre-announcement strategies do <i>not </i>make use of any actual earnings numbers or even estimates. They are based entirely on announcement dates (expected or actual) and perhaps recent price movement.<br />
<br />
The first one, by <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2275982" target="_blank">So and Wang</a> 2014, suggests various simple mean reversion strategies for US stocks that enter into positions at the market close just before an expected announcement. Here is my paraphrase of one such strategies:<br />
<br />
1) Suppose t is the expected earnings announcement date for a stock in the Russell 3000 index.<br />
2) Compute the pre-announcement return from day t-4 to t-2 (counting trading days only).<br />
3) Subtract a market index return over the same lookback period from the pre-announcement return, and call this market-adjusted return PAR.<br />
4) Pick the 18 stocks with the best PAR and short them (with equal dollars) at the market close of t-1, liquidate at market close of t+1. Pick the 18 stocks with the worst PAR, and do the opposite. Hedge any net exposure with a market-index ETF or future.<br />
<br />
I backtested this strategy using Wall Street Horizon (WSH)'s expected earnings dates data, applying it to stocks in the Russell 3000 index, and hedging with IWV. I got a CAGR of 9.1% and a Sharpe ratio of 1 from 2011/08/03-2016/09/30. The equity curve is displayed below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ZMsCzPooihKcdYsprAvrGDroe-E6C8V6yYYpU5UoyotS-E4q-CeyiHZZ6ooO6o8ka9rF1wGKKqKHSBXulqkVLH7-ZZsvP0ZKlwdjWkJfauPCskxl1QVRzkKfCqPZQhNLe29kLw/s1600/preEarningsReversal2_plot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ZMsCzPooihKcdYsprAvrGDroe-E6C8V6yYYpU5UoyotS-E4q-CeyiHZZ6ooO6o8ka9rF1wGKKqKHSBXulqkVLH7-ZZsvP0ZKlwdjWkJfauPCskxl1QVRzkKfCqPZQhNLe29kLw/s400/preEarningsReversal2_plot.jpg" width="400" /></a></div>
<br />
<br />
Note that WSH's data was used instead of Yahoo! Finance, Compustat, or even Thomson Reuters' I/B/E/S earnings data, because only WSH's data is "point-in-time". WSH captured the expected earnings announcement date on the day before the announcement, just as we would have if we were live trading. We did not use the actual announcement date as captured in most other data sources because we could not be sure if a company changed their expected announcement date on that same date. The actual announcement date can only be known with certainty after-the-fact, and therefore isn't point-in-time. If we were to run the same backtest using Yahoo! Finance's historical earnings data, the CAGR would have dropped to 6.8%, and the Sharpe ratio dropped to 0.8.<br />
<br />
The notion that companies do change their expected announcement dates takes us to the second strategy, created by Ekaterina Kramarenko of Deltix's Quantitative Research Team. In her paper "<a href="http://www.deltixlab.com/wsh-research/" target="_blank">An Automated Trading Strategy Using Earnings Date Movements from Wall Street Horizon</a>", she describes the following strategy that explicitly makes use of such changes as a trading signal:<br />
<br />
1) At the market close prior to the earnings announcement expected between the current close and the next day's open, compute deltaD which is the last change of the expected announcement date for the upcoming announcement, measured in calendar days. deltaD > 0 if the company moved the announcement date later, and deltaD < 0 if the company moved the announcement date earlier.<br />
2) Also, at the same market close, compute deltaU which is the number of calendar days since the last change of the expected announcement date.<br />
3) If deltaD < 0 and deltaU < 45, buy the stock at the market close and liquidate on next day's market open. If deltaD > 0 and deltaU >= 45, do the opposite.<br />
<br />
The intuition behind this strategy is that if a company moves an expected announcement date earlier, especially if that happens close to the expected date, that is an indication of good news, and vice versa. Kramarenko found a CAGR of 14.95% and a Sharpe ratio of 2.08 by applying this strategy to SPX stocks from 2006/1/3 - 2015/9/2.<br />
<br />
In order to reproduce this result, one needs to make sure that the capital allocation is based on the following formula: suppose the total buying power is M, and the number of trading signals at the market close is n, then the trading size per stock is M/5 if n <= 5, and is M/n if n > 5.<br />
<br />
I backtested this strategy from 2011/8/3-2016/9/30 on a fixed SPX universe on 2011/7/5, and obtained CAGR=17.6% and Sharpe ratio of 0.6.<br />
<br />
Backtesting this on Russell 3000 index universe of stocks yielded better results, with CAGR=17% and Sharpe ratio=1.9. Here, I adjust the trading size per stock to M/30 if n <=30, and to M/n if n > 30, given that the total number of stocks in Russell 3000 is about 6 times larger than that of SPX. The equity curve is displayed below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAGVifaM8zB9NGpdkx0W8sXMC0FoD_0MA57SHvd2evHNbfScVIwniKMbfJ8XsZW5E7qmuhGOdAOkf1uYfEzM0m7BXc_FeZdDow6dsuipAndoho_8NcRJM3ibsoivYLkut-skDFWw/s1600/preEarningsReversal2_R3K_plot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAGVifaM8zB9NGpdkx0W8sXMC0FoD_0MA57SHvd2evHNbfScVIwniKMbfJ8XsZW5E7qmuhGOdAOkf1uYfEzM0m7BXc_FeZdDow6dsuipAndoho_8NcRJM3ibsoivYLkut-skDFWw/s400/preEarningsReversal2_R3K_plot.jpg" width="400" /></a></div>
<br />
Interestingly, a market neutral version of this strategy (using IWV to hedge any net exposure) does not improve the Sharpe ratio, but does significantly depressed the CAGR.<br />
<br />
===<br />
<br />
<i>Acknowledgement</i>: I thank Michael Raines at <a href="http://www.wallstreethorizon.com/" target="_blank">Wall Street Horizon</a> for providing the historical point-in-time expected earning dates data for this research. Further, I thank Stuart Farr and Ekaterina Kramarenko at <a href="http://www.deltixlab.com/" target="_blank">Deltix</a> for providing me with a copy of their paper and explaining to me the nuances of their strategy. </div>
<div>
<br />
===<br />
<br />
<b>My Upcoming Workshop</b><br />
<br />
January 14 and 21: Algorithmic Options Strategies<br />
<br />
This online course is different from most other options workshops offered elsewhere. It will cover backtesting intraday option strategies and portfolio option strategies.</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com25tag:blogger.com,1999:blog-35364652.post-55879006424983356772016-09-28T19:29:00.000-04:002016-09-30T08:08:16.603-04:00Really, Beware of Low Frequency DataI wrote in a <a href="http://epchan.blogspot.com/2015/04/beware-of-low-frequency-data.html" target="_blank">previous article</a> about why we should backtest even end-of-day (daily) strategies with intraday quote data. Otherwise, the performance of such strategies can be inflated. Here is another brilliant example that I came across recently.<br />
<br />
Consider the oil futures ETF USO and its evil twin, the inverse oil futures ETF DNO*. In theory, if USO has a <i>daily </i>return of x%, DNO will have a daily return of -x%. In practice, if we plot the daily returns of DNO against that of USO from 2010/9/27-2016/9/9, using the usual consolidated end-of-day data that you can find on Yahoo! Finance or any other vendor,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF0ZSMI5GExwpvhMVpiL14_OZLxNAq6rLg_gBAY8M_66cqVPpWRDDIVlB2818Nl5ZjSqHaAynqF8e8NqCLQVITDD2-DYKqZlFqBpceLsJB68e9A3FRj6Ee32ccegZ47LLxZuwPiA/s1600/DNO+vs+USO.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF0ZSMI5GExwpvhMVpiL14_OZLxNAq6rLg_gBAY8M_66cqVPpWRDDIVlB2818Nl5ZjSqHaAynqF8e8NqCLQVITDD2-DYKqZlFqBpceLsJB68e9A3FRj6Ee32ccegZ47LLxZuwPiA/s400/DNO+vs+USO.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
we see that though the slope is indeed -1 (to within a standard error of 0.004), there are many days with significant deviation from the straight line. The trader in us will immediately think "arbitrage opportunities!"<br />
<br />
Indeed, if we backtest a simple mean reversion strategy on this pair - just buy equal dollar amount of USO and DNO when the sum of their daily returns is less than 40 bps at the market close, hold one day, and vice versa - we will find a strategy with a decent Sharpe ratio of 1 even after deducting 5 bps per side as transaction costs. Here is the equity curve:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMkqbHEtyBh2JZHcP_3qphDeKQfoLr7UhO7HeNypxzGi2VRc3v0GeyA7FmBsV9KyR43452A8lWTPZBsjwmqpuc-6A5uDAk1Z2d-CY00G4a1gBj3VIveT9VNYrAoM3l6bS91CPL8Q/s1600/DNO+vs+USO+strategy.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMkqbHEtyBh2JZHcP_3qphDeKQfoLr7UhO7HeNypxzGi2VRc3v0GeyA7FmBsV9KyR43452A8lWTPZBsjwmqpuc-6A5uDAk1Z2d-CY00G4a1gBj3VIveT9VNYrAoM3l6bS91CPL8Q/s400/DNO+vs+USO+strategy.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Looks reasonable, doesn't it? However, if we backtest this strategy again with BBO data at the market close, taking care to subtract half the bid-ask spread as transaction cost, we find this equity curve:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKdG8Ay3G3Ojj4Ncd2AoUZMjivl7MKF6xkh1gw_zwe0up-xKHnANdUg7SdrEQekDU9noNArRS4-rdqSQzDz9KQm6eAmCH-YZdX7XhoCKP0-fpBQ5GpjkI6PEo12qdC7Xgxfyp_nQ/s1600/DNO+vs+USO+intraday+strategy.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKdG8Ay3G3Ojj4Ncd2AoUZMjivl7MKF6xkh1gw_zwe0up-xKHnANdUg7SdrEQekDU9noNArRS4-rdqSQzDz9KQm6eAmCH-YZdX7XhoCKP0-fpBQ5GpjkI6PEo12qdC7Xgxfyp_nQ/s400/DNO+vs+USO+intraday+strategy.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
We can see that the problem is not only that we lose money on practically every trade, but that there was seldom any trade triggered. When the daily EOD data suggests a trade should be triggered, the 1-min bar BBO data tells us that in fact there was no deviation from the mean.<br />
<br />
(By the way, the returns above were calculated before we even deduct the borrow costs of occasionally shorting these ETFs. The "rebate rate" for USO is about 1% per annum on Interactive Brokers, but a steep 5.6% for DNO.)<br />
<br />
In case you think this problem is peculiar to USO vs DNO, you can try TBT vs UBT as well.<br />
<br />
Incidentally, we have just verified a golden rule of financial markets: apparent deviation from efficient market is allowed when no one can profitably trade on the arbitrage opportunity.<br />
<br />
===<br />
*Note: according to www.etf.com, "The issuer [of DNO] has temporarily suspended creations for this fund as of Mar 22, 2016 pending the filing of new paperwork with the SEC. This action could create unusual or excessive premiums— an increase of the market price of the fund relative to its fair value. Redemptions are not affected. Trade with care; check iNAV vs. price." For an explanation of "creation" of ETF units, see my article "<a href="http://epchan.blogspot.ca/2016/06/some-things-you-dont-want-to-know-about.html" target="_blank">Things You Don't Want to Know about ETFs and ETNs</a>".<br />
<br />
===<br />
<b><br /></b>
<b>Industry Update</b><br />
<ul>
<li>Quantiacs.com just recently registered as a CTA and operates a marketplace for trading algorithms that anyone can contribute. They also published an educational blog post for Python and Matlab backtesters: https://quantiacs.com/Blog/Intro-to-Algorithmic-Trading-with-Heikin-Ashi.aspx</li>
</ul>
<ul>
<li>I will be moderating a panel discussion on "How can funds leverage non-traditional data sources to drive investment returns?" at <a href="http://www.terrapinn.com/conference/quant-world-canada/" target="_blank">Quant World Canada</a> in Toronto, November 10, 2016. </li>
</ul>
<br />
===<br />
<br />
<b>Upcoming Workshops</b><br />
<ul>
<li>October 22 and 29, Saturdays, <a href="http://epchan.com/workshops" target="_blank">Quantitative Momentum Strategies</a> online workshops. </li>
</ul>
Momentum strategies are for those who want to <i>benefit </i>from tail events. I will discuss the fundamental reasons for the existence of momentum in various markets, as well as specific momentum strategies that hold positions from hours to days.<br />
<br />
A senior director at a major bank wrote me: "…thank you again for the Momentum Strategies training course this week. It was very beneficial. I found your explanations of the concepts very clear and the examples well developed. I like the rigorous approach that you take to strategy evaluation.”<br />
<br />Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com28tag:blogger.com,1999:blog-35364652.post-1651188798759197472016-06-17T08:14:00.001-04:002016-06-17T08:16:41.130-04:00Things You Don't Want to Know about ETFs and ETNsEverybody loves trading or investing in ETPs. ETP is the acronym for exchange-traded products, which include both exchange-traded funds (ETF) and exchange-traded notes (ETN). They seem simple, transparent, easy to understand. But there are a few subtleties that you may not know about.<br />
<br />
1) The most popular ETN is VXX, the volatility index ETF. Unlike ETF, ETN is actually an <i>unsecured </i>bond issued by the issuer. This means that the price of the ETN may not just depend on the underlying assets or index. It could potentially depend on the credit-worthiness of the issuer. Now VXX is issued by Barclays. You may think that Barclays is a big bank, Too Big To Fail, and you may be right. Nevertheless, nobody promises that its credit rating will never be downgraded. Trading the VX future, however, doesn't have that problem.<br />
<br />
2) The ETP issuer, together with the "Authorized Participants" (the market makers who can ask the issuer to issue more ETP shares or to redeem such shares for the underlying assets or cash), are supposed to keep the total market value of the ETP shares closely tracking the NAV of the underlying assets. However, there was one notable instance when the issuer deliberately not do so, resulting in big losses for some investors.<br />
<br />
That was when the issuer of TVIX, the leveraged ETN that tracks 2x the daily returns of VXX, stopped all creation of new TVIX shares temporarily on February 22, 2012 (see <a href="http://sixfigureinvesting.com/2015/10/how-does-tvix-work/">sixfigureinvesting.com/2015/10/how-does-tvix-work/</a>). That issuer is Credit Suisse, who might have found that the transaction costs of rebalancing this highly volatile ETN were becoming too high. Because of this stoppage, TVIX turned into a closed-end fund (temporarily), and its NAV diverged significantly from its market value. TVIX was trading at a premium of 90% relative to the underlying index. In other words, investors who bought TVIX in the stock market by the end of March were paying 90% more than they would have if they were able to buy the VIX index instead. Right after that, Credit Suisse announced they would resume the creation of TVIX shares. The TVIX market price immediately plummeted to its NAV per share, causing huge losses for those investors who bought just before the resumption.<br />
<br />
3) You may be familiar with the fact that a β-levered ETF is supposed to track only β times the <i>daily </i>returns of the underlying index, not its long-term return. But you may be less familiar with the fact that it is also not supposed to track β times the <i>intraday </i>return of that index (although at most times it actually does, thanks to the many arbitrageurs.)<br />
<br />
Case in point: during the May 2010 Flash Crash, many inverse levered ETFs experienced a <i>decrease</i> in price as the market was crashing downwards. As inverse ETFs, many investors thought they are supposed to <i>rise </i>in price and act as hedge against market declines. For example, this <a href="https://t.co/DilS8kZ8X1">comment letter</a> to the SEC pointed out that DOG, the inverse ETF that tracks -1x Dow 30 index, went <i>down</i> more than 60% from its value at the beginning (2:40 pm ET) of the Flash Crash. This is because various market makers including the Authorized Participants for DOG weren't making markets at that time. But an equally important point to note is that at the end of the trading day, DOG did return 3.2%, almost exactly -1x the return of DIA (the ETF that tracks the Dow 30). So it functioned as advertised. Lesson learned: We aren't supposed to use inverse ETFs for intraday nor long term hedging!<br />
<br />
4) The NAV (not NAV <i>per share</i>) of an ETF does not have to change in the same % as the underlying asset's unit market value. For example, that same <a href="https://t.co/DilS8kZ8X1">comment letter</a> I quoted above wrote that GLD, the gold ETF, declined in price by 24% from March 1 to December 31, 2013, tracking the same 24% drop in spot gold price. However, its NAV dropped 52%. Why? The Authorized Participants redeemed many GLD shares, causing the shares outstanding of GLD to decrease from 416 million to 266 million. Is that a problem? Not at all. An investor in that ETF only cares that she experienced the same return as spot gold, and not how much assets the ETF held. The author of that comment letter strangely wrote that "Investors wishing to participate in the gold market would not buy the GLD if they knew that a price decline in gold could result in twice as much underlying asset decline for the GLD." That, I believe, is nonsense.<br />
<br />
For further reading on ETP, see <a href="http://www.ici.org/pdf/per20-05.pdf">www.ici.org/pdf/per20-05.pdf</a> and <a href="http://www.ici.org/pdf/ppr_15_aps_etfs.pdf">www.ici.org/pdf/ppr_15_aps_etfs.pdf</a>.<br />
<div>
<br /></div>
===<br />
<br />
<b>Industry Update</b><br />
<b><br /></b>
Alex Boykov co-developed the<a href="http://wfatoolbox.com/?utm_source=epchan&utm_medium=paid&utm_campaign=Articles"> WFAToolbox</a> – Walk-Forward Analysis Toolbox for MATLAB, which automates the process of using a <i>moving</i> window to optimize parameters and entering trades only in the out-of-sample period. He also compiled a standalone application from MATLAB that allows any user (having MATLAB or not) to upload quotes in csv format from Google Finance for further import to other programs and for working in Excel. You can download it here: <a href="http://wfatoolbox.com/epchan">wfatoolbox.com/epchan</a>.<br />
<br />
<b>Upcoming Workshop</b><br />
<div>
<br /></div>
<div>
July 16 and 23, Saturdays: <a href="http://www.epchan.com/workshops/" target="_blank">Artificial Intelligence Techniques for Traders</a>. </div>
<div>
<br /></div>
<div>
AI/machine learning techniques are most useful when someone gives us newfangled technical or fundamental indicators, and we haven't yet developed the intuition of how to use them. AI techniques can suggest ways to incorporate them into your trading strategy, and quicken your understanding of these indicators. Of course, sometimes these techniques can also suggest unexpected strategies in familiar markets.</div>
<div>
<br /></div>
<div>
My course covers the basic AI techniques useful to a trader, with emphasis on the many ways to avoid overfitting.</div>
Ernie Chanhttp://www.blogger.com/profile/02747099358519893177noreply@blogger.com37