Back to Community
Trade Like A Warrior (S&C V35:06 page 34)

June 2017's Stocks and Commodities magazine has a very interesting interview with Ross Cameron of Warrior Trading. He publicly converted $583 into $100k in 45 days at the beginning of 2017. The results are on YouTube.

I decided to code what he said in the interview.

Basic Philosophy

Every day there is a stock that moves 20-30%. Find it when it is up only 5-10%. 80% of time they are gapping up pre-market. Trade 9:30-11:30am, exit all trades. Have the rest of the day free.

S&C Interview check list of factors/strategy:

  1. At open buy stocks that gap up 10%+
  2. float <100M shares (approximated)
  3. strong daily chart: price > exponential ema200
  4. $1.00 < price < $20 (user configurable).
  5. history of big moves (user configurable). 1 previous 60% within last 3 months.
  6. sector-wide catalyst or technical breakout (not implemented)

Additional factors/strategy
7. Liquid so exit orders don't fail. Setting below 30 can't get out of trades.
8. In the interview he did NOT give an exit strategy. I coded sell at 11:30am if not stopped out.

Observations

  1. With the simple entry/exit rules, the entire 2017 success is due to catching HTGM on 3/24.
  2. If you run this for 10 years you go bust

Additions / Optional settings

  1. Sell at open
  2. Trailing stops (for both long and short strategy)
  3. Wait for pull back of n% before buying

Closing Thoughts

You can play with the parameters to see if any produce a return over a 10+ year horizon. Likely better entry/exit rules and additional factors are needed to make it tradeable.

I didn't test all possible combinations of input parameters.

License is MIT. Use at your own risk.

Cheers,
John Glossner

Clone Algorithm
41
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 59403c6236dad16f3cf11f56
There was a runtime error.
7 responses

Gonna go out on a limb here and say that only works of the small time series you tested it in, in fact, nearly all of the positive returns come from 1 day. it has been my observation that stocks peak go up, and at ~1.5 to 2 hours after market open, they begin to correct. so a stock will say jump to 10% over the first 2 hours then, for the rest of the day it will fall down to 6.5%. Infact, the results shown above show that if a stock goes up 5% you should short it.... You say that if you run this over a ten year period you will go broke... lets see why.

Same algorithm. 10 year time series

Clone Algorithm
1
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 59406eef8ed99b6a1fb707e0
There was a runtime error.

FULL BACKTEST NOTEBOOK

45% profitable trades.

Loading notebook preview...
Notebook previews are currently unavailable.

Same algorithm, 10 year time series, changed the first 2 occurrences of

order_target_percent(blah, blah blah)  

To:
order_target_percent(blah, -1* blah blah)

Clone Algorithm
1
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 5940728226625f7041ca7449
There was a runtime error.

Doesnt seem to be loading. the returns are +38% over 10 years. up 200% at one point

@Jacob, see observations. This strategy will definitely go bust. Also, setting the flag sell_at_open = True will switch to a short strategy.

Updated with a few more knobs. Fixed cancelling orders bug. Also includes a switch to set to typical TLAW settings based on public information (context.use_trade_like_a_warrior_values=True). Results are much worse with that knob (-12% with 40% drawdown).

As previously noted, this is not a tradeable strategy and if you have a large account it doesn't scale well. It's success rests on hitting 1 or 2 home runs per year and getting out of wrong bets quickly.

It also is only an approximation to what Ross Cameron actually does. He has published his broker statements and he is profitable.

Clone Algorithm
41
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 5961494421f0506b5d0230c2
There was a runtime error.