Hi GAT I have read your book, (some of) your blog plus this thread - you have written a lot of very interesting material. I am interested to understand more about your perspective on the use of stops. I recollect that you are ambivalent towards using stops, and as far as I can make out, you do not use them. Nearly everything else I have read views the use of stops as virtually mandatory. Fundamentally why do you not care? is it because you trade across a very diversified portfolio of futures (40) so if one goes very South very quickly, damage to your portfolio will be limited? Is it because you stay away from low volatility instruments, and think the "amount your instruments can go South by" is therefore limited? You describe your system as relatively slow, so I am assuming even if one of your chosen instruments had a CHF-like event, then your system would still not adjust very quickly. Finally - if you were to introduce stops to your trading as a safety mechanism, how would you go about that? Thanks for your thoughts.
" I recollect that you are ambivalent towards using stops, and as far as I can make out, you do not use them." Not true. There are two ways I like to trade - with explicit stops If you (re-) read chapter 13 you'll see a description of a system using stops. Basically you have discrete positions, and you set trailing stops. I explain how to calibrate the stops - with implicit stops In my own trading, and in chapter 15, I use implicit stops. So I have a contionous forecast rather than discrete positions - stops don't make sense. But the forecast has a big pile of trend following in it. This means that if the price moves against me, I'll be cutting my position as the forecast fades to zero. Its just too ways of thinking about risk. In the first way you think about it on a position by position basis. In the second way you're thinking about your daily portfolio risk (I show how to map between them in chapters 9 and 13). Hope that makes sense GAT
Thanks for your reply - I re-read chapter 13 On a separate topic I am interested in how you chose your approach to implementing your system. You seem to have been truly DIY and built nearly everything yourself. Did you ever look closely at the Ninja Traders and Trade Stations of this world? So much seems to come out of the box with those products. Or did you go DIY because you wanted complete flexibility / wanted to know exactly how everything worked / wanted a fun project etc.
The reasons you give are correct (flexibility, control, fun). Also please bear in mind where I've come from; when I came to do this project I'd been designing and building automated trading systems for nearly a decade (though admittedly I'd never built a complete end to end system, mainly focusing on the backtesting part). But I'd never touched NT or TS, or anything like it (nearly every systematic fund out there prefers to build their own system), so I'd have had a steep learning curve to learn those products, and then I might not be able to do exactly what I wanted. It only took me a few months to implement exactly what I wanted but building it entirely myself (standard python libraries, and swigibpy aside). GAT
Monthly review (last one was Jan 5th) P&L: 18.9%. Total since inception 92.7% Drawdown: 3.5% off new HWM (set yesterday morning) As I've already hinted (with my post about a record day) this has been an absolutely cracking month. In August 2014 I made 11.1%, so this is a record. One of the things about fully automated trading is you don't neccessarily realise what the heck is going on (actually in August 2014 I went on holiday for 2 weeks... so I really didn't know what was going on). I'd assumed that I'd mainly benefited from the continued sell off in Crude (plus some Gas). In fact when I checked out my p&l by far the biggest gain was in Eurodollars which has done something like 70 ticks in a month. That's a lot. It's a move that had completely passed me by, since the media was focusing so much on Crude.... Reports: P&L Gainers: Eurodollar: 11K OAT: 5.2K Crude: 4.7K Gas: 3.9K GBP: 3.7K MXP: 3.2K Losers: BTP: -2.2K PLAT: -2.6K Soy: -2.6K Corn: -3.5K Positions Code: code contractid positions Lock WrongContract InFwdNotRoll 13 BOBL 201603 3 False False False 16 BTP 201603 3 False False False 22 BUND 201603 1 False False False 20 COPPER 201603 -2 False False False 1 CORN 201612 -6 False False False 10 CRUDE_W 201612 -2 False False False 6 EDOLLAR 201906 8 False False False 11 EDOLLAR 201903 6 False False False 3 EUROSTX 201603 -13 False False False (Hedge) 0 GAS_US 201604 -3 False False False 12 KR10 201603 3 False False False 24 KR3 201603 8 False False False 17 LEANHOG 201606 1 False False False 21 LIVECOW 201610 -1 False False False 2 MXP 201603 -3 False False False 14 OAT 201603 3 False False False 4 PALLAD 201603 -1 False False False 8 PLAT 201604 -1 False False False 23 SOYBEAN 201611 -1 False False False 19 US10 201603 1 False False False 18 US2 201603 3 False False False 5 US5 201603 2 False False False 7 V2X 201604 1 False False False 15 V2X 201603 3 False False False 9 WHEAT 201612 -5 False False False Risk Code: code multisignal expected_annual_risk expected_annual_risk_per_contract position expected_annual_risk_rounded_pos Longs 1 LEANHOG 7.2 4989 2712 1 2712 3 SOYBEAN -4.6 3205 3613 -1 3613 13 US2 5.1 3507 1233 3 3699 16 V2X 7.3 5035 996 4 3986 12 US10 6.1 4222 4003 1 4003 15 US5 6.6 4585 2300 2 4600 6 KR3 8.3 5754 682 8 5456 7 BOBL 8.1 5627 1918 3 5753 9 BUND 12.2 8430 6318 1 6318 5 KR10 11.3 7823 2991 3 8974 10 OAT 24.4 16860 5968 3 17903 8 BTP 27.1 18768 7192 3 21575 36 EDOLLAR 27.5 19036 1350 14 18907 Shorts: 2 LIVECOW -8.5 5866 5093 -1 5093 29 NZD -4.0 2791 7054 -1 7054 33 PLAT -7.0 4848 8574 -1 8574 28 MXP -11.0 7586 2983 -3 8950 0 CORN -15.4 10650 1700 -6 10200 32 PALLAD -23.2 16072 11543 -1 11543 30 COPPER -15.7 10840 7462 -2 14924 4 WHEAT -22.6 15623 3002 -5 15008 35 GAS_US -34.7 24051 7118 -3 21355 34 CRUDE_W -35.5 24558 12978 -2 25956 Trades Code: code contractid filled_datetime filledtrade filledprice 8209 AUD 201603 2016-01-07 09:49:12 1 0.700300 8245 AUD 201603 2016-01-12 05:25:35 -1 0.695600 8341 AUD 201603 2016-01-21 17:29:43 1 0.698000 8419 AUD 201603 2016-01-28 09:54:47 1 0.707500 8221 BOBL 201603 2016-01-08 07:41:12 1 131.200000 8416 BOBL 201603 2016-01-28 07:45:38 1 132.060000 8500 BOBL 201603 2016-02-04 07:42:11 1 132.530000 8242 BTP 201603 2016-01-11 12:49:06 -1 138.250000 8335 BTP 201603 2016-01-20 12:05:13 -1 137.380000 8392 BTP 201603 2016-01-26 08:34:18 1 138.540000 8428 BTP 201603 2016-01-28 13:07:06 1 139.160000 8203 BUND 201603 2016-01-07 09:46:09 1 159.980000 8248 BUND 201603 2016-01-12 08:36:57 -1 158.870000 8278 BUND 201603 2016-01-13 12:42:23 1 159.760000 8233 CAC 201601 2016-01-11 10:18:23 1 4350.000000 8236 CAC 201602 2016-01-11 10:18:23 -1 4342.500000 8371 CAC 201602 2016-01-22 15:38:46 1 4356.500000 8281 COPPER 201603 2016-01-13 19:31:57 -1 1.955500 8320 COPPER 201603 2016-01-19 11:39:37 1 1.998500 8329 CORN 201612 2016-01-19 14:30:00 1 388.750000 8359 CORN 201612 2016-01-22 14:53:07 1 391.750000 8323 CRUDE_W 201612 2016-01-19 11:45:11 1 36.900000 8227 EDOLLAR 201906 2016-01-08 15:39:48 1 98.010000 8317 EDOLLAR 201906 2016-01-18 14:38:53 1 98.215000 8368 EDOLLAR 201903 2016-01-22 15:26:29 -1 98.225000 8389 EDOLLAR 201906 2016-01-25 17:27:12 1 98.185000 8404 EDOLLAR 201906 2016-01-27 12:47:28 1 98.195000 8425 EDOLLAR 201906 2016-01-28 13:03:50 1 98.210000 8449 EDOLLAR 201906 2016-01-29 13:57:40 1 98.285000 8218 EUR 201603 2016-01-08 02:21:05 1 1.089700 8377 EUR 201603 2016-01-25 02:13:26 -1 1.081500 8407 EUR 201603 2016-01-27 13:57:48 1 1.090750 8239 GAS_US 201603 2016-01-11 12:15:17 1 2.442000 8275 GAS_US 201604 2016-01-13 12:34:17 -1 2.355000 8332 GAS_US 201604 2016-01-19 16:21:45 -1 2.186000 8383 GAS_US 201603 2016-01-25 12:08:51 1 2.147000 8386 GAS_US 201604 2016-01-25 12:08:51 -1 2.225000 8212 GBP 201603 2016-01-07 09:50:32 -1 1.458100 8344 GBP 201603 2016-01-22 06:54:51 1 1.423700 8422 GBP 201603 2016-01-28 10:40:22 1 1.434000 8479 GBP 201603 2016-02-02 02:10:42 1 1.443200 8497 GBP 201603 2016-02-04 02:30:03 1 1.458300 8434 JPY 201603 2016-01-29 03:34:55 -1 0.008407 8494 JPY 201603 2016-02-03 19:08:07 1 0.008535 8374 KOSPI 201603 2016-01-25 02:08:11 1 231.300000 8488 KR10 201603 2016-02-02 04:25:27 1 127.990000 8413 KR3 201603 2016-01-28 02:27:06 1 109.750000 8476 KR3 201603 2016-02-01 04:36:59 -1 110.080000 8410 LEANHOG 201606 2016-01-27 14:09:27 1 79.900000 8215 LIVECOW 201610 2016-01-07 15:35:23 1 124.225000 8347 MXP 201603 2016-01-22 10:00:56 1 0.053760 8260 NASDAQ 201603 2016-01-12 14:04:03 -1 4313.250000 8296 NASDAQ 201603 2016-01-15 14:21:48 1 4131.750000 8287 NZD 201603 2016-01-15 02:40:11 -1 0.642500 8506 NZD 201603 2016-02-05 05:54:46 1 0.667100 8509 NZD 201603 2016-02-05 05:56:51 -1 0.666900 8206 OAT 201603 2016-01-07 09:46:34 1 151.600000 8257 OAT 201603 2016-01-12 10:39:16 -1 150.430000 8272 OAT 201603 2016-01-13 10:37:48 1 151.130000 8395 OAT 201603 2016-01-27 07:37:36 1 153.300000 8398 PALLAD 201603 2016-01-27 12:28:11 -1 494.700000 8503 PALLAD 201603 2016-02-04 18:10:04 1 517.150000 8290 PLAT 201604 2016-01-15 12:51:06 -1 830.700000 8401 PLAT 201604 2016-01-27 12:31:07 1 874.700000 8269 SOYBEAN 201611 2016-01-12 17:26:26 1 889.000000 8284 SOYBEAN 201611 2016-01-14 14:56:58 1 886.250000 8326 SOYBEAN 201611 2016-01-19 11:53:10 1 889.250000 8350 SOYBEAN 201611 2016-01-22 12:22:46 1 890.250000 8491 SOYBEAN 201611 2016-02-02 17:19:50 1 897.750000 8338 US10 201603 2016-01-20 13:25:52 1 128.859375 8293 US2 201603 2016-01-15 14:13:38 -1 109.109375 8452 US2 201603 2016-01-29 14:12:50 1 109.296875 8224 US5 201603 2016-01-08 14:13:08 1 119.132812 8431 US5 201603 2016-01-28 14:07:25 1 120.265625 8230 V2X 201603 2016-01-11 08:10:21 1 26.150000 8299 V2X 201603 2016-01-18 09:35:28 1 27.700000 8380 V2X 201603 2016-01-25 09:02:50 1 27.050000 8437 V2X 201604 2016-01-29 08:05:53 1 26.900000 8254 VIX 201602 2016-01-12 10:07:01 1 21.650000 8266 WHEAT 201612 2016-01-12 17:24:36 1 513.000000 8356 WHEAT 201612 2016-01-22 14:31:16 1 510.250000 8446 WHEAT 201612 2016-01-29 13:14:55 -1 506.500000 Expected slippage £417, actual £86 GAT
Your actual slippage seems to be a lot better than your expected, is this true? If it is true, is there some inherent conservatism in your algo that may cause you to miss trades?
Expectation is bid-ask. So if my execution algo is any good I should do better than that on average. I don't yet have any stats on how well my algo is expected to do. Although it's theoretically possible to miss a trade I don't think its ever happened. GAT
I'll add to this: it also seems your performance overall is better than what you'd expected. So really, is your conservatism in testing causing you to miss trades? There's a central question here that I'm doing a poor job of articulating.
Hi - I have a question on the cut in your position in this scenario. During the first drop of 300 points, you state you system will cut your position massively: how quickly will it achieve this? I assume the EWMAC rules of 30, 60, 120 days that you run are the ones which will respond to a move like this: do they really move quickly enough to cut your position quickly? I have tried poking around with your EMWAC trading rule example spreadsheet in your book resources, e.g. dropping the price at the tail end from 70s to 50s, the forecast changes but takes days to reach a hard negative -20. What am I missing.
I said I cut my position quickly. I didn't say I'd go massively short quickly. Most of the position cutting would come from the spike in volatility by the way. Also to someone whose average holding period is a month a few days is quickly. GAT