State Signals for Analyzing Bar-By-Bar Metrics

Dr. Howard Bandy encourages using “state signals” versus “impulse signals” when developing and analyzing systems. My understanding of a state signal is that it is a continuous signal for every bar that defines the state of the trading system, example “be long”, or “be short”, or “be flat”. Traditional indicators are defined as “impulse signals” which define the state transitions or edges. An example would be a cross over which defines to “go long or short” when the condition is true. A state or impulse based system will produce the same exact results when defined properly: however, the state based system offers the capability to analyze more data. Importantly, it may be possible to analyze market characteristics at a finer granularity which could be useful when developing consensus systems or the possibility to fine tune edges. As an example, if a market has a higher percentage of down days when below a moving average then it might be possible to use that information when combined with other types of signals even though it might not actually be profitable to short on the cross overs. In other words, we’re able to investigate the intra-trade qualities or the market qualities for a given state and not just the path-based return.

Developing from these ideas, I have recently started to explore analyzing the sub-metrics or bar metrics for various market states. The motivation for this approach is to derive greater insight into market dynamics.

In more concrete terms, imagine we want to analyze a traditional moving average cross system. We would convert the moving average cross impulse based signals into market states which we could then use for computing our various metrics over. Let’s look at an example system:

Impulse Rules:
Buy market when close cross over average; Sell when cross under average

State Rules:
Long or Bullish State = Close > Average, Neutral or Bearish State = Close <= Average

Example Metrics:
Up vs Down Days, Big Up vs Big Down Days, % New highs, % New Lows

There are two approaches for deriving some of these metrics. The first approach is to convert the the impulse system into a state system that generates new trades for every single day (or bar). We can then use the traditional trading reports that our platform generates for analyzing some of the bar by bar metrics. The second approach is to classify the market based on the state and generate metrics by counting or performing selections or searches. Examples of such questions might be, how often do we make a 5 day low when below a moving average versus above a moving average, what is the percentage of up/down days, how many large days/moves do we make above or below a given moving average, etc.

You can read Dr. Bandy’s explanation at the link below:


If you want EasyLangauge source code demonstrating how to convert an impulse system into a state system for analyzing bar-by-bar metrics and a set of statistical indicators for analyzing statistics for market states them please send only ~$120 in Bitcoin or Bitcoin cash to the wallets below respectively. Please send the exact amounts below regardless of current trading value. The pricing is in BTC/BCH.

Add .0255 for Ninjatrader scripts.

Add .0046 for Ninjatrader scripts.

Please include your email in the notes and/or email the wallet address you sent from and a reference to this post to Please allow up to 1-3 days for processing and for me to get everything together. If you’d like Ninjatrader scripts in addition to Tradestation then please add 50% to order. I will have to create those but should not take more then a couple hours. Thanks.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s