Double 7s Strategy // 75% Win Rate // Stock Secrets

In todays edition of Stock Secrets I’m going to teach you a classic trading strategy that doesn’t require any technical indicators. Using nothing but a daily price chart I’ll show you how you can accurately predict the direction of the market 75% of the time.

STRATEGY INTRODUCTION

This strategy is called Double 7s and most traders who have been around for long enough know this one well. Its based on this idea that when it comes to index ETFs, they tend to do much better on breakdowns as opposed to breakouts. Double 7s is one of those classic buy the fear, sell the greed strategies.

A word of warning here, this strategy is only for trading index ETFs that are in a long-term secular uptrend. It doesn’t work well for stocks that are highly volatile. If there’s any chance a stock can go to $0 then you don’t go anywhere near that with Double 7s.

STRATEGY RULES

The rules here are really simple:

Rule #1: SPY ETF must be trading above its 200 day moving average
Rule #2: When the SPY closes at a 7 day low, enter at the open the following day
Rule #3: When the SPY ETF closes at a 7 day high, exit the trade

As usual, I don’t recommend buying shares with any of these strategies. To get the best results you should use options. You will need to decide what makes the most sense for you, buying a high delta LEAPs call, selling a cash secured put, or buying a debit-spread.

PERFORMANCE

Lets execute the strategy.

The default range I programmed into the strategy is Jan 1st 1990 thru Dec 30, 2022. Feel free to change this range all you like using the strategy settings.

testStartYear = input(1990, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

From the Strategy Tester pane we can see that this strategy triggered 271 buy signals and had a 75% win-rate.

If we look at the list of trades we see that the return percentages look fairly low, somewhere in the 1%-3% per trade range but remember these are percentages based on you buying shares (which you shouldn’t be doing –you should be using options).

Never forget that identifying entry and exit points is just half the battle. The other half is picking the correct trade to put on.

Once the strategy is applied to the chart you can use the options dialog to change the variables. Feel free to experiment with whatever values you want for whatever market you are trading. Typically the 5-9 day range is most common for this strategy.

FULL STRATEGY SOURCE CODE

// Baileysoft Solutions © 2016-2021 
// Author: Neal Bailey 
//         https://www.tradingview.com/u/nealosis/ 
//         https://www.youtube.com/channel/UCWLOB6VrnIHc1QBMpCXUi4A/
//         https://www.journeymaninvestor.com/
//
// This source code is subject to the terms of the Mozilla Public License 2.0
// https://mozilla.org/MPL/2.0/
//
// ---------------------------------------------------------------------------
// The Double7s strategy attempts to profit from a repeated pattern where most 
// index ETFs do much better on breakdowns than on breakouts (the reverse pattern
// of how most individual stocks perform).  
// ---------------------------------------------------------------------------
//@version=4
strategy("Double 7s (Baileysoft)", overlay=true)

// --------------------
// Strategy Rules
// --------------------
// 1. SPY must be trading above its 200-day simple moving average
// 2. Enter when the $SPY closes at a 7 day low
// 3. Exit when the $SPY closes at a 7 day high
//
// Prefer 70-80 delta in-the-money call contracts
//

// The strategy range (dates)
testStartYear = input(1990, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)

// The Doubles value
// Usually Double 7's but can be Double 5's, 6's, 8's, 9's, and 10's
doublesVal = input(title="Doubles Value", type=input.integer, defval=7, minval=5, maxval=10)

// Determine if current bar is within range
// @returns boolean true or false
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

longSMA = sma(close, 200)  // 200-day moving average
highest_close = highest(close, doublesVal) // price of highest close
lowest_close = lowest(close, doublesVal) // price of lowest close

longCondition = close > longSMA  // Phase One Entry Condition

if longCondition and testPeriod()
    strategy.entry("CALL", strategy.long, 100, when=close == lowest_close)
    strategy.close("CALL", when=close == highest_close)

DONATIONS

If you are finding value in my research or the YouTube content please kindly consider making a small donation to keep this project going.

   37y3Twv4QK4wJSDh2UQ4simNTNxUKq486s