YouTube2Text

I Tested the Strategy From a $1,000 Trading Book — Transcript

by Unbiased Trading · 2,842 words · 399 segments · language en · Watch on YouTube

Full transcript

  1. 0:00This is Toby Crabel. He wrote what might
  2. 0:02be the most famous day trading strategy
  3. 0:05book ever written and then he refused to
  4. 0:07print it ever again. Now today a single
  5. 0:09copy can almost run you a thousand
  6. 0:11dollars. Now if you're anything like me,
  7. 0:12I'm wondering what's actually in it and
  8. 0:14does the strategy still work? Well I got
  9. 0:16a hold of it and I coded the main system
  10. 0:18idea from scratch and tested it and I've
  11. 0:21got to say what I found really surprised
  12. 0:23me. So in this video I'm going to take
  13. 0:25his opening range breakout strategy,
  14. 0:27backtest it on years of minute by minute
  15. 0:29data on QQQ and show you exactly what
  16. 0:32happened. Now the strategy is actually
  17. 0:33simpler than you would actually think
  18. 0:35because it doesn't try and predict what
  19. 0:37way the market's going to go. It waits
  20. 0:39for the market to go dead quiet and then
  21. 0:41places two orders and lets the market
  22. 0:43pick the winner. Well, at least in
  23. 0:44theory. So who is Toby Crabel? Well he
  24. 0:47actually started out as a professional
  25. 0:49tennis player. Then he became a trader
  26. 0:50and then he worked on the Victor I don't
  27. 0:53think I'm going to be able to say last
  28. 0:54name but
  29. 0:55Victor Niederhoffer and in 1920 22 he
  30. 0:58went out on his own. And this was the
  31. 1:00first number that actually stopped me in
  32. 1:01when I was reading about him. From 1991
  33. 1:04to 2002
  34. 1:06his trading went through a 12 year
  35. 1:08streak without a single losing years. 12
  36. 1:11years is an incredible amount of time.
  37. 1:13And then Financial Times actually once
  38. 1:14called him the most well known trader on
  39. 1:16the counter trend side of things. At
  40. 1:18peak he was managing about 7.5 billion
  41. 1:20and he only ever wrote one book that was
  42. 1:22in 1990 and has never been reprinted
  43. 1:25since. Today his firm runs billions but
  44. 1:27it did peak around seven and a half
  45. 1:29billion. In this book though he laid out
  46. 1:31his research and sold it and then
  47. 1:33refused to ever let it get reprinted
  48. 1:34again which is why now a copy can almost
  49. 1:36cost you a thousand dollars on Amazon.
  50. 1:38So I bought the strategy and coded it
  51. 1:40and ran it on 15 years of data. And I'll
  52. 1:42be honest, when I first saw the result I
  53. 1:45thought it would be something incredible
  54. 1:46but keep on watching to see how it turns
  55. 1:48out.
  56. 1:50Now speaking of the strategy, let's go
  57. 1:51over what it is. Well it's an opening
  58. 1:54range breakout strategy. Now many of you
  59. 1:55are are probably aware of something
  60. 1:57similar to this idea. Ironically, he
  61. 1:59actually coined most of this phrase
  62. 2:00around opening range breakout from this
  63. 2:02book. Now the whole observation from
  64. 2:03this book was market breath. Overall,
  65. 2:05the market can go through quiet periods
  66. 2:07where the range gets a lot tighter and
  67. 2:09tighter, and then it explodes out in one
  68. 2:11direction. So overall, the idea of
  69. 2:13contraction then expansion. So the first
  70. 2:15main thing we have to do for this
  71. 2:16strategy is wait for a quiet day where
  72. 2:18the market has cooled up tighter than
  73. 2:20usual, and then the next morning, we're
  74. 2:22not going to guess the direction.
  75. 2:23Instead, what we're going to place an
  76. 2:25order above the open and an order below
  77. 2:26the open. Whichever way gets hit first,
  78. 2:29that's the trade we're going to take.
  79. 2:30Overall, you're letting the market tell
  80. 2:31you which way it's breaking towards. But
  81. 2:33then the second question comes in, well,
  82. 2:34is how far do we place this order above
  83. 2:36and below the open? Is it just right at
  84. 2:38the open kind of price? Or are we
  85. 2:39placing it with a decent amount of
  86. 2:40margin? And this is where he uses
  87. 2:42something called the stretch. The
  88. 2:43stretch is a 10-day average of the
  89. 2:46smaller of high minus open and open
  90. 2:48minus low. I.e., on a normal day, how
  91. 2:50far does price usually poke past the
  92. 2:53open before coming back? And then we're
  93. 2:54going to place an order exactly one
  94. 2:56stretch above and below, as kind of
  95. 2:58demonstrated here.
  96. 3:01Now that's the rough idea, but let me
  97. 3:02give you the actual full rules. First,
  98. 3:04we actually have to define what a quiet
  99. 3:06day is. To backtest or quantify any
  100. 3:08strategy, we need to get this into
  101. 3:10criteria we can code or we can at least
  102. 3:12put data through. And he actually gives
  103. 3:13up gives us three setups for this, which
  104. 3:15is amazing. So first, he does NR4, which
  105. 3:18is today's range is the narrowest of the
  106. 3:20last four days, which is very nice and
  107. 3:22simple logic. Then he has NR7, which is
  108. 3:24basically the same idea, but it's the
  109. 3:26last seven days. And then lastly, he has
  110. 3:27inside day. And this is where today's
  111. 3:29whole range fits inside yesterday's. So
  112. 3:32lower and high and higher and low, for
  113. 3:33example. And if any of those three
  114. 3:35qualify, then we are armed for tomorrow
  115. 3:37to then place our orders. We're going to
  116. 3:38be placing a buy stop one stretch above
  117. 3:40the open and a sell stop one stretch
  118. 3:42below. The first one to trigger wins and
  119. 3:44the other side cancels out. Our stop
  120. 3:46loss is incredibly simple as well. It's
  121. 3:47simply the opposite band. So if we go
  122. 3:49long at the top, the price falls all the
  123. 3:50way back to the bottom band and we're
  124. 3:52out. And if we're still in a trade at
  125. 3:54close, we'll exit it at the closing
  126. 3:55bell. Every trade is done by the end of
  127. 3:57the day, nothing is held overnight at
  128. 3:59all. For the risk per trade, this is
  129. 4:00going to be two times the stretch, so
  130. 4:02the top band to the bottom band, and
  131. 4:04every position exits by 4:00 p.m. close.
  132. 4:06Now, one more rule is if neither order
  133. 4:08triggers early in the session, we cancel
  134. 4:10them out. Korbel actually found that the
  135. 4:12edge is strongest right after the open,
  136. 4:14so we give it until around 10:30 in the
  137. 4:16morning, and if nothing is triggered by
  138. 4:17that time, we're going to be walking
  139. 4:18away from the day and no trades are
  140. 4:20going to be placed. To give you an
  141. 4:21example idea of how a trade looks, this
  142. 4:23is one of the trades that I backtested
  143. 4:25using code, and this was actually from
  144. 4:272025. As you can see, this was an 8R
  145. 4:30winner, which was pretty insane for the
  146. 4:31portfolio, and it entered over here and
  147. 4:34exited over here.
  148. 4:36Now, speaking of, how did I actually
  149. 4:38test this strategy so that it can be
  150. 4:40automated or we can just first backtest
  151. 4:42it over years of data without me having
  152. 4:44to manually do this myself. Now, of
  153. 4:46course, I actually did this via code,
  154. 4:47and if you want a general snippet of how
  155. 4:49that code looks like, I've left some
  156. 4:51over here. First part of the code is all
  157. 4:52around that kind of tightness and
  158. 4:54contraction where we're trying to look
  159. 4:55for NR4 and NR7 and inside days so that
  160. 4:58we can arm those particular days and
  161. 5:00then look for the next day if we're
  162. 5:02going to be placing those stretch
  163. 5:03orders. Now, this is also another really
  164. 5:04important thing to note, is we have no
  165. 5:06look-ahead bias. Every one of those
  166. 5:08signals is shifted by one day. The
  167. 5:09stretch, the arming, everything is
  168. 5:11calculated from days that have already
  169. 5:12closed before the day's even opens, and
  170. 5:15this is to avoid us having a look-ahead
  171. 5:17bias in our backtest and getting false
  172. 5:18results. For example, if you compute the
  173. 5:20stretch using today's high and low, then
  174. 5:23trades today, you've used information
  175. 5:25you would have never known at that point
  176. 5:26of time. Third is how the actual order
  177. 5:28fills. A buy stop fills at the worst of
  178. 5:31the band or at the bar's open. So, if
  179. 5:32the price gaps straight through your
  180. 5:34level, you fill at the gap and not the
  181. 5:36level. And that's what normally really
  182. 5:37happens in actual live markets, and
  183. 5:39that's why it's kind of coded in. Now,
  184. 5:40I've also tested two version. He
  185. 5:42actually mentioned both of these in the
  186. 5:44book, which is the original ORB
  187. 5:45strategy, so this is in both directions
  188. 5:47where we're placing both orders every
  189. 5:48single day that is armed, long and
  190. 5:51short. And then there is one where it's
  191. 5:52a trend filtered version. So, add a
  192. 5:5450-day filter and above it we're going
  193. 5:56only long and below it we're only
  194. 5:57looking for shorts. Now, I ran this
  195. 5:59primarily on QQQ, but I also did a quick
  196. 6:02backtest also on spy later in this
  197. 6:04video. All of it was using 1-minute
  198. 6:06data. And just before I show you the
  199. 6:08results, let me just give you a quick
  200. 6:09word from our sponsor because it ties
  201. 6:11directly into how I backtested this
  202. 6:13strategy. Now, to be clear, this is a
  203. 6:15paid sponsorship, but I am free to share
  204. 6:17my own thoughts and opinions on the
  205. 6:18actual software. So, everything I showed
  206. 6:20you today, the code, the shift, the fill
  207. 6:21logic, it took me quite a while to
  208. 6:23write. And I've been coding since I was
  209. 6:25around 12, so more than a decade now.
  210. 6:27But nowadays, we have AI and you could
  211. 6:28do a lot with it. Horizon is a web app
  212. 6:31where you can build and test a strategy
  213. 6:32like this without writing any code at
  214. 6:34all. You can describe the idea and then
  215. 6:36it can instantly backtest it for you
  216. 6:38using actual data. Now, if you try and
  217. 6:39do this through a lot of traditional AI
  218. 6:41platforms, they won't actually have
  219. 6:42solid data and solid backtesting
  220. 6:44techniques. Whereas Horizon actually
  221. 6:46does. It also has a whole execution part
  222. 6:48where you soon you'll be able to connect
  223. 6:49to your brokerage and it can
  224. 6:51automatically automate those strategies
  225. 6:52that you've tested. Let me actually just
  226. 6:54quickly show you a quick example. I
  227. 6:55built a really simple orb strategy using
  228. 6:58Horizon. My prompt was actually, "Make
  229. 7:00me a simple orb strategy on the
  230. 7:0130-minute timeframe on QQQ." It was able
  231. 7:03to build everything for me, give me all
  232. 7:05the results, and then I was able to ask
  233. 7:07a second question to compare it on how
  234. 7:10the stop loss would affect the results.
  235. 7:12As it then showed me for a 2% stop loss
  236. 7:15I got this net profit over here. Whereas
  237. 7:17when I changed it to a 4%, I was
  238. 7:18thinking maybe it would improve
  239. 7:19performance. It did not at all. It was a
  240. 7:21really nice way to see everything in one
  241. 7:23panel. I can also see all the trades
  242. 7:25taking place here. I can also click into
  243. 7:27any of these trades. So, if I just want
  244. 7:28to look at this one for example, I can
  245. 7:30zoom in and see exactly how that trade
  246. 7:31is placed. It also has more information
  247. 7:33on performance broken down by drawdown
  248. 7:35and rolling sharp. Ultimately, the idea
  249. 7:36is really simple. All you have to do is
  250. 7:38go to horizon.trade, type into a prompt
  251. 7:40that you want to get tested, and then it
  252. 7:42can automatically backtest it for you.
  253. 7:44If we actually have a look, I can click
  254. 7:45my strategies, I can see everything I've
  255. 7:47tested before in a really nice
  256. 7:48interface. Soon you'll also be able to
  257. 7:50connect brokers, which you'll be able to
  258. 7:51automate those strategies really easily
  259. 7:53for you. Now, just as a reminder,
  260. 7:54Horizon is a software tool for strategy
  261. 7:57testing and execution. It does not
  262. 7:58provide any financial advice or
  263. 8:00investment advice. Trading always
  264. 8:01involves substantial risk of loss, and
  265. 8:03backtesting is simply a tool for
  266. 8:05evaluating historical performance and
  267. 8:06never guarantees future results. Now, if
  268. 8:08you want to try it out, feel free to
  269. 8:10click the link in the description.
  270. 8:12This is being tested on 15 years of
  271. 8:14minute data on QQQ. Every single arm
  272. 8:17day, both orders are placed and exits at
  273. 8:19the close. Here, we can see the equity
  274. 8:21curve. On first glance, this looks
  275. 8:23incredibly impressive. The green line
  276. 8:24over here is the actual strategy, and
  277. 8:26yellow is just a simple buy and hold.
  278. 8:27And as we can see, it's really not even
  279. 8:29close. There's a wide margin where this
  280. 8:31strategy is really outperforming.
  281. 8:32Overall, it did around 1,300% and it had
  282. 8:35a 19% CAGR. It also, most importantly,
  283. 8:37had a very low correlation to spy, which
  284. 8:40means it can be really useful when
  285. 8:41adding it into a portfolio of
  286. 8:43algorithmic strategies. It did have
  287. 8:44quite a steep drawdown of 30%, but we
  288. 8:47are getting quite an above average CAGR
  289. 8:49of 19%. We can also see how those annual
  290. 8:51returns look like over all those years.
  291. 8:53We can see in 2016, it was up around
  292. 8:5567%, and in 2018, it had one of its best
  293. 8:58years, being up 97% in a single year.
  294. 9:02And Korbel was definitely right about
  295. 9:03the edge being strongest right after the
  296. 9:05open. The data from most recent years,
  297. 9:07as we can see from my backtest, was that
  298. 9:08a lot of returns were coming from the
  299. 9:10first 15 minutes or from trades being
  300. 9:12executed at 10:15 to 10:30. It's quite
  301. 9:14impressive how his observation has held
  302. 9:15up even from 1990. So, at this point,
  303. 9:18I'm thinking, well, I've got a
  304. 9:1935-year-old strategy from a
  305. 9:20thousand-dollar book and it's crushing
  306. 9:22the market with almost zero correlation.
  307. 9:24Case closed, let's just run this live
  308. 9:26now, and I never have to worry about
  309. 9:27money. But, unfortunately, there's one
  310. 9:29thing I haven't added yet, and that is
  311. 9:31commissions and slippage. In the real
  312. 9:33world, when you trade, you might get
  313. 9:34away with some brokers not charging you
  314. 9:35commission, but you will always suffer
  315. 9:37some kind of slippage. And slippage can
  316. 9:39be a really sneaky one. When you send a
  317. 9:41stop order to buy, you don't get filled
  318. 9:43at your exact price. By the time it
  319. 9:44executes, the market has usually moved a
  320. 9:46little bit against you or in your favor.
  321. 9:48For example, maybe you wanted 418, but
  322. 9:50you actually got 418.10. That gap is
  323. 9:53slippage. And on any order that you're
  324. 9:54placing like a market order, for
  325. 9:56example, you're going to get some of
  326. 9:57that slippage. Now, you could have
  327. 9:59course use limit orders, but then you
  328. 10:01have a whole liquidity problem of if you
  329. 10:03even get filled at that particular
  330. 10:04price. So, here's how I modeled it. I
  331. 10:06added commissions and slippage. For
  332. 10:08commissions, I just added one basis
  333. 10:09point, and for slippage, I added two
  334. 10:12basis points on every single fill. Now,
  335. 10:14I did have a percentage of these that
  336. 10:16were adverse fills, and some of them
  337. 10:17were not adverse fills to at least be
  338. 10:19fair. Now, this might be lethal for this
  339. 10:21particular strategy. The reason being is
  340. 10:23one, it trades a lot. It's got about a
  341. 10:25thousand trades over that time, and
  342. 10:27that's going to be a lot of slippage and
  343. 10:28commissions added on top. Second, the
  344. 10:30edge isn't actually that big. On
  345. 10:32average, per trade, we're only making
  346. 10:34about 0.13 R. When that edge is so
  347. 10:36small, when you add commissions and
  348. 10:38slippage, it can get easily eaten away
  349. 10:40as demonstrated here. Now, modeling
  350. 10:41costs is actually one of the first
  351. 10:43things I try and teach in the backtest
  352. 10:44bootcamp because it's the single most
  353. 10:46common thing a winning backtest can fool
  354. 10:48you on into thinking that this strategy
  355. 10:50is going to be really profitable when
  356. 10:51you take it live. Now, if you want to
  357. 10:53properly backtest your strategies, feel
  358. 10:54free to click the link in the
  359. 10:55description to check it out.
  360. 10:58So, let's actually see the real results.
  361. 11:00When I add commissions and slippage,
  362. 11:02sadly, while the equity curve isn't
  363. 11:04terrible, it definitely doesn't beat spy
  364. 11:06anymore over that time period. The sharp
  365. 11:07has also halved, and the drawdown gets a
  366. 11:09lot deeper to about 45%. You can also
  367. 11:12see how it affects the holes entries at
  368. 11:14different times where in some segments
  369. 11:15actually just become straight
  370. 11:16unprofitable. Additionally, it does kind
  371. 11:18of get worse. I tested this on spy, and
  372. 11:20on spy, this strategy just completely
  373. 11:22sucks. Overall, the lesson from this is
  374. 11:24to test things properly. Always have
  375. 11:26costs and slippage, and make sure to do
  376. 11:28multiple different checks like I did
  377. 11:30here of correlation, and you could do
  378. 11:32further things like in sample and out of
  379. 11:33sample and walk forward optimization.
  380. 11:35Additionally, the idea doesn't seem that
  381. 11:37bad. While it may not be performing very
  382. 11:39well on QQQ and spy, this could be
  383. 11:41something to test in crypto or other
  384. 11:43more inefficient markets that may still
  385. 11:44actually have that edge. And if this is
  386. 11:46the kind of thing you want to get good
  387. 11:47at building systematic strategies like
  388. 11:49this one and testing them honestly and
  389. 11:51then automating them on a machine so
  390. 11:53that it runs completely without you,
  391. 11:55that's exactly what we do inside the
  392. 11:56crypto momentum group. It's a community
  393. 11:58of people doing this properly with the
  394. 12:00code, the templates and the guidance to
  395. 12:02go from an idea to running something
  396. 12:03live. Link in the description if that
  397. 12:05sounds like your thing. Well, I hope
  398. 12:06this video was helpful and there'll be
  399. 12:08many more to come.

About this transcript

This page contains the full transcript of I Tested the Strategy From a $1,000 Trading Book by Unbiased Trading, generated from the public captions YouTube serves with the video. The transcript has 2,842 words across 399 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.