All posts for the month January, 2016

OTAS content and analytics can be accessed via a variety of proprietary and third party channels, allowing users to benefit from an integrated solution whilst saving on invaluable desktop real estate.


  • OTAS Base

An API and visualisation toolkit that allows one to build OTAS content and analytics into a proprietary application such as a dashboard or an internal OMS/PMS e.g. Flags and Stamps.

  • Fidessa

OTAS Core Summary and Microstructure analytics integrated into Fidessa’s equity trading platform, empowering traders with unique insight into the live market conditions of the instruments in their order blotter.

  • Thomson Reuters Eikon

Our Apps available through the Eikon App Studio. They can be easily integrated into workflow by linking to single stock object or a quote list.

  • Portware

Core Summary, Alerts and Microstructure analytics seamlessly integrated into Portware’s EMS, Portware Enterprise.

  • Flextrade

Core Summary, Microstructure, Stacked Graph, Lingo Reports, Express and News fully embedded into FlexTRADER EMS. OTAS Alerts also available alongside order details in their transaction cost analysis tool FlexTCA.


Lingo and Core Summary content available on a stock by stock basis to compliment broker research content available on the portal.


Third party logos

In times of market uncertainty, asset allocation in Equities can typically adopt a flight to safety strategy, diversifying into to less risky, less volatile stocks. In light of the recent market sell off there remains a lot of unallocated cash sat with investment managers looking to be put to use.
Perhaps the obvious choice would be to invest in high yielding income stocks but now even those previously perceived ‘safe haven’ companies are under threat as CEO’s address falling profits by cutting their dividends (á la Tesco, Centrica, Anglo American)

So how do you avoid investing in those stocks whose dividend may be unsustainable or identify the stocks in your Portfolio most at risk of dividend cuts? One simple way is to use OTAS Dividend Analysis.

To better understand the prospects for income payments investors need to consider the how well the future dividend is covered by earnings(expressed as dividend cover ratio.) Typically, if the dividend cover is above 2 the dividend is regarded as safe, however a ratio under 1 indicates the company is using retained earnings from prior years to pay this years dividend and potentially at threat.
OTAS Dividend Analysis plots dividend cover against projected forward yield expectations and identifies the most statistical extreme outliers across a Portfolio or Index.

Consider the FTSE 100 as an example :-

On the scatter plot below each dot represents a FTSE100 company with those stocks most diverged from the cluster set highlighted in yellow based on 12m Fwd estimates. Focussing on the upper left-hand side,  five companies- Rio Tinto, Royal Dutch, BHP Billiton, Vodafone and Aberdeen A.M all currently screen negatively in terms of forward yield assumptions versus dividend cover and could be considered at risk.


Rolling this further out and assuming analysts FY1 estimates for 2017. the scatter plot changes and Aberdeen A.M and Vodafone are replaced by Anglo American(who already cut their dividend in December) and Direct Line Group which offers an expected 8.75% yield vs just 0.94 dividend cover.


Inversely, whilst this Blog has concentrated on the companies whose dividend is potentially under threat this analysis can also be used to focus on those stocks which may offer a potential income growth investment opportunity.

Screening the 12m fwd plot again, ARM Holdings, Hikma Pharma, Rangold Resources & Worldpay Group all offer a low market relative dividend yield which is currently at least 3 times covered by earnings, suggesting there is room for senior management to increase future payouts to shareholders.


With over 12,000 stocks covered globally, you too can run similar such analytical screens for your portfolio or universe of stocks for dividends and a range of other factors.

Call us or visit for your free trial today.

Asahi with 38% market share, the largest major beer producer in Japan has been flagged in OTAS this morning as the top positive name in NKY225. In terms of valuation, divergence, dividend trend and our OTAS technical signal, this stock was positively flagged. Perhaps it is time to look at Asahi with a defensive nature as Japan has officially entered into a bear market TOPIX -23% from August 2015 high.


Strong Catalyst

Japan beer drinkers favour domestic brews such as Asahi, Suntory, Sapporo and Kirin. The largest four brewers have a combined market share of 90% in Japan but Asahi only had a 1.2% global market share.

However according to recent Reuters news shown on OTAS, Asahi is bidding for the Italian brewer Peroni and the Dutch brewer Grolsch to support the company’s overseas growth strategy and increase the presence in the global market.




Valuation wise, the P/E vs MSCI Japan is trading at a 2 year low. The 12 month forward P/E valuation of 17.1x is very low relative to valuations over the past two years.


EPS momentum of Asahi is among the top 20% of all the positive performers in the industry group. Even though price was down by 1.7%, the EPS was up by 11.1% since last month.


Dividend yield trend is picking up significantly with 12 month forward yield of 1.8% which is very high relative to the sector over the past two years.


Lastly, with the full year earnings release on February 9th 2016 and the positive OTAS Full Stochastic (+) signal which fired three days ago (indicating that on average there will be a 1.3% return over the coming 20 trading days), we can consider to add this as a defensive stock to our portfolio in this bear market.

The latest customisation enhancement to the OTAS Lingo report writing tool allows you to control exactly what what form your report takes and what content you see within it, making sure you are only told about the stand-out activity in the factors you consider most important.

For example:

  • Create a comprehensive forward Events calendar for your Portfolio or Watchlist
  • Gauge positional risk by only screening for activity in sentiment indicators such as Short Interest, Insider Transactions, Options and Credit Default markets.
  • Produce fundamentally driven reports analysing extremes in Valuation, Earnings and Dividend yield.

Create your bespoke Lingo report by using the ‘New Template’ in the drop-down and simply tick to select/un-select the content you want. Change the factor hierarchy in the report by using the directional arrows.



If you require assistance in accessing or creating new Lingo reports, or navigating any other aspect of OTAS, please or your Account Director.

The latest release of OTAS has seen significant improvements to our Core Summary application. The additional detail now accompanying each Stamp provides comprehensive analysis and data across a range of market factors for single stocks at the click of a button.

Example – New Insiders Screen


New Stamp detail features –

  • Performance : Table now displays price trend analysis on an absolute, market & sector relative basis
  • Signals: Ability to view frequency and backtest statistics on all studied OTAS technical signals, including the most recently fired.
  • EPS Mmt : Displays broader historic EPS momentum change analysis and comprehensive analyst consensus information
  • Insiders : Detailed table of most recent insider transactions including identity, importance and historic backtested ranking
  • Valuation : Additional charts displaying comparative absolute and market relative valuations and historic range analysis.
  • Implied Volatility : Absolute & relative implied volatility statistics table.
  • Short Interest : Comprehensive short interest screen including percentage change in loan data, days to cover and upcoming dividend date.
  • CDS : Additional historic CDS spread trend statistics.
  • Divergence : Individual scatter plots displaying sector dispersion and most diverged stocks for each referenced factor.
  • Events : Extensive upcoming events calendar for the referenced company.
  • Dividend : Includes additional projections on yield, growth and dividend cover and displays most recent and upcoming dividend payment data.

If you require assistance or have further suggestions on the Core Summary or navigating any other aspect of OTAS, please contact or your Account Director.

Free monads are quite a hot topic amongst the Haskell community at the moment. With a category-theoretic derivation, getting to grips with them can be rather daunting, and I have found it difficult to understand the engineering benefit they introduce. However, having finally come to grips with the fundamentals of free monads, I thought I’d write a brief introduction in my own terms, focussing on the benefit when designing interpreters and domain specific languages (DSLs). Certainly, the information described below can be found elsewhere, such as this Stack Exchange question or Gabriel Gonzalez’ excellent blog post.

The free monad interpreter pattern allows you to generate a DSL program as pure data with do-notation, entirely separate from the interpreter which runs it. Indeed, you could construct the DSL and generate DSL programs without any implementation of the semantics. Traditionally, your DSL would be constructed from monadic functions hiding the underlying interpreter, with these functions implementing the interpreter logic. For example, a DSL for a stack-based calculator might implement functionality to push an element to the stack as a function push :: Double -> State [Double] (). Our free monad pattern separates the specification from the implementation, so our calculator program would be represented first-class, which can be passed both to the ‘true’ interpreter, as well as any other we wish to construct.

Let’s stick with the example of constructing a DSL for a stack-based calculator. To begin with, we need to construct a functor representing the various operations we can perform.

data Op next
  = Push Double next -- ^ Push element to the stack
  | Pop (Maybe Double -> next) -- ^ Pop element and return it, if it exists
  | Flip next -- ^ Flip top two element of stack, if they exist
  | Add next -- ^ Add top two elements, if they exist
  | Subtract next
  | Multiply next
  | Divide next
  | End -- ^ Terminate program
  deriving (Functor)

Our calculator programs will be able to push and pop elements from the stack and flip, add, subtract, multiply and divide the top two elements, if they exist. This definition may seem slightly strange: the datatype has a type parameter next which is included in each non-final instruction. In this way, each operation holds the following instructions in the program. The End constructor is special in that no instructions may follow it. Pop is special too: its field is a function, indicating that Maybe Double will be returned as a value in the context of the program (see below).

As I mentioned, Op needs to be a functor, which we derive automatically with the DeriveFunctor pragma. This will always be possible with a declaration of this style because there is exactly one way to define a valid functor instance.

As it stands, programs of different lengths will have different types, due to the type parameter next. For example, the program End has type Op next (next is a free type parameter here) while Push 4 (Push 5 (Add End)) has type Op (Op (Op (Op next))). Note that these look suspiciously like lists, the elements of which are Op‘s constructors. The free monad of a functor encodes this list-like representation while also providing a way to lift a value to the monadic context. For any functor f, the free monad Free f is the datatype data Free f a = Pure a | Free (f (Free f a)). Notice the similarity to the definition of list.

Suffice to say, Free f is a monad. I don’t want to dwell on the mathematical significance of Free or its application beyond interpreters: I’d rather focus on how they are used to define DSL programs using do-notation.

-- From Control.Monad.Free 
type Program = Free Op

push :: Double -> Program ()
push x
  = liftF $ Push x ()

pop :: Program (Maybe Double)
  = liftF $ Pop id

flip :: Program ()
  = liftF $ Flip ()

add :: Program ()
  = liftF $ Add ()

subtract :: Program ()
  = liftF $ Subtract ()

multiply :: Program ()
  = liftF $ Multiply ()

divide :: Program ()
  = liftF $ Divide ()

end :: forall a. Program a
  = liftF End

Program is the monad representing our DSL program, and is defined as Free Op (Free is defined in the free package). We need to provide functions to lift each constructor into Program, using liftF. Notice that almost all of the functions are of type Program (), except for pop, which yields the top of the stack as a Maybe Double in the monadic context, and end, whose existential type indicates the end of a program (this requires the RankNTypes language extension). With these, we can start defining some calculator programs. Remember, we’re simply defining data here: we’re haven’t defined an interpreter yet!

-- Compute 2 * 2 + 3 * 3, leaving result on top of stack
prog :: forall a. Program a 
prog = do 
  push 2 
  push 2
  push 3 
  push 3 

pop allows us to read values into the Program context, meaning we can use pure Haskell functions in our programs:

-- Double the top element of the stack.
double :: Program ()
double = do
  x <- pop
  case x of 
    Nothing ->
      return ()
    Just x' ->
      push $ x' * 2

Finally, let’s define an interpreter for our DSL, which returns the state of the stack after program execution.

modStack :: (a -> a -> a) -> [a] -> [a]
modStack f (x : x' : xs)
  = f x x' : xs
modStack _ xs
  = xs

-- The existential type of the parameter forces the program to be 
-- terminated with 'end'.
interpret :: (forall a. Program a) -> [Double]
interpret prog
  = execState (interpret' prog) []
    interpret' :: Program a -> State [Double] ()
    interpret' (Free (Push x next)) = do
      modify (x :)
      interpret' next
    interpret' (Free (Pop next)) = do
      stack  do
          put $ xs
          interpret' $ next (Just x)
        [] ->
          interpret' $ next Nothing
    interpret' (Free (Flip next)) = do
          put $ x' : x : xs
        _ -> return ()
      interpret' next
    interpret' (Free (Add next)) = do
      modify $ modStack (+)
      interpret' next
    interpret' (Free (Subtract next)) = do
      modify $ modStack (-)
      interpret' next
    interpret' (Free (Multiply next)) = do
      modify $ modStack (*)
      interpret' next
    interpret' (Free (Divide next)) = do
      modify $ modStack (/)
      interpret' next
    interpret' (Free End)
      = return ()

The interpreter logic is very simple: we pattern match against each Op constructor, mutating an underlying list of doubles where necessary, being sure to recurse on the remainder of the program represented by next. interpret' accepts an arbitrary Program a parameter which doesn’t necessarily have to be terminated by end, although we insist on this by wrapping the function in interpret which demands an existential type. This detail is not important here, although may be for more complex interpreters which require resource clean-up once the interpretation has terminated. end could also be automatically appended when interpreting, too.

The beauty of this programming pattern is the separation of concerns: we can freely define a different interpreter which can operate on the same DSL program. It is often very natural to want to define more than one interpreter: in this case, I may want to execute the program, additionally warning the user when illegal pops or flips are made. This is possible because the interpreter logic does not define the embedded language, unlike in the traditional approach, making this a very attractive design pattern for DSL and interpreter construction.

As the general rout in Energy stocks continues in reaction to an ever decreasing oil price and China slowdown concerns, sector favourite Phillips 66 is displaying some positive factors on OTAS ahead of its earnings report in 22 days. Following the -16% fall from its December highs, fundamental and sentiment indicators suggest there is a currently degree of optimism for the shares…….



Berkshire Hathaway have been back in the market and bought another $4m worth of stock in recent days. This follows on from their significant purchases noted back in September. As our analysis shows they rank with 3 stars(when considering previous transactions) as their market timing was astute.

EPS Momentum

The average analyst consensus EPS estimates have been revised up by +2.2% in the last month, this puts Phillips 66 in the top 10% of its sector for upgrades. The price vs fwd EPS chart shows a close correlation over the last year however that trend has seemingly dislocated over the last month potentially providing an opportunity.

Short Interest

The current % of free float share on loan is around 1.2% and is mid range compared to its 2 years average, however, there has been a discernible contraction(approximately half) in the total number through December in reaction to the falling share price suggesting negative bets are being reduced.

Other notables:

Positive technicals with a MACD Buys signal firing 3 days ago(it has also hit its lower Bollinger Band).

Currently rated a consensus Buy amongst analysts and trades at a 23% discount to its mean Price Target

Despite the fall in share price implied volatility relative to the sector remains very low – arguably seen as a positive for long term equity investors.