- Simple It's just like we talk in everyday life (Dow is going up = I am riding a bike)
- Powerful It helps you sell things (Gold is going up)
- Optionality You can argue that you meant something else (Yeah, gold went up)
Monday, November 23, 2009
Tense Language
Monday, September 22, 2008
The devil's advocate
What do I do now?
One way to decide on an action is to ask whether you in the future will approve or even applaud the decision.
Objective Function: Max E [x] ; Evaluation: Your future self
Some decisions can really change the way your future self thinks. For example, a drug will change the way you perceive drugs. Becoming religious might change the way you see religion. So barring those reflexive decisions, the future-self-metric yields some consistently desirable results. After all, you are always looking back to decide if you acted correctly. So, yay! right? Well, not exactly. You can't always analyze if you are trying to act and there may be some good opportunities in the 'heat of the moment.'
Lust
One way is to think only in the present. Why? You could choose not to trust tomorrow because the future is uncertain, because analyzing takes too much time, or because ‘that cheesecake looks sooo good.’ This blog post is devoted to the greedy algorithm, hungry people, and in general to the beautiful irresponsibility of brain myopia.
Greedy Algorithm – (minus) Algorithm ≠ Greed
Greedy algorithm is an algorithm that isn't really greedy. An algorithm is a step-by-step process to find a solution. Greed, in the popular lexicon, is the excessive self-interest that tramples other people’s needs. A greedy algorithm, however, is one that ‘gobbles up its favorites first.’ Another way to say the same thing would be, a greedy algorithm is a step by step process that looks at only the payoff from the next step. After all, there might not be a better way to get up the stairs than one at a time. Greedy algorithms seek to maximize instantaneous momentum rather than consider the position it is in once that step is taken. Think about it: position depends on the choices at the next step and those choices depend on the position thereafter, and so on. Greed is a lot less complicated. Greedy algorithms don’t go to college; they don't invest. But don’t feel bad learning all the good things about greedy algorithms. After all, the greedy algorithm is just myopically self-interested, not greedy. This is similar to elitism in that elitism seeks out those who are likely to know (considered experts). Elitism may not reach all the right people, but it might yield a relatively good conversation quickly. That might even be why you subscribe to this blog. : ) <- a lusty smile
Speed
[Get to the trading already!] Most trading opportunities happen fast and last a short time. In finance, we are taught that it is the present value of all cash flows out to time t-approaches-infinity that should determine which step has the highest value. Two questions arise from this approach:
1) How can you be sure that your opportunity will last until tomorrow? Though tomorrow, not today, may be when you have determined this next step is optimally taken, you may not be able to count on tomorrow. In finance and in competition, often you have to be faster than tomorrow. Greedy algorithms may not have gone to college, but they know that you better get yours while the getting is good. That is, short-sightedly, they don’t consider that Lehman Brothers has been around 158 years.
2) How can you be sure that spending time making decisions is going to be worth effort? Though a better solution may exist, it may be too costly to find that solution. Said again, the cost of analysis may be higher than the marginal return on the choice between methods.
Getting to the good stuff, what are greedy algorithms good at?
1) Speed sensitive problems like competitive markets
2) Promoting natural talent. Rather than cultivate a new skill, you could just focus on what you do well.
3) Acting predictably – coming up with solutions easily verified
4) Not assuming anything about position [tomorrow’s opportunities]
Here are some examples of problems to which greedy algorithms may yield the best solution:
1. ‘Egyptian Fractions’
Each fraction can be expressed as a sum of different fractions with unit numerators. Fibonacci proved that this greedy algorithm is guaranteed to halt.
2. ‘Voting Districts’
Given an integer number N, and a map in which each region is assigned an integer number (= population size), the problem asks to create N district with minimal deviation of population. The regions in each district must be connected.
A greedy algorithm can start by choosing the N biggest regions as cores of the different districts. Then, in each iteration, the largest unassigned region, among those that are adjacent to assigned regions, is assigned to the district with the smallest population.
3. ‘0/1 Knapsack’
Some good news about Optiver Recruiting
Last week, I was at the recruiting booth at MIT. One question that came up was how many people we are willing to take to trade. In a no bullshit sense, we have no cap. Taking on every opportunity with a positive NPV maximizes firm value. You can apply at optiver
Blog Posting
How can I share with you if you do not share with me? You can request blog topics (and even recruitment advice) at igor (dot) schmertzler@gmail.com
Friday, August 29, 2008
Advice for two
Since
spoken word is not received thought,
so, meant-ideas are error fraught.
Lonely people speak,
to end at the beginning:
eerily
…because one time,
in just three minutes, two people
had one mind…
Have you heard
the new morality:
save the words!
for sake of clarity
Sunday, May 11, 2008
By Varun
- Why Do I Need Programming? (skippable, if you know why)
- What Are My Goals?
- Which Language Do I Choose?
- How Do I Go About Learning?
- Final Thoughts
Why Do I Need Programming?
QuantFS prides itself on the quality of its members, and no doubt that every one of us knows our "theory", be it Econ, Finance, Math, or CompSci; however, if someone told you to implement it, where would you start? Well, maybe that's not fair...If you wanted to implement a regression model on CPI, M3, and Unemployment, that can easily be done in Excel, right? Well, what if you wanted a running regression on prices? Are you really going to sit there and re-run it all the time? No (aside from the point, that no one would pay you to click 'update').So where does this lead? Programming is the glue to all the theory we learn as aspiring quants. Want to go into pure theory without programming? You'd better be that 4.1 Math/Physics kid from Harvard, otherwise learn some skills. Is programming a cop-out to pure theory? No, on the contrary, it only strengthens certain theories we learn about (CAPM, Optimization, all CompSci theory, etc...). Why should you program if it can be outsourced? The answer to this one lies in the next section.
What Are My Goals?
- If you want to develop software and sell it
You should be majoring in Computer Science or Mathematics. Why? For intensive software deployment, it is often necessary to understand how programming works with the computer and how to optimize slow code, not to mention an upper hand of theory and experience from your courses. However, if you have a theoretical idea and want to outsource the programming, then you are an entrepreneur. It really is important to establish your goals within this segment due to the varied paths it leads to down the road... - If you want to use programming as a tool in research
This is what QuantFS is prepping our members for. Scripting is the key here. If you have a large file of stock data and want to run statistics on it in real-time (as we did in one workshop), or you have a bunch of variances/expected returns and want to find the optimal risky portfolio or the global minimum variance portfolio using CAPM (as we did in another workshop), then you need to learn how to script. So, what does this entail? The ideal candidate is learning a technical major with good non-technical background. Scripting revolves around clever ways to minimize running-time and increase accuracy. Courses include: Discrete Math, Algorithms, Probability, Statistics, Regression, Time Series Analysis. The key in scripting is, "you can't be too clever here." Clever workarounds are awesome.
Which Language Do I Choose?
- If you want to develop software and sell it
Since programming power is the necessity here, recommended languages for deployment include (but are not limited to) C++/C#/C/Java for standard applications. If you want to network among computers, use .NET framework. If you want to deploy webside stuff think Perl, PHP, Python, Ruby (and MySQL or some variant for databases). If you want some handle on setting up servers to run tasks, think UNIX. Like I said before, this path has a lot of options... - If you want to use programming as a tool in research
I would almost require (4) language TYPES. "Types"? WTF? Yes, I like to think of scripting in four distinct groups: Text, Presentation, Power, and Data. Let's go over a few commonly used languages and see their strengths...
VBA (Visual Basic for Applications) - Specifically for Microsoft Excel, VBA is great as a presentation language. Why? Most clients want summaries of your research or performance and they love to see stuff in Excel. If you've worked a day in your life in Finance, you'll know that Finance = Excel. Is this the best thing to learn first? No, because it teaches bad programming habits; however, it is ridiculously easy to learn and use and the deployment time for written code is fast.
Perl - This powerful language is the best text category language. Want to turn a CSV into a TDV (tab delimited)? Want to take a bunch of prices and stocks and sort them by date/ticker? Want to combine 30, 40-meg files and get the common items from all of them into a separate text file? Perl is your choice, hands down. The exact nature of this language (Larry Wall, the creator, is a linguist) makes it very understandable, comprehensive, and light. It also is a light install, is available for any OS and has superfast deployment time. Also works well with CMD, batching, and linked processes
MATLAB - A common program/language for researchers, this tool is great for initial analysis and minor scripting, but it is not optimal for setting up systematic processes. It is also great as a presentation tool for selective quants who use it (Goldman uses it in case you were wondering). It's much more a theory person's "scripting" language. Deployment time is a little longer; however, it has some great commands for matrix algebra due to its nature of storing everything in matrix form (example, a = 0 is stored as a 1x1 array with the value at [1,1] = 1).
S-PLUS, SAS, SPSS, S, R - (yes they are all different...kinda) Power. These are a necessary tool in developing your scripting power. These are 'statistical' languges...which means that they are great at doing statistics...What? There's a category for this shit? Yes there is! Deployment time is less than MATLAB and they are also more powerful because they are lighter on the system. "R" is great because it is open-source. S-PLUS has a nice GUI and help file. Make sure you learn one of these...once you have learned one, the others are just syntax differences.
Bloomberg, Factset, MarketQA - These are tools that allow users to access data from a database (like below). Learning how to get data is just as important as playing with it. One day you will find yourself sitting at a job and your boss could say, "hey, run a regression on the DOW 30 and the S&P 500's monthly total returns." To which you would reply, "sure...where do you have the data?" *BAM* You are fired. It is quintessential!
Compustat, Worldscope, I/B/E/S, etc... - These are financial databases. No way to "learn" them; you have to work with them in a job and understand (and deal with errors in) the data and this will double your power as a scripter.
C/C++/C#/Java - These languages are interesting...They are very powerful (they have control over many system capabilities), they can do data mining, they have a large community following (libraries with prewritten code), BUT they have long deploy time unless you re-use code...a lot...
How Do I Go About Learning?
Ahh, the dreaded question...The *BEST* way to learn programming depends (again) on which path you take. To be honest, if you are going into software development, your coding can take time to develop but the theory you learn should come first. However, if you (like me) are a scripter, experience is key. Therefore, I like to suggest that the only way to learn is by doing. It is not an easy thing to say because, face it...where are you going to find interesting things to program? This has always halted the learning process with programming. The typical dialogue is:Kid: Hey, What language should I learn?
Me : Well, if you are going into Finance and you don't know VBA yet, learn that...it's expected at this point.
Kid: Cool, is there a good book you would recommend?
Me : Sure, get Microsoft Excel VBA Programming for the Absolute Beginner by Birnbaum. He teaches you by making you program games. It's a great way to learn.
Kid: Ok.
This is where the process usually stops because there really is a limited connection between learning how to move a red cell around the spreadsheet and automating a series of regressions. *It does teach you syntax and makes you familiar with the GUI*, so it is necessary. What are some better projects to try out after that book?
- Get the current S&P 500 Constituent list (Google that phrase and you should hit S&P's website, there is a link to download the constituents to an excel file...check out the syntax of that link)
- Get the closing price (from Yahoo!Finance) of each of those companies. Again, check one company and look at the syntax of the link. There's a fast way to do this also (aka, you don't have to hit their site 500 times...)
- Make a frequency table of the log of the prices (=FREQ()) and divide them into buckets of 10.
- Make a graph of the buckets and the count to see if prices in the S&P 500 are lognormally distributed...
If anyone actually does this...let me know and show me your code, i'd be happy to check it out since I already have this done in some excel file.
Final Thoughts
I hope I haven't deterred anyone thinking about "trying it out" this summer, but programming is a committment that will pay off in the long-run. Just getting your feet wet is a rewarding experience as it teaches you to think in loops and conditions. Once you understand how long it takes to get good at programming, or how long it takes to complete a tasks, you will have a greater understanding of feasibility within your project workspace.Tuesday, April 22, 2008
F(un)AQs about the Fed
What can the Fed do to change the Federal Funds rate?
- Open-market operations
- Discount rate
- Reserve requirements
- Etc.
What are “open-market operations?”
When the trading desk at the Federal Reserve (“the Desk”) buys or sells government securities from Primary Dealers in the open market in order to alter the Federal Funds rate.
How do open-market operations affect the rate charged to banks to borrow funds from another bank?
The Fed does NOT directly transact in the Federal Funds market. Here is an example of the chain of events that occurs when the Fed reduces the amount of liquidity in the market and increases the Federal Funds rate:
1) Pretend the US economy is booming and the Fed decides to increase their target for the Federal Funds rate
2) The trading desk at the Federal Reserve contacts their Primary Dealers and asks them for their bids on an unspecified amount of treasury securities. Primary dealers participate in this auction for two reasons:
a. They are required to participate
b. They have accounts at clearing banks, which are depository institutions that hold reserves at the Fed. When the primary dealers buy Treasury securities from the Fed, the depository institutions’ supply of reserves decreases as primary dealers use the cash they have deposited to pay for the Treasuries. This decreases the amount of available reserves in the Federal Funds market, increases the demand for reserves, and increases the Federal Funds rate.
3) Once all the bids are submitted, the auction price is set by the Desk, securities are sold to primary dealers and liquidity evaporates causing the Federal Funds rate to increase
This process works in the reverse fashion when the Fed is seeking to increase liquidity. This time, the Fed is buying securities from Primary Dealers and giving them cash in exchange for government securities. This cash is deposited at their respective depository institutions, increasing the amount of reserves in the banking system.
Types of Open Market Operations
The Fed can structure their open market operations as repos or outright sales/purchases
Repos: These are the most common types of open market operations conducted by the Fed. They are preferred because they give the Desk much more flexibility in offsetting temporary swings in the level of reserves, which can be very volatile.
Here is an example of why flexibility is so important for the Fed when trying to control the Fed Funds rate:
Every 3rd day of the month the government pays out social security benefits. This causes reserves to shift from the government’s depository account to the bank accounts of private sector banks (note that the government’s reserves are not part of the Federal Funds market until they are given to Social Security beneficiaries and deposited in their accounts at depository institutions). This results in a huge increase in the supply of reserves, but the Federal Funds rate does not change! This is because traders at the Desk conduct defensive operations in the form of repos in order to control the supply of reserves.
Outright sales/purchases: Similar to repos, but result in a more permanent creation/elimination of liquidity, as the transactions are not reversed after a few days, like with repos.
Discount rate: Since the discount rate is above the Federal Funds rate, borrowing from the Discount Window is rare. A relatively high discount rate puts a ceiling on the Federal Funds rate and deters banks from borrowing from the Fed before they have exhausted less expensive alternatives. The stigma of borrowing from the Discount Window is largely a result of this implication.
Reserve requirements: By increasing the reserve requirement ratio, the amount of tradable reserves in the Federal Funds market decreases. Supply goes down so prices go up, i.e. the Federal Funds rate increases.
Saturday, March 29, 2008
Linear Approximations
The shortest distance
Lines have two parts [y = mx+b]: they start somewhere [b] and with unwavering speed [m] they get somewhere. Pretty simple.
Since I am simple, lines describe me pretty nicely too. I have 50 dollars and each redbull vodka costs 10 dollars. 5 redbull vodkas later, I am numb to my net worth.
Relationships can suffer over distance
To estimate how much money you would make investing at 8% a year with 100 dollars, see that you make 8 dollars in your first year. The amount of money that you have changed by only 8% so far, so figuring that you will make about 8 dollars the next year on the same investment is only 8% off. After two years, I have made about $16.
After a greater number of years, the compounding of error would become a problem. After all, what is the difference after 10 years. ($100+$80) - [100*1.08^10]. The error gets worse and worse and we lose love for the line.
Over that line
A threshold is a point where everything changes. I was a jello crazed child. One thing was very clear to me: if there is anything better than one cup of jello, it is two cups of jello (rational by any economic sense). One way or another, I got enough money to satisfy my dreams. I ate an orgy of jello. Unlike the linear promise of joy, I threw up -- violently. The formula for maximizing pleasure can be tricky.
Call me
Some things can be described well linearly. Take for example how much you gain or lose on a stock when it goes up by a dollar, but what happens when you add a threshold to the payoff? A call is similar to holding a stock contract except that it only entitles you to money if the stock is beyond a certain threshold like 100 bucks (when the contract ends). Of course, you could sell your call contract before the end of the contracts life. Instead of getting dollar for dollar returns, you have to value your call with an equation that is much more difficult (at the top of the post). All due to a little threshold. After all, if I can hook up with an 18 yr old, why can't I hook up with a 17 yr old? Thresholding can be difficult to understand.
............................
Igor 'I only post when you make me' Schmertzler
Tuesday, March 18, 2008
Quotations
- A penny saved is a penny earned. (I just made a penny!)
- Follow your heart. (Yay, I love not going anywhere)
- Live for the moment. (I was alive every moment writing this blog)
- And a trading favorite, balls to the wall. (There are too many walls!)
Imagine following your heart and living for the moment. You see a delicious apple and since you are hungry, you eat it. You see a beautiful girl and you walk up to talk to her. You feel like reading a book or writing a blog. And you rack up points.
"I'm kind of a big deal around here"
You rack up points -- big time -- because everything your heart desires not only helps you in the present, it makes your life better in the future. An apple a day, anyway. And maybe the girl wanted to seize not only the day with you. Sometimes, there is no trade-off between the present and the future. Sometimes, seizing the day is what it's all about. Big opportunities are captured when a person is trying to capture opportunities. That rarely happens when practicing long division.
More likely than not, saving pennies is not something your heart truly desires. Is that how Bill Gates made his money? Certainly, it's not how Trump made his money. It's better to be dollar smart and penny foolish. After all, the more you spend, the more you save.
"Opportunity is missed by most people because it is dressed in overalls and looks like work"
Opportunities can only be seized when they come. Fortunately for you, opportunity can only be seized by those who prepare. So figure out when your opportunity is coming and prepare for that time. It would be hard to do many good trades when the market is closed. Saving that penny in preparation for a once in a lifetime investment; learning how to put on makeup without looking like a prostitute and meeting the love of your life; practicing that jump shot for hours for the important three seconds you'll remember for the rest of your life -- that opportunity will come.
"In a minute there is time / for decisions and revisions which a minute will reverse"
All men are not created equal. In fact, some mothers smoke or drink while pregnant. There are fathers who did not want to create anything at all. The nature is different, the nurture is different, and the randomness is -- random. Minutes in my life were not created equally either. My time was worth about $7 / hour when I was 16. I was just as good at reading Shakespeare then as I am now, but I get paid slightly more these days to focus less on shakespeare and more on trading. Is this the most I will ever make? Are my minutes now deserving of thinking only about the short term?
"To perceive evil, where it exists, is a form of optimism"
My time right now is every bit as important but not every bit as useful ($ / hr) as it will be in the future. When a person thinks like that, he makes his thoughts a self-fulfilling prophecy. If you are in college, invest in yourself and take a harder class. Calculate your grocery bill in your head and add tax. Commit yourself to not borrowing from tomorrow. Debt, anorexia, not putting away the dishes, drugs, and laziness is borrowing from tomorrow. I am an optimist; I think your opportunity will come tomorrow.
"Equality of opportunity is freedom, but equality of outcome is repression"
They say, the gap between the haves and the havenots is growing. I am not sure if that is true on percentage terms, but I am sure that the gap grows between people who live for the moment and people who prepare for their moments. If you have spent your life preparing, we'd love to have you at Optiver trading.
You've worked hard, why not let your investments pay off. Email me.