Emini SP500 Scalping Strategy

Emini SP500 Scalping: Use the VIX
  • Statistically Valid
  • Ease Of Use
  • Simple To Master
  • Robustness
  • Durability


Day trading the Emini SP500 is not easy. But it can be done profitably.

For those looking to ‘scalp’ trade for daily profits, you need to have a fully verifiable, and easily understandable statistical advantage.

A simple indicator, combined with a sophisticated volatility measurement tool can make all the difference between profits and losses.

The following strategy will always keep you on the dominant side of the market, and present opportunities that are incredibly compelling.

Thanks for reading! Today, we are going to talk about a day trading strategy for the Emini SP500 futures contract.

Included in this strategy will be a complete description, which includes exact code and statistical output.

Before I jump into this, I want the audience to know that I am not a big fan of ‘day trading’, typically the only people that make money are the brokers.

Yet day trading is extremely seductive. The idea that a person can get up every morning, scalp a few trades for several hundred dollars and then enjoy the rest of the day with no risk or exposure is a delightful fantasy. Yes, it can be done. But it’s not easy. Nearly everyone fails.

Why do most people fail at day trading?

This part is going to be controversial. I am going to give you my honest opinion, in order of importance.

  1. Inability to execute limit orders.
  2. Patternicity
  3. Failing to take a loss.
  4. Failing to take a winner.
  5. Assigning emotional rewards.

(1) In my opinion, you cannot ‘scalp’ trade successfully, unless you can execute at least 85% of your entry and exits on a limit order. You must be able to capture the bid/ask spread. Make the counterparty pay for the privilege of executing a market order.

Hardly anyone ever talks about the importance of limit order execution. I am putting it front and center. You must use limit orders.

There is a reason why Virtue Financial went 6 years with only 1 losing day–they execute thousands of limit order trades each day, with little regard to predicting price direction.

(2) Don’t believe what the chart is telling you. You may believe that you are looking at a classic consolidation pattern coupled with a diamond formation. Yet another person may look at the exact same price chart and see a ham sandwich.

Our minds are wired to search for meaning, to search for an opportunity within a noisy surface. This is the fallacy of patternicity. When we think we are seeing something of importance, but what is actually occurring is just random noise.

Patternicity worked great for the ancient caveman or the modern homeless person that rummages through a dumpster in search of scraps of food. But Patternicity DOES NOT WORK with financial markets.

Instead, rely on hard data. A clearly defined framework of variables that can be tested and scrutinized with some modicum of statistical inference. In short, believe nothing that ‘experts’ tell you, instead you must test everything. You must verify the authenticity of everything–especially trading ‘truisms’.

(3) Exits must be built into the strategy. Failing to take a loss may work ‘here and there’ but eventually the inability to take a loss will result in the inevitable evil runner. That one trade that runs against you. And it keeps on running. Until it grinds your account down to pocket change.

Automate your exit. Build it into the strategy. Let the machine save you from yourself. Let it be the uncomfortable parachute that rips you from the perilous downward plunge.

(4) Take comfort in exiting a winning trade. There is nothing more wonderful than basking in the ego inflating experience of sitting on a winning trade. But the comfort is all too fleeting. And it is just a just a mirage of emotions that have no meaning.

Let the machine execute the profitable exit. Don’t succumb to the temptation of “trailing a stop.” Know the exact exit point, before the entry.

(5) Too often we assign an emotional score to winning or losing. We win a trade and add to the score, we lose a trade and we subtract from the score. But this is just a fallacy, a fantasy within our mind. The market could care less about the score. Certainly not about your feelings or emotions.

Instead, assign a high emotional value to your ability to execute with cold and remorseless precision, regardless of whether the trade is a winner or a loser. Execution of the rules is all that matters.

Wow, that was quite the rant. Before I started this post, I swore to myself that I would not rant. And rant I did! Anyway, let’s talk about this strategy.

Step One: Emini SP500 Futures

Ok, step one. Create a chart of the Emini SP500 (day session), using only 5-minute bar charts. The following is an example of August 14, 2017.


Step Two: Calculate and plot the Midpoint

The midpoint of the trading session is simply the middle price of the trading day. The Midpoint of the trading day contains a significant statistical edge, which I have written about here.

As prices make new highs and new lows throughout the trading day, the midpoint will continuously readjust. It is a dynamic indicator that simply divides the day into two sections. An upper section, and a lower section. Example below:


The Midpoint is an extremely simple concept to learn. The key takeaway is that if prices are above the Midpoint, then we only want to take Long trades. We want to be a buyer, hoping for higher prices. We want to stay on the side of the dominant trend. We don’t want to fight the tide, we want to align ourselves with the tide. Nothing fancy here. If prices are higher than the Midpoint, then look to be a buyer.

Step Three: Define and calculate an entry point and exit point

The market ebbs and flows. We want to be a buyer when the market ebbs. We want to enter our trade as it pulls back. However, the pullback must remain above the Midpoint. How do we calculate a pullback? Truth be told, there are hundreds of indicators that work just fine. Whether it be a moving average, an oscillator, Bollinger band, or a Fibonacci point…it really does not matter.

Many a charlatan will attempt to sell you some sort of magical indicator that supposedly can predict short term support zones. Ridiculous nonsense, with silly names like Volume Delta, Order Flow Divergence, Moonbeam Oscillation Fan Sequence, Hyper-convergent Alpha Tooth Fairy. You get the point.

One of my favorites is the Keltner Channel. Which is nothing more than a moving average that plots the standard deviation of the moving average. No, there is nothing predictive of the Keltner Channel. However, it serves the simple purpose of displaying areas just outside of the current price.

For this strategy, we will plot the Keltner Channel of 6,1. What does this mean? We are only using a 6-period moving average, and plotting the upper and lower band of 1 standard deviation. Don’t let this be confusing or scare you away. It’s really simple, and available on all modern trading platforms. Example below:

midpoint with keltner channel

Looking at the above visual sample, we can see the Midpoint of the day’s range as plotted by the solid blue line. And we can see a simple Keltner Channel. Notice how the price ebbs and flows between Keltner Channel.

Once again, there is nothing predictive about the Keltner Channel. Nothing magical is happening. The market is not “looking” at the Keltner Channel, or any other trading indicator and taking its cue from these indicators. Instead, the Keltner Channel is simply plotting a single standard deviation of a 6 period moving average.

However, by simple observation, we can see that price tends to bounce back and forth between the channel. But this is just an observation, and we must remember the fallacy of patternicity. That the human mind is uniquely flawed into believing that something is real when it fact it’s just noise.

So what should we do? We have to test the theory. We have to build a fully automated strategy based upon clearly defined variables. In this case, we want to test the theory that we should buy the emini SP500 futures contract at the bottom of the Keltner Channel. And we should exit the trade for a profit at the upper portion of the channel. The graphic below is visual representation:


Keltner Channel

Ok, so let’s define the market condition for this system in its entirety:

  1. The price of the emini SP500 must be above the Midpoint
  2. The low of the Keltner Channel must be above the Midpoint

If this is true, then we need to define the point of entry, and point of profitable exit:

  1. Enter a long trade at the low of the Keltner Channel
  2. Exit the trade at the high of the Keltner Channel
  3. Exit any open trade at the end of the day

The graphic below is what a series of successful trades look like:

KeltnerChannel Scalping

But what about losing trades? When do we take a loss?

  1. If the HIGH of any 5-minute bar crosses below the Midpoint, immediately exit for a loss. The following graphic is what a losing trade looks like:


So now we know the exact rules, let’s test the theory. The following is the equity curve for this ‘scalping system’ going back January 2002.


As we take a quick glance at this equity curve, this tells us only one thing–that the concept is robust.

However, what about the individual trade metrics? Is this currently a tradable system? What about slippage and commission costs? Let’s look deeper into the numbers:

Trading System Results

The key metrics that you need to focus on:

  • Total Trades: with 7,300+ trades, this is a huge sample size which negates the possibility of randomness.
  • Average Trade Size: $16 per trade is too small.
  • Max Intra-trade Drawdown: Too large at -$9,000.

The conclusion is that this ‘scalping system’ is not a viable trading system. However, we currently have a massive sample size of 7,300 trades. And we have a robust concept. How can improve this system?

In the following section, we are going to add an additional filter.

The Secret Sauce: Adding a VIX volatility filter

Many readers are probably looking at this concept and thinking to themselves, “Hey, it ain’t too bad. I can trade this for a few ticks and make a profit.” Yes, you can. However, we are not in this to make only a few dollars profit each trade. We are in this to make actual money that we can spend on food and diapers.

In a prior post, I talked about a scalping strategy for the crude oil market that uses a volatility filter to day trade the Crude Oil Futures market.  You can read about that strategy here.

In that strategy, we used an obscure volatility indicator named the OVX. Which essentially measures options prices for crude oil stocks.

With our current strategy, we are going to use the VIX index as a filter. What is the VIX index? Essentially, when the VIX is rising, then options prices for stocks within the SP500 are becoming unstable and fear is entering the market.

When the VIX is rising, we need to be cautious about entering long trades. The VIX is a warning us that a sell-off could happen at any moment or is currently happening.

For our following test, we are going to test our Keltner Channel system with a VIX overlay.

Instead of taking each and every trade, we only want to take trades if the VIX is decreasing. So, let’s ask our data the following question:

What happens to performance if the VIX is DOWN intraday, in increments of 1% to 20%? The following is the performance graphic:


Ok, so what are we looking at? This is a graphical display of only taking trades if the VIX is below 0 for the trading day. Additionally, we tested if the VIX is down 1%, 2%, 3%…all the way to 20%.

As you can see, the lower the VIX, the higher our average trade and profit factor. As a rule of thumb, you only want to consider a day trading system that has a minimum of 1000 trades. The larger the sample size, the lower the chance of a random outcome.

Which would I choose? For myself, I would select the parameters from test #13. In other words, I would only trade this system if the VIX were down a minimum of 8% intraday. The market is clearly stating that fear is rapidly leaving the market, and higher Emini SP500 prices are a near certainty.

Once again, if the VIX is down 8% intraday, the market is clearly stating that fear is rapidly leaving the market, and higher Emini SP500 prices are a near certainty into the close. The following graphic is the performance metric and equity curve for only trading our Keltner Channel system if the VIX is down a minimum of 8% intraday:



Ok, so looking at the performance metrics we can see that with a stupid simple filter…we have created something actually tradeable, and made the following improvements:

  1. Average trade size has jumped from $17 to $42.
  2. Maximum Intra-trade drawdown has decreased from $9,200 to $1,825.
  3. Profit factor increased from 1.34 to 2.10.
  4. Average trade lasts only 34 minutes.

Wrapping things up

Wow, that was a long post. A whopping 2200 words! Congratulations for making it this far.

So what is the key takeaway? The most obvious are that if you are going to ‘scalp’ trade for small profits…you need to find an exploitable edge. And work the edge.

You need to test everything. If someone tells you, “my magical software plots institutional money flow,” then OK…lets test the theory, let’s define it and test it. Usually, they slink back under the rock from which they came. Don’t believe anybody in this business. Especially someone selling a magical trading indicator. You must take control of your trading and you must test everything.

The system that I have written about is something you can use tomorrow. Hopefully, you won’t. My sincere hope is that you will take the concept and improve upon it. And believe me when I tell you…it can be improved to something so compelling that the money will practically beg to jump into your trading account.

The ‘holy grail’ of trading is not contained within a singular trading system or trading indicator. Instead, the holy grail is having a large stable of trading systems. Only take trades where you know beforehand…that you have a statistical advantage. Treat your trading like a casino. Like you own the casino. Not a patron.

Thanks for reading. I love to read those comments. Especially the curmudgeonly trolls.

0 0 votes
Article Rating

This is a demo advert, you can use simple text, HTML image or any Ad Service JavaScript code. If you're inserting HTML or JS code make sure editor is switched to "Text" mode.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Oldest Most Voted
Inline Feedbacks
View all comments

Pearl Henry
Pearl Henry (@guest_6068025)
2 years ago

Strategy looks good with VIX, however hard to find a VIX % Drop indicator on Tradingview – which plots it Intraday. any suggestions on how to get it ?

Johm (@guest_5056973)
3 years ago


Tony (@guest_5056972)
3 years ago

The KC bands does not measure volatility. The Bollinger Bands do.

randy (@guest_1040117)
4 years ago

Wow that was a loss of 15 minutes of my life.

Robert McMillan
Robert McMillan (@guest_33328)
5 years ago

Why could you not trade the original non Vix system? It’s about 2 trades a day, which for daytrading is pretty reasonable (maybe even low).

Philip (@guest_33339)
5 years ago
Reply to  Emmett Moore

“Would you like to see another short-term strategy, similar to this blog post?” – yes ofcourse Emmett. I find your strategy reviews more interesting than trading room operators reviews & I am sure many would agree with me here as we already know operators are all scam artists.

Kev (@guest_31513)
5 years ago

I am struggling to replicate similar results. First section without the VIX filter is close so I guess my code for the filter must be incorrect.
Has anybody on this forum managed to get similar results?

MB B (@guest_31307)
5 years ago

Are you trading this live yourself?

Luiz Carlos
Luiz Carlos (@guest_30649)
6 years ago

Is there any replacement for VIX, if the asset or platform does not have it?

ImDone (@guest_30468)
6 years ago


I really like your usual content of reviewing and shaming fraudsters. That’s what you’re good at and that’s what I’d like to read.

But your trading systems articles have so many facepalm – moments, which just expose that you have no idea what you are doing when it comes to trading. Please stop that.

First of all, Virtu is doing so well because they pay for orderflow and are allowed to execute subpenny trades. If you buy at 10.0001 $ in front of a resting customer order that sits at 10.00 $ and sell at 10.01 $, you have a Risk/Reward of 1:99 (not even factoring in the rebates)

Do that 250.000 times a day and it makes me wonder why they have a losing day.

This has nothing to do with limit orders!

Second, you are testing a strategy that uses passive execution, which – if you don’t use historical data with market by order resolution – is a huge red flag, since you have no idea if you actually would have received a fill in a live market.

If you take this strategy to the live market, you’d get filled on the losing trades 100%, but probably only 60-85% of your winning trades…which you don’t know right now, because the backtest is flawed.

Third, from 2002 to today, the markets went through dozens of regimes. From post DotCom through 2008’s explosion of the dispersion trade to fully computerised market making. Can you correlate your results to those regimes?

I hope you don’t see this post as an insult, but please stick to what you’re excell and stop posting bullshit.

Mike M
Mike M (@guest_30471)
6 years ago
Reply to  Emmett Moore


I appreciate your material and your willingness to expand content on this site. I believed you saved new traders from predators more times than we can even fathom.

As far as your trading strategies, I don’t believe you ever said it was a plug n play system. I look forward to reading content that will help expand the realm of my knowledge base. As you you stated before, most of your readers are not aware of automated strategies. Any exposure, even if slightly flawed, will help increase awareness into back testing strategies.

Rob B
Rob B (@guest_30478)
6 years ago
Reply to  ImDone


You are right on the money. As I have repeatedly stated back testing results and forward testing in a live market with real fills is not the same thing. They have created ETF and other methods of trading various strategies and they usually fail when forward testing. There is a reason for that. I wish it was so easy to just back test a strategy and make money by playing it forward in a Real Market. We would all be rich. Just something to keep in mind if one were to chose to trade actual money using one of these strategies.

Cyn (@guest_30479)
6 years ago
Reply to  Rob B

Here is my friend’s take on that matter. I agree. 🙂


Longshot (@guest_33334)
5 years ago
Reply to  ImDone

Exactly. If you want to day trade profitably, join a high-frequency trading firm (which is much easier said than done). While you can mine data and find simple technical analysis systems that appear profitable, they won’t hold up in real time. Executions are a big problem, but beyond that systems just won’t hold up over time. If there’s anything worthwhile about them, the big firms will figure them out, optimize them and trade them with much less cost and friction than retail traders. Remember, they have the best minds and algos working 24/7 to discover and exploit every possible edge.

Tiago (@guest_30348)
6 years ago

Excellent article.

I have a question about the VIX filter. Do you assume that the VIX is down intraday before entering the trades or do you consider at the end of the day? If you consider the VIX filter being down 20% by the end of the day, you cannot enter on Emini SP500 trades before this assumption being valid.
How do you deal with this look-ahead bias?

Tom (@guest_30345)
6 years ago

“Don’t Trust anything this guy says” !!
Holy crap .. Dr .Dean sounds like he’s all sauced up …

Thought you might get a kick out of this ..

BottomStepTrader (@guest_30298)
6 years ago

“Hyper-convergent Alpha Tooth Fairy” LOL! hahha…Okay, time to get serious. This was a great article, unfortunately so many people try to build systems that are two dimensional and never factor in data from other correlated markets. People think correlation is just for stat arb pairs trading, you don’t need to be a pairs trader or spreader to use correlation. Retail do-it-yourself-at-home trading system builders always ignore correlation and market context! My question to you would be what was the 30 Year Bond or Dow or Russell doing each time you got a trading signal for this ES scalping system? If you got a Long signal on the ES did the Dow’s Long signal just fail or was it successful? Markets take turns leading and lagging on a day to day basis. When you enter a signal NEVER BE FIRST TO THE PARTY!

Cyn (@guest_30287)
6 years ago

Nice write-up, but you have the wrong description for the Keltner Channels. what you have described is, in fact, the Bollinger Bands indicator.

“Keltner Channels are volatility-based envelopes set above and below an exponential moving average. This indicator is similar to Bollinger Bands, which use the standard deviation to set the bands. Instead of using the standard deviation, Keltner Channels use the Average True Range (ATR) to set channel distance.”

R.G. (@guest_30284)
6 years ago

Do the reported results of your scalping strategy uphold your number one admonition for day traders: “You must use limit orders”? Most readily available historical data sets are based on “last trade” prices and do not include the bid/ask prices that were existent when that last trade occurred. You can only simulate a limit-order strategy (when using last-trade data) by assuming a buy order was never executed unless price moved one tick below your buy-entry price and a sell order was never executed unless price moved one tick above your sell-exit price. These assumptions are “worst case” in that sometimes your buys would have been filled at the exact low of the price bar and your sells would have been filled at the exact high. If you re-run your simulation using the above assumptions, I predict your system will be break-even or show a loss. If I’m right, the takeaway is that you cannot reasonably test strategies that produce a modest profit per trade if all you have available is last-trade historical data.

Would love your thoughts, please comment.x