Saturday, December 11, 2021

Bias (written March 2011, published Dec 2021)

Bias is bad
In the scientific literature, bias seems like something to overcome. See cognitive bias. It is a systematic distortion where we want no distortion. An example: why should women or minorities have to overcome a systematic distortion in the job market? In this case, the biases are collectively known as prejudice and for the interviewer may include framing bias, self-serving bias, belief bias... among others. Where we can, we'd certainly like to make life fair.
Or is bias bad? Optimism > Pessimism
  • "You miss 100% of the shots you don't take"
  • "Keep your heart open"
  • "A pessimist sees the difficulty in every opportunity; an optimist sees the opportunity in every difficulty"
  • "Continue being you because someone out there will love you for you"
We sort of know that every interview isn't going to get us an offer, but we go them anyway. As long as you are going to take your expected value and add a bias to it, it would seem that optimism is better. eg: (Philosophy (western), and Philosophy (eastern), and SelfHelp, and Sciencey-Health). It seems a little silly to calculate an expectation and then purposefully fudge the numbers. The main power of optimism is that it gives you strength (motivation) and the main weakness of pessimism is depression, the state where you do nothing. So we learn to appreciate failure because that means we are trying, executing, learning and above all, living.

And yet: Not every failure is okay. Pessimism > Optimism
  • It's not every day that your child will drown in the swimming pool. (Safe link)
  • You don't expect to die from your next cigarette.
  • What's the chance your sexual partner has aids?
  • Driving drunk doesn't cause an accident a majority of the time
There are two types of risks -- ones that add up (cigarettes) and ones that don't need to (Russian roulette). But in both cases, it is just a matter of time.
It's not expectation, it's expected value
Is one mindset is right over the other? They are used for different things, so next time you are an optimist during planning or a pessimist during action just have a good reason to deviate from the obvious benefit of natural fit (perhaps older people won't try anything unless you are optimistic). You can be more than a happy-go-lucky-idiot or party-pooping negative-nancy. Just one man's opinion here, but you could plan when you are supposed to plan and act when you are supposed to act. 

Monday, May 17, 2010

Off Season

Hi there,

Perhaps you are looking to get into trading. If you are seeing this around the time I wrote it, then you have missed the regular hiring season. The good news is that trading companies hire year round and the smaller ones (which is what you want) hire when they need people, not just when schools have companies visit normally.

For the summer months, I would like to help you get your next trading job. I will help one person from each school based on some sort of random / first arrival / I feel like it basis. I really want people who will work hard and normally do not ask for help (but will hopefully learn that they should).

What do I get? If I help you get a job, you will mail me a sweatshirt with your school's logo on it size M/L and I will be rich. Just email me at igor (dot) schmertlzer (at) gmail with a semi compelling case and we'll get started.

Thanks for reading, Igor

Monday, November 23, 2009

Tense Language

My belief is that we are born humans and made traders. We have some traits that work well in everyday life, but maybe don't carry over well to trading in a team. My intent here is to uncover words that imply. These are unfit for financial markets, namely words with momentum / inertia. There are many reasons why practitioners still speak with such implications in their language:
  • 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)
Discrete Time
In everyday life, there is a bit of inertia to our actions. For example, if I choose to ride a bike I must stop the bike and get off before I can be not riding a bike. My bike is moving so my statement maintains its accuracy for a while. Similarly when I am cooking, my oven stays hot. If I tell you I am cooking, you can predict that in the next second, I'll still be cooking.

Continuous Time
With stocks and prices, this ability to predict does not follow so easily. I cannot make a factual statement that the DOW is going up or that gold price is rising. Instead, I have to be satisfied communicating merely that either went up or hit some price. If I say gold is going up, my words are actually making a prediction about the future price vs the last traded price (or the last quote).

If you make this mistake and you are new to trading, consider the upside of finer speech. Some products really do go on runs. You and your colleagues will know which ones if you save your words. You will also find yourself chasing missed opportunities less. And...

Hammertime
What can happen if we are not careful with our words? My friends at other trading firms provide great examples: say you hear something akin to "The dollar is going up," while (but really after) the dollar has a couple of upticks. Lets also say a guy named Micke Dafehr manages you. If you didn't buy the dollar and the dollar goes up, MD will say he told you it's going up. If you bought the dollar and it proceeds to go down, MD asks you later why your PL is so low downplaying this part and emphasizing your other trades. His "option" is worse than zero-sum for the team. Here is how:

Dollar up Dollar unch Dollar down
You buy I told you so Transaction cost Your PL is lower
You don't buy WHY NOT?! 0 pts You can agitate MD or not
You sell You're fired LISTEN MORE! Manager takes credit

Faced with such a prospect, you will prefer to act only on his decisions and not your own. You might feel less ownership, learn less, and have less motivation. The team becomes just one 'manager' and a scapegoat for if something goes wrong. These mismanagements are only seen from below which makes them difficult to weed out of organizations. Who cares if someone junior to them has a probabilistic chance of raising their voice? The manager is protected because the grievance is small and widespread among others. He / she can just say 'communication is important' a couple of times and then get the unruly scapegoat fired and move on to the next one.

A word to the wise: be sure that your company speaks openly and clearly about issues. Transparency (albeit under a fair system) favors the honest. It is very important to promote only the most honest behavior! My manager does and I hope yours does too!


PS: I haven't posted in about year so let me know if I let you down with this post or you don't mind seeing more like this one.

Monday, September 22, 2008

The devil's advocate

I was recently called the devil [read: open-minded] for considering the merits of lust. I was called naïve [read: disciplined] for believing I should invest now for a promise tomorrow. So, let's examine the merits of lust and naïvety.

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

Since quite a few individuals have asked me questions on programming (and related sub-topics), I thought it would be a good idea to write a small primer on the subject, namely:
  1. Why Do I Need Programming? (skippable, if you know why)
  2. What Are My Goals?
  3. Which Language Do I Choose?
  4. How Do I Go About Learning?
  5. 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?
  1. 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)
  2. 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...)
  3. Make a frequency table of the log of the prices (=FREQ()) and divide them into buckets of 10.
  4. 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.