MCVI Indicator and Strategy on Daily Charts

A while back we posted an article called, “Modified Chartmill Value Indicator“, the author presented an indicator that might prove helpful in your trading. The indicator is an oscillator which highlights overbought and oversold conditions. The author created a simple test strategy to test the effectiveness of the strategy. The results looked promising and you can read about them here.

The original article provided the indicator and strategy as Amibroker code. I’ve received many requests to provide an EasyLanguage equivalent. So here it goes.

The MCVI Indicator

The EasyLanguage code is at the bottom of this article. It’s available as a text file and as an ELD file which can be imported directly into your TradeStation Development Environment. Below is an example of the MCVI applied to the daily chart o the S&P.


MCVI Indicator (Lower Pane) on Daily Chart of Emini S&P

Trading Model Rules

The original article tested the indicator on weekly data of the S&P 500 Index, the Russell 2000 index, and the NASDAQ 100 index from January 2000 to January 2013. I would like to perform a similar test with daily data in order to generate a few more trades. I will be using the same buy/sell triggers and market regime filter as the original article.

  • User Specified Look-back period (N): 15 days
  • Long Entry: MCVI crosses below -0.51
  • Short Entry: MCVI crosses above +0.43
  • Moving Average Filter Periods: 230 days
  • Long Exit: After 35 days
  • Short Exit: After 25 days

If you review the original article, you can see I simply took the weekly parameters and multiplied them by five to generate my daily parameters. The assumption is there are five trading days in one week.

Testing Environment

Before getting into the details of the results, let me say this: all the tests within this article are going to use the following assumptions:

  • Starting account size of $25,000
  • Dates tested are from 1997 through December 31, 2013
  • One contract was traded per signal
  • The P&L is not accumulated
  • $30 was deducted per round trip for slippage and commissions
  • There are no stops

In-Sample Results

The original article used a period through December 31, 2013, to optimize the inputs. Thus, I’m calling this segment of the data our in-sample segment. Below is how the strategy performed with a $25,000 account applied for each of the three markets.

MSVI IN Sample Results







We succeed at generating more trades by moving the timeframe to a daily bar. During our testing we used the same optimized parameters generated on a weekly chart yet, they held up well in our test. I would guess that optimization on the daily chart would produce even more optimal returns. The equity charts look decent across our three different markets, which is not too surprising since they are correlated.

As stated in the original article, this trading model is nothing more than a test of the MCVI indicator. This is not a trading system that can be traded with money. However, it might be possible to use this indicator in building your own systems.


MCVI Strategy  (ELD file)
MCVI Indicator  (ELD file)
MCVI Wordspace (TradeStation WorkSpace 9.5)
MCVI Workspace (TradeStation WorkSpace 9.1)

MCVI Indicator (text file)
MCVI Strategy (text file)

About the Author Jeff Swanson

Jeff is the founder of System Trader Success - a website and mission to empowering the retail trader with the proper knowledge and tools to become a profitable trader the world of quantitative/automated trading.

follow me on:
  • Marco says:

    Thank you for the daily version Frank. What do you think about the overperformace of Nasdaq compared to S&P500?

  • WQ says:

    Jeff, I just downloaded the MT4 version of MCVI indicator from,

    I tested it on EURUSD and GBPCAD. I found the curve of MCVI-21 is very similar to RSI-14. And indeed MCVI-14 is similar to RSI-14 too.

    Did you ever compare MCVI with RSI and do you have any idea on the difference between MCVI and RSI?

    Thanks for sharing this indicator!

    • I’ve not compared the two indicators. In general the MCVI indictor is an oscillator based upon standardized deviation away from a moving average. The RSI is also an oscillator but computes a ratio of high closes vs lower closes.

  • Pol says:

    Hi! Do u test a connorsi indicator? Would be cool to see results cause I try to use their connorsi) thx forward

  • Mike says:

    What’s “MP” in the code? When I try to compile it throws an error saying it’s not recognized. Is the code referring to another function or variable?

    • MP is a built-in variable that holds the current market position. 0 = flat, 1 = long, -1 = short. If your compiler does not recognize MP you will need to declare it and then assign it. Something like this will need to be placed within your code:

      Variable: MP(0);
      MP = MarketPosition;

      • Mike says:

        Thanks, that’s what I figured.

  • Jim says:

    Hi Jeff,

    Some comments about the MCVI indicator and strategy. At the “Inputs:” the value “N(NUMERIC)” draws an error message reading “arithmetic (numeric) expression expected here”. Why is this occurring?

    At the line reading “MCVI = Result” the error message reading “assignment to a function not allowed” appears. Why?

    Why would you not plot a zero line, a LowValue line of (-0.51) and a HighValue line of (+0.43)? Yes, I know that I am free to add those but the question is why have you omitted such?

    Since neither the indicator and the strategy will verify I would like to remove them from their respective file folders (not any given chart). How do I do that?

    I have found your articles and experiments interesting and sometimes useful; that is, when I can get them to work on TradeStation 9.5 Update 17.

    Jim Stanclift

  • >