When an analyst expresses a "bullish" sentiment about an investment it means that they think that the investment will increase in value. Similarly, "bearish" sentiment means the opposite-they think the value will fall. These are opinions usually based on many factors.

SignalSolver sentiment is different because it is a calculation based purely on numerical analysis of historical price movements. The back-tester finds trading methodologies (called algorithms) by analyzing these movements and figuring out profitable exploits for the time period of the data. If you include recent data in the analysis, you can see whether a particular algorithm ended up bullish or bearish by checking if the algorithm owns the security or not. That is the current sentiment.

Its quite easy to see the current sentiment of an algorithm. First, make sure the data is current, then on the Report tab you can look to the algorithm list and see if it is showing red (bearish) or green (bullish)

Or you can read the Sentiment off the Sentiment column on the Algorithms tab:


Combining Sentiments

Sentiment provides us with a simple way to aggregate algorithms. In SignalSolver we use "Bullish%" as our measure of Sentiment. A single algorithm is either bullish (100% bullish) or bearish (0% Bullish). If two algorithms disagree about sentiment, that would be 50% bullish (or neutral). Three algorithms would combine t0 give 100%, 66.6%, 33.3% or 0% bullishness levels. 100 algorithms would have 101 bullishness levels, and so on. All algorithms carry equal weight in this method.

The "Current Sentiment" Tab

Screenshot of Current Sentiment tab

The "Current Sentiment" Tab

The idea of the "Current Sentiment" tab is to give the user a quick way to get the current sentiment for each of a list of symbols. SignalSolver reads the symbols list and gets current data for the first symbol. It then runs a seek or a scan (depending on the Report->Seek/Scan setting) on that data. When the backtester has finished, the algorithms are sorted on the Algorithms tab according to the Report tab->Optimization setting. The top N algorithms (depending on the Curr. Sent. tab->No. Algs setting) are then examined and a combined sentiment generated. The next symbol is then processed in the same way.

Sentiment results can change with-

  • Days/Weeks/Months To Analyze (the number of data points in the sample)
  • The type of Optimization
  • If Sell % = Buy %
  • Investment style
  • The seek/scan level
  • The buy and sell scan ranges
  • The band selected

and other settings, so its a good idea to check sentiments for different settings before drawing any conclusions. Of these, the most significant is the number of days/weeks/months to analyze since its often true that a security has different long and short term sentiment.

The "Sentiment History" Tab

You can use the "Sent. Hist" tab to help figure out if a particular sentiment based strategy has been profitable in the past. It lets you map out the SignalSolver sentiment history for any security and simulate trades based on the results.

How it works

SignalSolver starts with historical price data and calculates sentiment for the final day, week or month of that data set.  It then steps forward in time calculating the sentiment as it goes, until it reaches the requested end-point (usually current data).

On each step the results of the backtests (on the Algorithms tab) will be re-ordered in the usual way according to the Optimization requested. The top <No. Algs> are then used to calculate the Sentiment Bullish%. You can then use the calculated sentiments to simulate buying and selling to see if you could have successfully used sentiment in a trading strategy.

Sentiment History Settings


Choose whether the simulator uses closing prices or the subsequent opening prices in the simulations.

No. Algs

Choose the number of algorithms included in the Sentiment calculation. Sentiment is simply the number of bullish algorithms divided by the total number of algorithms.

Buy and sell thresholds

For the trading simulator, these thresholds simply determine the Sentiments required to buy and sell at. When the Sentiment crosses the threshold, a buy or sell is simulated.

Offset Start and End

The dates of the sample are determined by the Report->Offset setting, the larger the offset, the more historical is the data. For example, if data was Daily and offset was set to 16, the backtested data would exclude the last 16 trading days.  An offset of zero would be the most current data. The sentiment history will begin at Offset Start and step though until it reaches the Offset End.

Scan Every/Seek Every

You can control how the sentiment is calculated. Every step, the backtester will use one of three options:

  • Run existing algorithms
  • Scan existing algorithms
  • Seek new algorithms

By default, the backtester will simply run the algorithms on the Algorithms tab without changing the buy and sell % points. If the Scan Every setting is non-zero, the backtester will periodically scan the algorithms, re-optimizing the buy and sell points. If the Seek Every is non-zero, the backtester will periodically seek algorithms potentially replacing the existing algorithms on the Algorithms tab with better optimized ones. Seeks will override Scans which, in turn, will override Runs. You should also set the level of the scan or seek using the setting box.

Example: Scan Every 5, Seek every 10. The sequence would be--<Seek, Run, Run, Run, Run, Scan, Run, Run, Run, Run> Repeated

Tips: Use a very large Seek Every if you want to just seek once on the oldest data. Set Seek Every to zero to not seek at all. Similarly with Scan Every.


This sets the investment style for the simulation. L&S is long and short (switch and reverse), L is long and out, S is short and out.

Invert Thresholds

Sometimes you will find sentiment strategies which would have done better if the thresholds were inverted (sell on bullish sentiment). The Invert Thresholds setting gives you a quick way to check if using inverted sentiment would have worked for this data set. In the example below, both thresholds are set to 50%. By inverting the thresholds, a losing strategy is converted into a winning one.