SSIX - Social Sentiment Indices powered by X-Scores

Following on our previous article from December 16th, 2016. We now discuss the use of a social sentiment data for investment and training.

The strategies and algorithms we describe here are simplified and are not intended for live trading but just for demonstration purposes. A live trading algorithm requires many more rules and functions to cover a real market execution.

The initial virtual capital for this investment simulation is USD 100,000. Two scenarios are considered: (A) is the one where no social sentiment data is used, while the second (B) is the one that uses social sentiment data. For the backtesting period, we have picked March 10th to April 16th, 2017, when the financial markets were stable with a slight downtrend.

Scenario A: Financial strategy with no social sentiment

Firstly, we are looking at a very simple screen and ranking strategy built up in MAARS ranking platform, made of two financial parameters:

  • “Issuance (Retirement) of Stock, Net” represents the net changes in cash flow due to the changes in the level of debt of a company. Here we’ll be looking for negative numbers for companies, which could mean retiring of debt, dividend payment or stock repurchases – the lower the better.
  • Operating income measures the amount of profit realised by business operations after deducting operating expenses, salaries and depreciation. For this parameter, we’ll look for positive values, the higher the better.

For screen and rank settings we consider ‘Operating Income’ to be more important than ‘Issuance (Retirement) of Stock, Net’ parameter and we consider the following search intervals for each:

  • Issuance (Retirement) of Stock, Net
    • Ideal interval (-34,710, -10,000)
    • Strict interval (-34,710, 0)
    • Direction of search: lower better
  • Operating income
    • Ideal interval (20,000, 71,230)
    • Strict interval (0, 71,230)
    • Direction of search: higher better

Secondly, we have built a very basic algorithm in Python for back testing that will call our Scenario A ranking strategy in MAARS on a daily basis between March 10th and April 16th, 2017, and then buy and hold the following stocks: 500 shares of stock ranked 1, 10 ranked 2,10 ranked 3 every day by MAARS.

Running this algorithm will return stocks picked on a daily basis as listed below that are being bought at the market price and then held. This mechanism continues for the duration of the simulation, between March 10th and April 16th, 2017:

10:32:37:905 INFO Backtesting for trading day 2017-03-10

10:32:38:266 INFO The 1st stock bought is GILD

10:32:38:275 INFO The 2nd stock bought is AAPL

10:32:38:276 INFO The 3rd stock bought is CMCSA

We use a generic index S&P500 to benchmark our portfolio return. We do not enter in the mechanics of choosing a benchmark index, but we underline that such indexes have to be meaningful as benchmark mechanism for the monitored portfolio.

Figure 1 below shows the performance of the portfolio that doesn’t use sentiment data versus the index.

Figure 1 Performance of a stock portfolio that doesn’t use social sentiment index vs S&P 500

As can be noticed, the overall performance of the portfolio is poor, having a negative return of -10.96% while S&P500 index also has a negative return but only -1.84%.

We are now going to use the same financial strategy as above, but with sentiment data added.

Scenario B: Financial strategy with social sentiment

Firstly, we are using exactly the same financial parameters as in Scenario A and then we are adding the sentiment financial parameter:

  • Issuance (Retirement) of Stock, Net
  • Operating income
  • X-Score SMA (Sentiment Moving Average). We are looking for companies that have positive SMA, the higher the better.

For screen and rank settings we consider ‘Operating Income’ to be more important than ‘Issuance (Retirement) of Stock, Net’ parameter while the X-Score SMA is the least important of all; then we consider the following search intervals for each:

  • Issuance (Retirement) of Stock, Net
    • Ideal interval (-34,710, -10,000)
    • Strict interval (-34,710, 0)
    • Direction of search: lower better
  • Operating income
    • Ideal interval (20,000, 71,230)
    • Strict interval (0, 71,230)
    • Direction of search: higher better
  • X-Score SMA
    • Ideal interval (0, 0.38)
    • Strict interval (0, 0.38)
    • Direction of search: higher better

Secondly, we run the same algorithm in Python for backtesting that will call our Scenario B ranking strategy in MAARS on a daily basis between March 10th and April 16th, 2017, and then buy and hold the following stocks: 500 shares of stock ranked 1, 10 ranked 2,10 ranked 3 every day by MAARS.

Running this algorithm will return stocks picked on a daily basis as listed below that are being bought at the market price and then held. This mechanism continues for the duration of the simulation, between March 10th and April 16th, 2017:

11:33:25:298 INFO Backtesting for trading day 2017-03-10

11:33:25:565 INFO The 1st stock bought is GILD

11:33:25:567 INFO The 2nd stock bought is HD

11:33:25:567 INFO The 3rd stock bought is UTX

As can already be noticed, the 2nd and the 3rd stock from the first day of investment (highlighted in yellow) differs from Scenario A where no sentiment was used. The reason is straightforward: in that moment, our ranking and screening strategy includes the sentiment parameter, which constraints altered the final ranking of equities and now MAARS returns a slightly different set of stocks to invest in. This change represents the influence of the SSIX sentiment data we use in Scenario B.

Figure 2 below presents the portfolio performance vs S&P 500 index over the same period as in Scenario A

Figure 2 Performance of a stock portfolio built with social sentiment data vs S&P 500 index

As can be observed in Figure 2, the portfolio at the end of the exercise has a 2.04% return over more than a month period while the S&P 500 has a negative return of -1.84%. Also a lower draw-down and better Sharpe ration resulted for this scenario B portfolio.

Discussion of the results

The above backtesting scenarios (A and B) are intended solely to demonstrate how using a new type of financial data – social sentiment data – can influence an equities portfolio when used in the right strategy and the correct market conditions.

Performance can be altered/influenced by many other factors, and therefore we tried in our example to model a very basic algorithm in order to focus solely on the influence of the new financial sentiment data. In a full-blown scenario, the performance can be altered by various rules of entering/exiting the market, the capacity to detect the right market type, the ability to switch between the right algorithms when the market type changes, commission modelling, budget allocation on equities, desired risk level and so on. All these can be modelled in our MAARS platform. For any advanced discussions on such simulations as well as financial sentiment data please contact Peracton Ltd at info@peracton.com.

 

This blog post was written by SSIX partner Laurentiu Vasiliu at Peracton.
For the latest update, like us on
Facebook, follow us on Twitter and join us on LinkedIn.

Tweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0
Author :
Print

Leave a Reply