├── site ├── .prettierrc ├── .babelrc ├── src │ ├── styles │ │ ├── index.scss │ │ └── main.scss │ ├── games │ │ ├── Craps.js │ │ ├── CardSum.js │ │ └── FindMarket.js │ ├── index.js │ └── App.js ├── webpack.dev.js ├── .eslintrc ├── public │ └── index.html ├── webpack.prod.js ├── LICENSE ├── webpack.common.js ├── package.json └── .gitignore ├── resources ├── articles.md ├── links.md ├── interview.md └── firms.md ├── chapters ├── general.md ├── games.md ├── brain.md ├── prob.md ├── market.md └── math.md ├── appendix └── sequences.md └── README.md /site/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false 4 | } 5 | -------------------------------------------------------------------------------- /site/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env", 4 | "@babel/preset-react" 5 | ] 6 | } -------------------------------------------------------------------------------- /site/src/styles/index.scss: -------------------------------------------------------------------------------- 1 | html, body { 2 | margin: 0; 3 | font-family: Arial, Helvetica, sans-serif; 4 | } -------------------------------------------------------------------------------- /site/src/styles/main.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Compiles all the styles together 3 | */ 4 | 5 | @import './index.scss'; -------------------------------------------------------------------------------- /site/src/games/Craps.js: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | 3 | export default function Craps() { 4 | return
Play craps...fast paced!
; 5 | } 6 | -------------------------------------------------------------------------------- /site/src/games/CardSum.js: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | 3 | export default function CardSum() { 4 | return
Gamble on sums of cards.
; 5 | } 6 | -------------------------------------------------------------------------------- /site/webpack.dev.js: -------------------------------------------------------------------------------- 1 | const { merge } = require("webpack-merge"); 2 | const common = require("./webpack.common.js"); 3 | 4 | module.exports = merge(common, { 5 | mode: "development", 6 | devtool: "inline-source-map", 7 | devServer: { 8 | hot: true, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /site/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "plugins": ["react", "jest", "prettier"], 4 | "extends": ["airbnb", "plugin:prettier/recommended", "prettier/react"], 5 | "globals": { 6 | "React": true, 7 | "document": true, 8 | "window": true 9 | }, 10 | "env": { 11 | "es6": true, 12 | "jest": true, 13 | "browser": true, 14 | "node": true 15 | } 16 | } -------------------------------------------------------------------------------- /site/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Trading Interview Games 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /site/webpack.prod.js: -------------------------------------------------------------------------------- 1 | const { merge } = require("webpack-merge"); 2 | const common = require("./webpack.common.js"); 3 | const TerserPlugin = require("terser-webpack-plugin"); 4 | 5 | module.exports = merge(common, { 6 | mode: "production", 7 | devtool: "source-map", 8 | output: { 9 | publicPath: "/Trading-Interview-Questions/", 10 | }, 11 | optimization: { 12 | minimize: true, 13 | minimizer: [ 14 | new TerserPlugin({ 15 | terserOptions: { 16 | sourceMap: true, 17 | compress: { 18 | drop_console: true, 19 | }, 20 | }, 21 | }), 22 | ], 23 | }, 24 | }); 25 | -------------------------------------------------------------------------------- /resources/articles.md: -------------------------------------------------------------------------------- 1 | # Articles I Like 2 | 3 | These articles are meant to give an idea of what it's like to work in quant, as well as some fun ones from legends in the field. 4 | 5 | - [Ed Thorp: Having the Edge on the Market](https://web.archive.org/web/20051031090504/http://webhome.idirect.com/~blakjack/edthorp.htm): Ed Thorp is an absolute god, this is very worth reading 6 | - [_Hedge Fund Market Wizards_ by Jack D. Schwager](https://amzn.to/3ydYe5X): Great book about interviews with hedge fund managers 7 | - [What are the different firms out there? by WallStreetQuants](https://www.thewallstreetquants.com/cone1-firm-list): Good overview of the type of firms and what they do -------------------------------------------------------------------------------- /site/src/index.js: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import * as ReactDOM from "react-dom"; 3 | import App from "./App"; 4 | import { BrowserRouter, Routes, Route } from "react-router-dom"; 5 | import CardSum from "./games/CardSum"; 6 | import Craps from "./games/Craps"; 7 | import FindMarket from "./games/FindMarket"; 8 | import "./styles/main.scss"; 9 | 10 | let rootElement = document.getElementById("root"); 11 | ReactDOM.render( 12 | 19 | 20 | } /> 21 | } /> 22 | } /> 23 | } /> 24 | 25 | , 26 | rootElement 27 | ); 28 | -------------------------------------------------------------------------------- /chapters/general.md: -------------------------------------------------------------------------------- 1 | # Not so Technical 2 | 3 | Trading is a very competitive and mentally/emotionally straining environment. 4 | During the behavioral portion of interviews, firms really want to get an impression 5 | of your personality, and see if you can survive in the boxing arena that is Wall Street. 6 | 7 | ## Questions 8 | 9 | 1. If you had $10 million, and didn't have to pay any of it back, but you were only allowed to keep any profits (i.e. if you end up with $10.4 million, you get to take home $400k, but if you end up with $5 mil, you take home nothing), what would you do if you had: 10 | - 3 days 11 | - 3 years 12 | - Also explain your reasoning for each scenario 13 | 14 | 2. If you have good grades, the firm will likely ask you why you do. Similarly, they will ask you what your motivations are in life. 15 | 16 | 3. There are a lot of smart people at hedge funds; think IMO medalists, research competition winners, mega-IQ brain people... What makes you stand out as someone that the firm wants to hire? 17 | 18 | 4. If you had a lot of money, what would you do with it? 19 | -------------------------------------------------------------------------------- /site/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Viridity Capital 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /site/src/App.js: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { Link } from "react-router-dom"; 3 | 4 | export default function App() { 5 | return ( 6 |
7 |

Trading Games

8 |
9 |
10 | 11 | Find the Market 12 | 13 |
14 | We'll give you a big range, but using bid-ask spreads, you have to 15 | find the market as accurately as possible, while avoiding losses. 16 |
17 |
18 |
19 | 20 | Sum of Cards 21 | 22 |
23 | A game where you make a market on what you think the sum of cards in 24 | play is. The catch is -- you don't see all the cards! 25 |
26 |
27 |
28 | 29 | Craps with bonus 30 | 31 |
32 | Play this classic casino game, except with a bonus stage! 33 |
34 |
35 |
36 |
37 | ); 38 | } 39 | -------------------------------------------------------------------------------- /resources/links.md: -------------------------------------------------------------------------------- 1 | # Some Useful Links 2 | 3 | - Practicing your arithmetic! . 4 | - Sequences: 5 | - An overview of what to do: 6 | - [Guide to Competitive Programming: Learning and Improving Algorithms Through Contests](https://amzn.to/3N57wVO): A very good overview of algorithms that are crucial for solving problems fast and efficiently. If you're interviewing for Quant or Backend roles, this book is a must. If you're younger like a high schooler, this book is gold for studying for USACO or ICPC and other contests, but can be hard without having being exposed to some of the CS contests. 7 | - [System Design Interview – An Insider's Guide](https://amzn.to/3OrkhuZ): A great overview about how to solve system design problems for IC4+ roles in the SWE industry. These are problems that involve creating higher-level designs for large systems such as products like Google Drive, YouTube, tinyurl, etc. 8 | - [The Art and Craft of Problem Solving](https://amzn.to/3bcaGtw): Focused on competition math, but contains lots of good problem solving techniques for you to keep in mind when you get stuck so you can unblock yourself. 9 | - [Quant Questions](https://quantquestions.io/): This site has a large set of problems that you can attempt and keep track of progress (I am not sponsored by them) -------------------------------------------------------------------------------- /site/webpack.common.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const HtmlWebpackPlugin = require("html-webpack-plugin"); 3 | const { CleanWebpackPlugin } = require("clean-webpack-plugin"); 4 | 5 | module.exports = { 6 | entry: "./src/index.js", 7 | plugins: [ 8 | new CleanWebpackPlugin(), 9 | new HtmlWebpackPlugin({ 10 | template: "./public/index.html", 11 | }), 12 | ], 13 | output: { 14 | filename: "bundle.js", 15 | path: path.resolve(__dirname, "build"), 16 | }, 17 | resolve: { 18 | extensions: ["*", ".js", ".jsx"], 19 | }, 20 | module: { 21 | rules: [ 22 | { 23 | test: /\.(js|jsx)$/, 24 | exclude: /node_modules/, 25 | use: ["babel-loader"], 26 | }, 27 | { 28 | test: /\.s[ac]ss$/i, 29 | use: [ 30 | // Creates `style` nodes from JS strings 31 | "style-loader", 32 | // Translates CSS into CommonJS 33 | "css-loader", 34 | // Compiles Sass to CSS 35 | "sass-loader", 36 | ], 37 | }, 38 | { 39 | test: /\.(png|jpg|gif)$/, 40 | use: ["file-loader"], 41 | }, 42 | { 43 | test: /\.svg$/, 44 | use: [ 45 | { 46 | loader: "babel-loader", 47 | }, 48 | { 49 | loader: "react-svg-loader", 50 | options: { 51 | jsx: true, // true outputs JSX tags 52 | }, 53 | }, 54 | ], 55 | }, 56 | { 57 | test: /\.(woff|woff2|eot|ttf|otf)$/, 58 | use: ["file-loader"], 59 | }, 60 | ], 61 | }, 62 | }; 63 | -------------------------------------------------------------------------------- /appendix/sequences.md: -------------------------------------------------------------------------------- 1 | # Sequences 2 | 3 | A collection of sequences and some tips on how to identify them. 4 | 5 | Below we go through some "learnable" sequences. If you just want some trivia ones for fun, 6 | check out [The Online Encyclopedia of Integer Sequencess](https://oeis.org/). 7 | 8 | ## Techniques 9 | 10 | A common "harder" sequence is something like 11 | 12 | - 12, 29, 63, 131 (x_n = 2x_{n-1}+5) 13 | - 75, 41, 27, 20 (subtract by 34/2^n, next number should be 16.5) 14 | 15 | Try to look out for: 16 | 17 | - Do the numbers look special themselves? (powers, squares) 18 | - Differences between numbers 19 | - Dependence of future numbers on numbers prior 20 | - The "length" of the repeating subsequences 21 | - The general trend of the size of numbers 22 | 23 | ## Number Sequences 24 | 25 | - 1, 1, 2, 3, 5, 8, 13, (Fibonacci) 26 | - 1, 2, 4, 8, 16 (2^n) 27 | - 1, 6, 21, 66 (3x_{n-1}+3) 28 | 29 | ## Letter Sequences 30 | 31 | These can be a little more challenging since they rely on your language skills a bit. 32 | Memorizing some of these sequences should help you a long way though. 33 | 34 | Also a lot of tests try to make these sequences harder by starting in the middle of them. 35 | So for example, if we had the months, then they would start like `J, J, A, S, O` so it's 36 | less obvious. 37 | 38 | - A, C, E, G (skip a letter in the alphabet) 39 | - P, Q, S, T, V (two consecutive letters, then skip one) 40 | - F, S, T, F, F, S, S, E, N, T (1st, 2nd, 3rd, ...) 41 | - O, T, T, F, F, S, S, E (one, two, three, four, ...) 42 | - M, V, E, M, J, S, U, N, P (Mercury, Venus, Earth, Mars, ...) 43 | - M, T, W, T, F, S, S (Monday, Tuesday, Wednesday...) 44 | - J, F, M, A, M, J (January, February, March, April) -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "trading_interview_questions", 3 | "version": "1.0.0", 4 | "description": "Interactive trading interview question games", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "start": "webpack serve --open --config webpack.dev.js", 8 | "deploy": "npm run build && gh-pages -d build", 9 | "build": "webpack --config webpack.prod.js", 10 | "lint": "eslint --ext .js src/", 11 | "lint-fix": "eslint --fix --ext .js src/" 12 | }, 13 | "eslintConfig": { 14 | "extends": "react-app" 15 | }, 16 | "browserslist": { 17 | "production": [ 18 | ">0.2%", 19 | "not dead", 20 | "not op_mini all" 21 | ], 22 | "development": [ 23 | "last 1 chrome version", 24 | "last 1 firefox version", 25 | "last 1 safari version" 26 | ] 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "git+https://github.com/mikinty/Trading-Interview-Questions.git" 31 | }, 32 | "author": "mikinty", 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/mikinty/Trading-Interview-Questions/issues" 36 | }, 37 | "homepage": "https://github.com/mikinty/Trading-Interview-Questions#readme", 38 | "devDependencies": { 39 | "@babel/core": "^7.14.0", 40 | "@babel/node": "^7.13.13", 41 | "@babel/preset-env": "^7.14.1", 42 | "@babel/preset-react": "^7.13.13", 43 | "babel-loader": "^8.3.0", 44 | "clean-webpack-plugin": "^4.0.0-alpha.0", 45 | "css-loader": "^5.2.4", 46 | "file-loader": "^6.2.0", 47 | "gh-pages": "^5.0.0", 48 | "html-webpack-plugin": "^5.3.1", 49 | "sass": "^1.52.2", 50 | "sass-loader": "^11.0.1", 51 | "style-loader": "^2.0.0", 52 | "webpack": "^5.76.0", 53 | "webpack-cli": "^4.7.0", 54 | "webpack-dev-server": "^4.2.0" 55 | }, 56 | "dependencies": { 57 | "react": "^17.0.2", 58 | "react-dom": "^17.0.2", 59 | "react-router-dom": "^6.3.0" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Quant Trading Interview Questions 2 | 3 | Trading has always been a reach-goal for a lot of aspiring CS and Math majors in college. 4 | In finance you're always on your feet for what comes next, and you get paid _a lot_. 5 | 6 | Unfortunately, I have not really found any complete tutorials online for how to prepare 7 | for quant trading interviews. My guess is that a lot of people who pass these interviews 8 | already have the sufficient background for the task, and also that if these guides existed, 9 | then people who weren't the super "talented ones" would already be saturating the highly-coveted 10 | trading jobs and -- then trading would no longer be on such a high pedestal. 11 | 12 | But hey, I want more people to have opportunities, so here is my attempt to help you 13 | give some of the biggest trading firms your best bet. 14 | 15 | If I helped you ace your interviews or you wanna help me out, you can [support me here](https://www.buymeacoffee.com/mikinty)! 16 | 17 | ## Table of Contents 18 | 19 | 1. [Math](chapters/math.md) 20 | 2. [Brain Teasers](chapters/brain.md) 21 | 3. [Probability](chapters/prob.md) 22 | 4. [Games and Betting](chapters/games.md) 23 | 5. [Market Theory](chapters/market.md) 24 | 6. [General Questions](chapters/general.md) 25 | 7. [Links and Resources](resources/links.md) 26 | 8. [The Interview Process](resources/interview.md) 27 | 9. [List of Quant Firms](resources/firms.md) 28 | 10. [Some of my Favorite Articles about Quant](resources/articles.md) 29 | 30 | ## Practice Here! 31 | 32 | I've finally made a website with some Quant games for you to practice some market making, gambling and market simulation skills. 33 | 34 | https://mikinty.github.io/Trading-Interview-Questions/ 35 | 36 | NOTE: I know that subdirectory routes don't work yet, this is because I couldn't figure out how to get `HashRouter` to work...more on that soon. 37 | 38 | ## If you decide to trade 39 | 40 | I'm writing a curriculum for learning trading basics, from fundamental analysis to psychology, check it out here: https://github.com/mikinty/Trading-Curriculum 41 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | build/ 3 | 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | 12 | # Diagnostic reports (https://nodejs.org/api/report.html) 13 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | *.pid.lock 20 | 21 | # Directory for instrumented libs generated by jscoverage/JSCover 22 | lib-cov 23 | 24 | # Coverage directory used by tools like istanbul 25 | coverage 26 | *.lcov 27 | 28 | # nyc test coverage 29 | .nyc_output 30 | 31 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 32 | .grunt 33 | 34 | # Bower dependency directory (https://bower.io/) 35 | bower_components 36 | 37 | # node-waf configuration 38 | .lock-wscript 39 | 40 | # Compiled binary addons (https://nodejs.org/api/addons.html) 41 | build/Release 42 | 43 | # Dependency directories 44 | node_modules/ 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Microbundle cache 60 | .rpt2_cache/ 61 | .rts2_cache_cjs/ 62 | .rts2_cache_es/ 63 | .rts2_cache_umd/ 64 | 65 | # Optional REPL history 66 | .node_repl_history 67 | 68 | # Output of 'npm pack' 69 | *.tgz 70 | 71 | # Yarn Integrity file 72 | .yarn-integrity 73 | 74 | # dotenv environment variables file 75 | .env 76 | .env.test 77 | 78 | # parcel-bundler cache (https://parceljs.org/) 79 | .cache 80 | 81 | # Next.js build output 82 | .next 83 | 84 | # Nuxt.js build / generate output 85 | .nuxt 86 | dist 87 | 88 | # Gatsby files 89 | .cache/ 90 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 91 | # https://nextjs.org/blog/next-9-1#public-directory-support 92 | # public 93 | 94 | # vuepress build output 95 | .vuepress/dist 96 | 97 | # Serverless directories 98 | .serverless/ 99 | 100 | # FuseBox cache 101 | .fusebox/ 102 | 103 | # DynamoDB Local files 104 | .dynamodb/ 105 | 106 | # TernJS port file 107 | .tern-port 108 | -------------------------------------------------------------------------------- /resources/interview.md: -------------------------------------------------------------------------------- 1 | # The Interview Process 2 | 3 | The typical interview process will look something like this: 4 | 5 | - __Take-Home Test__: This test is for you to complete on your own, and is to weed out people who don't qualify for the basic skills necessary to be a good trader. The following sections usually appear on these tests: 6 | 7 | - Lots of easy arithmetic problems to be done in a short period of time 8 | - Multiple choice or short answer about slightly harder probability and math questions 9 | - Game betting problem 10 | - Coding exercise 11 | 12 | Some advice for this test. As always, try to do as many problems as possible, as accurately as possible. 13 | But if you notice that you are stuck on a problem, move on. 14 | 15 | - __Phone Interview__: Here, the interviewer gets learn a sense of how you think real time. They will ask you to solve probability and math questions on the spot. Make sure to guide them through your thinking process, but don't waste so much time that you don't have time to figure out the actual answer. 16 | - It's very important on the phone to be very clear about what you mean, and in return, what you're understanding from the interviewer. If you don't understand a question entirely, or the interviewer doesn't understand your answer, you're in big trouble. So take extra precaution in coming up with clear communication over the phone. 17 | 18 | - __Onsite__: If you've made it here, congrats! You have already done a lot, so don't be upset if you don't do well here. The onsite will probably be the most stressful part of the interview process. Here, the firm wants to know if you can think fast, show excellent quant skills, and really perform well under lots of pressure. 19 | - One thing you might notice onsite is they really put you under pressure, whether it's them asking you a ton of questions very fast or asking extremely difficult questions that might be unreasonable to answer in short times. In these circumstances, the number one thing to remember is **stay calm and do not lose your composure.** What they are testing is in real trading hours, you might have some really stressful situations, and they want to see how you would perform under those circumstances. What they want to see is that you can still handle yourself, and you don't need to answer questions 100% properly, you just need to be able to think on your feet and provide reasonable answers that would help a hypothetical trading partner irl. The worst thing you can do is freeze up and stay silent, getting stuck in thought. 20 | -------------------------------------------------------------------------------- /resources/firms.md: -------------------------------------------------------------------------------- 1 | # List of Firms to Apply 2 | 3 | I don't endorse this site directly, but they seem to have a good article on firms and their differences: https://www.thewallstreetquants.com/cone1-firm-list 4 | 5 | - [Citadel](https://www.citadel.com/careers/open-positions/): Very intense work culture, but there are good methodologies to be learned here about trading. 6 | - [Two Sigma](https://www.twosigma.com/careers/): Very tech-friendly these days given how many SWEs they have. Almost like "big-tech" but in trading. 7 | - [Optiver](https://www.optiver.com/working-at-optiver/career-opportunities/): Options house 8 | - [SIG Susquehanna](https://careers.sig.com/): Big options house 9 | - [Akuna](https://akunacapital.com/careers) 10 | - [Virtu](https://www.virtu.com/careers/) 11 | - [Chicago Trading Company](https://www.chicagotrading.com/search#search-results) 12 | - [Jump Trading](https://www.jumptrading.com/careers/) 13 | - [Jane Street](https://www.janestreet.com/join-jane-street/overview/): A top-tier quant firm 14 | - [HRT](https://www.hudsonrivertrading.com/careers/): Well-known for their high-frequency trading 15 | - [PDT Partners](https://pdtpartners.com/careers) 16 | - [Renaissance Technologies](https://www.rentec.com/Careers.action) 17 | - [Headlands](http://www.headlandstech.com/): Academic-driven, very high quality software 18 | - [Old Mission Capital](https://www.oldmissioncapital.com/) 19 | - [Vatic Investments](http://www.vaticinvestments.com/careers/): Top-tier firm well-known for their ML research in trading 20 | - [Tower](https://www.tower-research.com/open-positions) 21 | - [DRW](https://drw.com/work-at-drw/listings) 22 | 23 | ## Market Makers 24 | 25 | Some of the firms above are market makers as well. But putting some here to have some sort of separation. 26 | 27 | - [Citadel Securities](https://www.citadelsecurities.com/careers/open-opportunities/): Yes, Citadel and Securities are different. Citadel Securities is primarily a market-maker. 28 | - [Wincent](https://www.wincent.com/careers): Crypto market-making firm 29 | 30 | ## Headhunters 31 | 32 | If you work in software, you will often be approached by headhunters who work in companies that try to earn money from successful referrals of candidates. 33 | Their "talent search" is pretty much just picking people from FANG and then forcing them down a few pipelines for Quant or SWE in Trading. 34 | There are often unethical practices here where they try to tell you as many questions as they can, based off of previous candidates' experience. 35 | You can argue that even knowing the answer doesn't really guarantee you the job, since you might be asked throw-up questions or unexpected surprises that you can't prepare for, e.g. your working style or thinking process. 36 | I think in general, it's not a terrible way to apply to firms, but it is a bit annoying knowing that someone is getting paid a lot for your referral (and they will bother you _a lot_ if you end up getting an offer. They want that check). 37 | -------------------------------------------------------------------------------- /chapters/games.md: -------------------------------------------------------------------------------- 1 | # How to Not Lose Games 2 | 3 | Trading is really just a game, where your PnL is your score. So naturally, trading firms want to know, how good are you at playing? 4 | Some factors they may observe from you are: 5 | 6 | 1. **Performance**: How well did you do? 7 | 2. **Strategy**: Did you have some sort of technique / plan? 8 | 3. **Evaluation**: Every turn, how were you weighing your potential next options? 9 | 4. **Risk assessment**: Do you have any risks that you need to worry about? 10 | 5. **Competitiveness**: Do you want to win? How much do you want it? 11 | 6. **Behavior**: Some interviewers may literally be shouting at you while you play a game, like a real trading desk scenario. Are you able to keep calm? Are you able to answer questions under pressure? How do you handle stress? 12 | 13 | ## Common Games 14 | 15 | If there is a game at a casino, you should probably generally know how it works. Some of these games are 16 | 17 | - Poker 18 | - Roulette 19 | - Craps 20 | - Blackjack 21 | 22 | The basic idea that these games test is your ability to evaluate your chances at certain stages, how quickly you can evaluate your chances, and also if you can make the right bets at the right times. You will probably get a variation on one of the games above, so if you know how the popular casino games work, you will have less confusion understanding the game they are presenting to you. 23 | 24 | ## Sum of Cards in Play 25 | 26 | The purpose of this game is to estimate the sum of cards in play, and make markets on them. 27 | 28 | In this game, we define card values to be the following: `A=1, 2=2, ..., J=11, Q=12, K=13` 29 | 30 | 1. You and `N-1` other players receive 2 cards from a standard deck of cards 31 | 2. There are 5 cards faced down in the center 32 | 3. In every round, you are allowed to sell or buy contracts on the sum of all cards in play. For example, if you think the sum of cards is around 50, you might buy 45 and sell 55. 33 | - In the first round, no cards are faced up yet, and there is a trading round for contracts 34 | - In the second round, the first face-down card in the middle is shown, and you bet again 35 | - You continue like this until all cards are face-up 36 | 4. At the end, you will have some net number of contracts, and some money. Your total winnings is 37 | 38 | ``` 39 | WINNINGS = CASH + LONG_POSITIONS*CONTRACT_VALUE 40 | ``` 41 | 42 | ### How to Play 43 | 44 | Interviewers are looking for your ability to evaluate what is most probable the EV of sum of cards throughout the game. For starters, an easy way to evaluate the EV of sum of cards is 45 | 46 | ``` 47 | EV = YOUR_HAND + KNOWN_CARDS + ((N-1)*2 + NUM_FACEDOWN)*(SUM_REMAINING)/NUM_UNKNOWN 48 | ``` 49 | 50 | In addition, you should also have some confidence in this measurement. What this translates to in the market making is that if you are more confident in your estimate, you might trade a smaller spread, like `45/55`, and trade a very high volume, so you can make more money. But if you are not as confident, you might do something like `EV-20/EV+20`, and trade a smaller volume. 51 | 52 | They are also looking for how well you can make market orders with the sum of card value contract. In general, if you have more information than others, you should do better in this game. E.g. if you start with pocket Ks, then you know the total sum of cards is high, whereas your opponents probably don't, so you should be aggressively buying people's sell orders if you think they are selling too low. 53 | 54 | ## Other Games 55 | 56 | - [Jane Street has a great example of how an interview might go with a game](https://youtu.be/NT_I1MjckaU) 57 | - [Jane Street's Figgie](https://www.figgie.com/): This is a game you might play during an onsite interview 58 | - Some firms may give you poker situations, e.g. your chip stack, other people's chips, your hand, and cards in play, and ask you how you would play (bet, how much, how to respond to other people's actions) 59 | -------------------------------------------------------------------------------- /chapters/brain.md: -------------------------------------------------------------------------------- 1 | # Not Intuitive 2 | 3 | Brain teasers are meant to confuse and frustrate you. Often, what 4 | interviewers are trying to do is emulate a test of how you think, using the 5 | concept of Type I and II thinking from the book [_Thinking Fast and Slow_](https://amzn.to/3PMXr2e). The 6 | general gist of Type I and II is that Type I is the intuitive thinking 7 | process and is quick, but may lead to mistakes, and Type II thinking is more 8 | thorough, uses logic and math foundations, and gives you more accurate 9 | answers, although they can take longer to formulate. In general, traders like 10 | to see people think in Type II, and to be able to do it quickly. 11 | 12 | A way to prepare for these type of questions is to develop good problem 13 | solving skills. Another way is just to memorize enough and hope that you get 14 | asked one of them. 15 | 16 | ## How to Train Brainteasers 17 | 18 | As with any problem solving skill, doing brain teasers is mostly valuable not so you can memorize the solution, but exercise your brain's ability to reason, think, experiment, and challenge itself with difficult problems. If you really think through problems and give an earnest effort, trying to unblock yourself constantly, you will develop much stronger problem solving skills than someone who just looks up the answer. There are just things that can't be taught when you attempt a problem earnestly. 19 | 20 | ## Questions 21 | 22 | [This website has a great selection of brainteasers](http://puzzles.nigelcoldwell.co.uk/). [Quant Questions also offers a large selection of puzzles](https://quantquestions.io/problems). 23 | 24 | - A rope is tied around the circumference of the Earth very tightly, so that it is tightly taut along 25 | the surface of the Earth. Now suppose that you add 1 feet of length to this rope, so that it is a bit 26 | looser. How high above the surface of the Earth will this new rope be? 27 | 28 | - You have 1000 bottles of water, one of which is poisoned. You have a bunch of lab rats that you can 29 | use to test the water and try to figure out which bottle is poisoned. Unfortunately, since the poison 30 | takes 24 hours to activate, and you must figure out the results in 24 hrs, you must feed all your rats 31 | now, and then wait the next day to see the results. How many rats do you have to use to figure out which 32 | bottle of water is poisoned? 33 | 34 | - You have a bag of 100 strings. You reach in the bag, grab two ends of 35 | strings, and tie them in a loop. You keep on doing this until there are no 36 | ends left. How many loops do you expect to end up with on average? 37 | 38 | - There are 100 prisoners. There are 100 boxes with random numbers from 1-100 in them, one each. Each prisoner has a chance to go in the room and try to find their number. If they do so, they will make it out alive. Otherwise, they are killed on the spot. The prisoners are allowed to plan a strategy before they go in, but surviving prisoners will not be able to tell the other prisoners what they have seen. What is the best strategy for going about saving as many prisoners as possible, and how many prisoners can you save? 39 | 40 | - [Prisoner, Chess and Coins Problem](https://www.cantorsparadise.com/a-fascinating-prisoners-puzzle-be874032f43e) 41 | 42 | - Suppose we have some critter on the number line. It has two starting params, x, which is some integer that represents where the critter starts at time t = 0, and y, which is how far, and in what direction the critter moves each \delta t = 1. So for example, if a critter has x=4, y=-1, the critter will have positions 4, 3, 2, 1, ... The question is, can we devise an algorithm to find where this critter is, eventually? NOTE: you do not know what x and y are, so you don't know where the critter starts, and what direction / amount of movement on each turn. However, y is constant throughout this game, and in every turn, you can check any one square on this integer number line. You want to devise an algorithm that will always terminate. 43 | -------------------------------------------------------------------------------- /chapters/prob.md: -------------------------------------------------------------------------------- 1 | # Probability 2 | 3 | Give some primer on probability, also point to some links to learn about probability. 4 | 5 | ## Counting 6 | 7 | Probability = # things you want / (# things total you are considering) 8 | 9 | If you remember this, it makes probability essentially multiple countaing problems. So many people get too caught up with probability being a bunch of fractions and such. Snap out of that mindset and just think of it as 2 counting problems: 1) what you want 2) set of everything you care about. 10 | 11 | ## Basics 12 | 13 | The most basic questions come from dice and cards, since they are relatively familiar to the general public. 14 | 15 | Know that a deck of cards has 52 cards, 4 suits with 13 each, from A, 2, 3, ..., 10, J, Q, K. A dice has 6 sides, 1-6. 16 | 17 | There are lots of games that use cards and dice to ask probabilities, for example 18 | 19 | > If I roll 2 dice, what is the probability that their sum is prime? 20 | 21 | > If I draw 5 random cards from a standard deck, what is the probability that I draw a full house combination? 22 | 23 | ## Expected Value 24 | 25 | Also called "EV" (pronounced Eevee like the Pokemon, also a word used as a meme among traders), expected value has a variety of meanings, but in general it has to do with a weighted probability sum of something. The formula for EV is 26 | 27 | > E[event] = P[event_1] * event_1 + P[event_2] * event_2 + ... = \sum_{e \in possible events} P[e] * e 28 | 29 | The reason people care about EV is that whenever you play a game, every outcome has some sort of chance attached to it, and some sort of reward. This number is useful for gauging the utility or how valuable certain courses of action are. For example, lottery tickets are known to have negative EV, because if you calculate the chances of winning and multiply them with profits, the expected profits will be less than how much it costs to buy the lotto. Therefore, this negative EV gives you an idea of the magnitude of how bad lotto tickets are. 30 | 31 | In the trading world, a trade has some sort of EV. In general, traders want to steer towards positive EV actions and avoid negative EV actions. This way, over time, the trader will make money. Firms want their candidates to be able to accurately and quickly assess EV so they have a good chance of making the right choices on the job. 32 | 33 | EV naturally extends to betting, where you can imagine you calculate odds for events in a game, and then place bets accordingly. [The Kelly Criterion](https://en.wikipedia.org/wiki/Kelly_criterion) is an important concept to study regarding how much to bet if you know what your odds are. 34 | 35 | ### Examples 36 | 37 | - A classic question would be something like "Someone offers to pay you the product of a dice roll and the number value of a card drawn from a standard deck. How much should this person be charging for this game at least?" 38 | 39 | ## Recursion 40 | 41 | If you've never seen these problems, they seem almost impossible, because 42 | they require you to do an infinite amount of calculation. 43 | 44 | The classic question is with the expected number flips it takes to stop playing a game where you keep flipping a fair coin if you get tails, but stop with heads. This question is pretty simple, because you can visualize as an infinite sum as 45 | 46 | > \sum_{i = 0}^\infty i*(1/2)^i 47 | 48 | This sum isn't too bad to solve. There are a lot of recursive sum tricks. In this case, we can take S as the sum, multiply it by 1/2 to "shift" it, and then subtract itself to end up with 49 | 50 | > S - 1/2 * S = \sum_{i=0}^\infty i*(1/2)^i - \sum_{i=1}^\infty (i-1)*(1/2)^(i) = \sum_{i=0}^\infty (1/2)^i = 2 51 | 52 | The next set of questions involve more recursive thinking. One such question is 53 | 54 | > You and a friend are playing tennis, and are currently tied. You have a 1/3 chance of winning a point, and your friend has 2/3 chance of winning a point. It takes two points in a row to win the game. What is the probability that you win the game? As a twist, you can also add the condition that whenever someone has an advantage point, the person with the advantage point has a 2/3 chance, while the other person has 1/3. 55 | 56 | You need to set up recursive equations in this case and solve for variables. 57 | -------------------------------------------------------------------------------- /site/src/games/FindMarket.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from "react"; 2 | 3 | const INITIAL_CASH = 50000; 4 | const MAX_ROUNDS = 6; 5 | 6 | export default function FindMarket() { 7 | const [gameNumber, setGameNumber] = useState(0); 8 | const [round, setRound] = useState(1); 9 | const [cash, setCash] = useState(INITIAL_CASH); 10 | const [stock, setStock] = useState(0); 11 | const [bid, setBid] = useState(null); 12 | const [ask, setAsk] = useState(null); 13 | const [sizeAsk, setSizeAsk] = useState(null); 14 | const [sizeBid, setSizeBid] = useState(null); 15 | const [message, setMessage] = useState(""); 16 | const [actions, setActions] = useState([]); 17 | 18 | const [target, setTarget] = useState(null); 19 | const [lowerRange, setLowerRange] = useState(null); 20 | const [upperRange, setUpperRange] = useState(null); 21 | const [priceBid, setPriceBid] = useState(null); 22 | const [priceAsk, setPriceAsk] = useState(null); 23 | 24 | const [finalPrice, setFinalPrice] = useState(null); 25 | 26 | const setupGame = () => { 27 | // Generate target price 28 | const numIter = 3; 29 | const multiplier = 100; 30 | const tolerance = Math.ceil(10 + Math.random() * 20); 31 | let tempTarget = 0; 32 | for (let i = 1; i <= numIter; i++) { 33 | tempTarget += Math.random() * multiplier * i; 34 | } 35 | tempTarget = Math.ceil(tempTarget); 36 | 37 | setTarget(tempTarget); 38 | 39 | setLowerRange(0); 40 | setUpperRange((multiplier * numIter * (numIter + 1)) / 2 + 30); 41 | 42 | setPriceBid(tempTarget - tolerance); 43 | setPriceAsk(tempTarget + tolerance); 44 | }; 45 | 46 | useEffect(setupGame, [gameNumber]); 47 | 48 | const resetRound = () => { 49 | setMessage(""); 50 | }; 51 | 52 | const resetGame = () => { 53 | setGameNumber(gameNumber + 1); 54 | setRound(1); 55 | }; 56 | 57 | const playFinalRound = () => { 58 | if (round !== MAX_ROUNDS + 1) { 59 | return; 60 | } else if (finalPrice == null) { 61 | setMessage("Please input a non-empty final price guess"); 62 | return; 63 | } 64 | // Calculate the final score 65 | const priceDiff = target - finalPrice; 66 | const portfolioValue = cash + stock * target; 67 | 68 | setMessage( 69 | `The actual price was ${target}. You were off by ${priceDiff}. Your final portfolio value is ${cash} + ${stock}*${target} = ${portfolioValue}.` 70 | ); 71 | setRound(round + 1); 72 | }; 73 | 74 | const playRound = () => { 75 | if (bid == null || ask == null || sizeAsk == null || sizeBid == null) { 76 | setMessage("Please input a non-empty bid/ask with sizes"); 77 | return; 78 | } else if (bid >= ask) { 79 | setMessage("Your bid must be less than your ask price"); 80 | return; 81 | } 82 | 83 | let actions = []; 84 | if (bid >= priceBid) { 85 | setCash(cash - sizeBid * bid); 86 | setStock(stock + parseInt(sizeBid)); 87 | actions.push(`${sizeBid} buys filled @${bid}`); 88 | } else { 89 | actions.push("No bids filled."); 90 | } 91 | 92 | if (ask <= priceAsk) { 93 | setCash(cash + sizeAsk * ask); 94 | setStock(stock - parseInt(sizeAsk)); 95 | actions.push(`${sizeAsk} sells filled @${ask}`); 96 | } else { 97 | actions.push("No sells filled."); 98 | } 99 | 100 | resetRound(); 101 | setActions(actions); 102 | setRound(round + 1); 103 | }; 104 | 105 | const renderActions = () => { 106 | return actions.map((action) =>
{action}
); 107 | }; 108 | 109 | const mainControls = ( 110 |
111 |
112 | Bid:  113 | setBid(e.target.value)} 117 | /> 118 |  Size:  119 | setSizeBid(e.target.value)} 123 | /> 124 |
125 |
126 | Ask:  127 | setAsk(e.target.value)} 131 | /> 132 |  Size:  133 | setSizeAsk(e.target.value)} 137 | /> 138 |
139 | 140 |
141 | ); 142 | 143 | const finalControls = ( 144 |
145 |
146 | Guess fair price:  147 | setFinalPrice(e.target.value)} 151 | /> 152 |
153 | 154 |
155 | ); 156 | 157 | return ( 158 |
159 |
160 | Find the market price of something as precisely as possible. There are a 161 | total of {MAX_ROUNDS} rounds. 162 |
163 | 164 |
165 |
Cash: {cash}
166 |
Positions: {stock}
167 |
Round: {round}
168 |
169 |
170 |
171 | The price of the stock is between {lowerRange} and {upperRange} 172 |
173 |
174 | {round <= MAX_ROUNDS ? mainControls : null} 175 | {round === MAX_ROUNDS + 1 ? finalControls : null} 176 |
{renderActions()}
177 |
{message}
178 |
179 | ); 180 | } 181 | -------------------------------------------------------------------------------- /chapters/market.md: -------------------------------------------------------------------------------- 1 | # Traditional Market Theory 2 | 3 | Most trading companies will say that you don't _have to_ know anything about real trading, 4 | but let's be honest, if you don't got the slightest idea of what an orderbook is or what 5 | a contract is, your shot of landing the trading role is going to be much lower. 6 | 7 | ## Contracts 8 | 9 | A contract is exactly what it intuitively sounds like -- an agreement between two parties 10 | to do something. In the trading world, the most common contract is something in the form of 11 | 12 | ```text 13 | Buy/Sell X amount of Y at price Z by date D 14 | ``` 15 | 16 | The reason these agreements are worth any money is that they represent some guaranteed power. 17 | Take the following contract (this is an option btw) 18 | 19 | ```text 20 | Buy 100 shares of SPY at $400 by 12/1/2020 21 | ``` 22 | 23 | Let's say I have this contract, and on 9/1/2020, SPY reaches a price of $432. Because I have 24 | this contract, I now have the right to buy SPY at $400 -- that's FREE MONEY! So because 25 | I own this contract, I have the right to SPY at some predetermined price. On the other hand, 26 | if SPY never reaches $400 at any time before 12/1/2020, then the contract is useless and I 27 | can't do anything with it. This _potential_ to purchase SPY is what gives this contract value. 28 | One very important properties of a contract is figuring out how much it is worth, which depends 29 | on a variety of factors, mostly related to risk and potential profits. 30 | 31 | On the theme of "anyone can become a trader," companies usually won't ask you a real life market 32 | contract like an option, but they will usually either 33 | 34 | 1. __Dumb it down__: Give you something like here's a contract with 4 possibilities 35 | 2. __Use a contract in another context__: They might play a game, like guessing the sum of 3 dice rolls, 36 | and make contracts about payouts for certain sums. 37 | 38 | The questions they will usually ask for contracts are: 39 | 40 | 1. What is the EV of the outcome? 41 | 2. How much would you pay for the contract? 42 | 3. If the game was more/less risky, how would that change the contract? 43 | 4. What is a contract you would buy/sell in this scenario? 44 | 45 | The general gist is they want to know how you evaluate certain scenarios and manage risk. 46 | As a general rule, trading firms prefer to consistently make money, small or large, rather 47 | than have the potential to lose any amount of money. This means they are more on the conservative 48 | side of risk management, which they usually call being "risk neutral." You as a trader should 49 | strive to not be too risky as well, because stretching yourself into too much risk is 50 | almost always a losing strategy. 51 | 52 | ## Orderbooks 53 | 54 | An orderbook is exactly what the name suggests -- a book of open orders for some asset. 55 | Take the following orderbook 56 | 57 | | Price | Volume | 58 | |:-----:|:------:| 59 | |105| 40000| 60 | |104| 5000| 61 | |103| 10000| 62 | |102| 1000| 63 | |101| 1000| 64 | |-|-| 65 | |100| 5000| 66 | |99| 1000| 67 | |98| 10000| 68 | |97| 100000| 69 | 70 | An orderbook expresses for each price, the number of people that are either buying or selling that price. The way you can tell if a price corresponds to a buy or sell price is to remember that 71 | 72 | ```text 73 | Buy low, sell high 74 | ``` 75 | 76 | meaning that lower prices indicate buy orders, and higher prices indicate sell orders. 77 | 78 | To equate this to something you might already do in real life, when you put in a limit order, your order will go to one of these orderbooks for a stock. 79 | 80 | There are many analyses done about orderbooks, one common technique is called overflow, which essentially looks at the distribution of orders, and figures out what that might mean for a stock price. For example, traders like to figure out where support and resistance levels are based on where orders are parked in the book. E.g. if there is a large buy block at 97, you can say 97 is a support price. 81 | 82 | For interviews, you don't have to know much about an orderbook other than what it is, and they will most likely explain it to you. But it's useful to have some background so you don't spend any time figuring out how an orderbook works. 83 | 84 | ## Making Markets 85 | 86 | As a trader, you're trying to make money in the market. 87 | One of the most fundamental skills is being able to "make markets," 88 | which is creating bids and asks that are favorable to you. 89 | Favorable means making money, but determining those bid and ask 90 | prices is not too easy. Finding a good bid and ask spread is very important, because it means you have found a spot where you can 91 | buy low and sell high. 92 | 93 | Some examples of questions: 94 | 95 | - A typical example of such a question is 96 | ```text 97 | Make a market for the temperature outside right now 98 | ``` 99 | 100 | - You have to give a buy-ask spread. The market will adjust its prices based on your actions. Here, the idea is that 101 | - If your bid is too high, i.e. greater than the lowest ask, 102 | the order will execute immediately since you fill the ask 103 | - If your ask is too low, i.e. lower than the highest bid, 104 | the order will execute immediately since you fill the bid 105 | - You want to find the market equilibrium as quickly as possible. 106 | The intuition here is that if your order gets filled too quickly 107 | for a bid, then you might want to lower your bid, and similarly 108 | for your ask. 109 | 110 | - Another market making question is similar to above, but you are not 111 | told how the market responds. A question might be something like 112 | ```text 113 | Let the population of Russia be R and let the population of Estonia be E. 114 | 115 | We are trading the spread R - E. If you have 5 buys, what orders to you place? 116 | ``` 117 | 118 | ## Practice 119 | 120 | - [**Find the Market**](https://mikinty.github.io/Trading-Interview-Questions/) is a game I created that can help you practice bid-ask and sizing on a static market. 121 | -------------------------------------------------------------------------------- /chapters/math.md: -------------------------------------------------------------------------------- 1 | # Be Quick 2 | 3 | A prerequisite for most quant trading roles is to be able to think quickly, and thus, be able to do math quickly. 4 | If you're someone who struggles to do basic math quickly -- it's gonna be a rough ride. But the good news is that 5 | no matter how bad you are, there is almost always room for improvement. 6 | 7 | ## Quick Maths 8 | 9 | A good way to practice your basic arithmetic skills is to visit [zetamac](https://arithmetic.zetamac.com/), which 10 | prompts you simple math problems quickly. Your goal is to answer as many problems as you can quickly. Notice that 11 | because they don't penalize you for inputting wrong answers, try to not guess your answers. 12 | 13 | One thing I hope you notice is that as you try to get faster at these simple math problems, you will start noticing 14 | tricks. Of course, you can just search how to do certain tricks, e.g. what the *11 trick is or how to add something 15 | in the form of 97 + 45 = (100 - 3) + 45 = 142, but I would highly recommend trying to figure out what tricks 16 | work for _you_. If you find that you aren't improving anymore, maybe then it might be worth to search up some 17 | arithmetic tricks. 18 | 19 | The following table should give a sense of where you are. This is based off of a 120 second test, with default settings on. 20 | 21 | | Score | Comments | 22 | |-------|:---------| 23 | |0-9 |You can do a lot better | 24 | |10-15 |Below average | 25 | |15-24 |Average | 26 | |25-35 |Above average | 27 | |35-44 |Pretty good | 28 | |45+ |Should be set for any interview| 29 | 30 | Some companies like Akuna like to ask questions like 31 | ```What is 17.5% of 354```, 32 | expect you to do it mentally and explain your method. 33 | They also like to ask you a series of these questions 34 | and then test if you can recall the questions they asked you. 35 | 36 | ## Number Sense 37 | 38 | Number sense is about being able to understand properties about numbers to do computation faster 39 | and be able to estimate difficult calculations fairly accurately. A good example of 40 | what number sense is about can be found at [AGMath](https://www.agmath.com/57427/index.html), 41 | an ancient website for sure, but if you scroll down to the bottom of this page you can find 42 | number sense worksheets. I think number sense is a natural extension from the simple arithmetic 43 | you can practice from zetamac. 44 | 45 | Another great guide for number sense can be found [by Bryant Heath](http://bryantheath.com/number-sense-tricks-manual/). 46 | 47 | ## Sequences and Patterns 48 | 49 | Trading companies love testing your ability to know sequences. Some of these sequences are technically challenging, 50 | requiring you to compute things. Other times, it's just knowing some phrase in English (sorry non-native speakers) 51 | 52 | - 1, 1, 2, 3, 5, 8, 13, (Fibonacci) 53 | - 1, 2, 4, 8, 16 (2^n) 54 | - 1, 6, 21, 66 (3x_{n-1}+3) 55 | - F, S, T, F, F, S, S, E, N, T (1st, 2nd, 3rd, ...) 56 | - M, V, E, M, J, S, U, N, P (Mercury, Venus, Earth, Mars, ...) 57 | 58 | There are many, so check out [sequences](../appendix/sequences.md) for more. 59 | 60 | ## Fermi Questions 61 | 62 | If you've ever seen an absurd question like 63 | 64 | ```text 65 | How many drops of water are in the Earth's oceans? 66 | ``` 67 | 68 | then you've encountered a Fermi question. The legend goes, that scientist [Enrico Fermi](https://en.wikipedia.org/wiki/Enrico_Fermi) 69 | once 70 | 71 | ```text 72 | observed the Trinity test on 16 July 1945, and conducted an experiment to 73 | estimate the bomb's yield by dropping strips of paper into the blast wave. 74 | He paced off the distance they were blown by the explosion, and calculated 75 | the yield as ten kilotons of TNT; the actual yield was about 18.6 kilotons. 76 | ``` 77 | 78 | Fermi questions are about common sense, and how you can utilize what you can know to make seemingly unsurmountable questions 79 | more realizable. You can find a good guide on Fermi questions [here](http://www.physics.uwo.ca/science_olympics/events/puzzles/fermi_questions.html) and can practice in real time at [this site](https://andrechek.com/projects/fermi). 80 | 81 | ## Competition Math 82 | 83 | If you don't know already, a lot of trading firms like to recruit from the competition math community. 84 | These are people who have spent a good deal of their life training, and thinking through very hard problems 85 | and answering them correctly in very high pressure, limited timed settings. Competition math 86 | can be special to you doing math for these trading interviews because it not only teaches you tricks 87 | to solve problems faster, but it also exposes ways to look at problems a different way and gives you 88 | a huge toolbox to use for cracking seemingly unbreakable problems. 89 | 90 | In America, the following contests may be worth taking a look at if you're looking to get a sense of 91 | what competition math is about, and looking to practice or learn these skills. 92 | 93 | ### Nationally followed 94 | 95 | This is the path that almost every aspiring mathematician takes to represent his/her country at the International Math Olympiad (IMO). 96 | These exams are in increasing order of difficulty. If you want to learn more about preparing these exams, I would highly recommend 97 | checking out the resources and forums at [The Art of Problem Solving](https://artofproblemsolving.com/) (AoPS). Most of the links below are going to be from AoPS. 98 | 99 | 1. [MathCounts](https://artofproblemsolving.com/wiki/index.php/MATHCOUNTS): A competition for middle schoolers that usually serves of the first stepping stone for kids to enter competition math. 100 | This exam is administered at the regional, state, and national levels, and comes in a variety of exam styles, 101 | including multiple choice (Sprint), short answer (Target), team based, and even head-to-head speed (Countdown). 102 | This competition is lots of fun and I highly recommend it if you have kids interested in math or are a youngster for whatever reason browsing this guide (good for you!). 103 | 2. [AMC 8/10/12](https://artofproblemsolving.com/wiki/index.php/AMC_Problems_and_Solutions): A multiple choice based exam. Each exam is for a different demographic of students, 104 | e.g. AMC 8 is for 8th graders and under, and each exam has a different cutoff. The exams are used as qualification 105 | to take the AIME. 106 | 3. [AIME](https://artofproblemsolving.com/wiki/index.php/AIME_Problems_and_Solutions): A short answer based exam. Selection test for the US Math Olympiad. 107 | 4. [USA(J)MO](https://artofproblemsolving.com/wiki/index.php/USAMO_Problems_and_Solutions): Selection test for the Math Olympiad Program. 108 | 5. [MOP](https://artofproblemsolving.com/wiki/index.php/Mathematical_Olympiad_Summer_Program): The actual test is called TST, but it's a selection test taken at MOP to determine the IMO team. 109 | 6. [IMO](https://artofproblemsolving.com/wiki/index.php/IMO_Problems_and_Solutions): Grand finale. 110 | 111 | In college for undergraduates, there is a test called the [Putnam](https://artofproblemsolving.com/wiki/index.php/William_Lowell_Putnam_Mathematical_Competition), a proof-based test, that is highly regarded. 112 | Scoring in the top 500 is considered a strong achievement. 113 | 114 | ### Well-known competitions 115 | 116 | - [HMMT](https://www.hmmt.org/) 117 | - [ARML](https://www.arml.com/) 118 | - [PUMAC](https://jason-shi-f9dm.squarespace.com/) 119 | --------------------------------------------------------------------------------