Saturday, January 10, 2009

Establishing a position -- How to?

I had promised that I will write a post about it. So here it goes.

My criteria for choosing a position is fairly straightforward. It consists of following:
  1. There should be a good amount of buffer available to weather a potential downside.
  2. There should be decent returns for the initial investment
In reality, these often contradict with each other and thus one needs to find the right balance.

Doing this requires some analysis and is quite painful if done manually. So, to do this efficiently, I have put together a system. My requirements were
  1. The system should be completely automated (or automated at least for majority of the work)
  2. The system should be very simple (and based on simple calculations)
In exchange, I am willing to monitor the positions fairly regularly (and act on them if deemed necessary).

So, here is my work-flow for choosing a position:
  1. I have developed some scripts that fetch the data for both stock quotes as well as options quotes on a regular basis for a list of securities (Right now, my list is about 1000 tickers. I plan of expanding this soon.)
  2. Once step #1 finishes, another set of scripts start looking at each stock (and corresponding options). Then for each stock/option combination (Note that there are multiple such combinations for a single stock), this step first computes max number of days a position may stay open for. After that, it computes two ratios: The break-even buffer percentage (expressed as current stock price) per day and max percentage gains this position may yield (if called of course) per day. A score (which is a monotonic and continuous function) is assigned based on these values for both ratios. Then a single score is assigned to each such position using a fairly simple formula, which combines these two scores into a single one based on relative importance with respect to each other. There is no exact science behind doing so. I have expressed these formulas using my beliefs/knowledge and I constantly tune them based on observed data points. So at the end of this, a score is assigned to all positions. Note that the score is normalized at this point (i.e. it is between 0 to 1) so that any two positions can be meaningfully compared. For me, higher scores indicate better positions.
  3. Next, based on certain pre-determined thresholds, these scripts generate a list of about 10-20 positions on a daily basis that are deemed "best" according to their scores.
  4. At this point, the process becomes manual. I personally look at each such position and decided whether to accept/reject it. I mostly look at very simple stuff like fundamentals of the company, market cap, cash position, eps etc. etc.
About 90% of this work is automated. These are really simple scripts that I coded up over an evening.

So that is it. If you are interested in any of the specifics, email me. We can start a conversation.

Hope all of this makes sense.

3 comments:

bobj said...

I have just started selling covered calls and found your site. I used your method of calculating returns in excel as it is the best I've seen. Now what you are talking about above is really interesting as the only way I have found potential trades is looking for technical setups and then comparing to the option returns. I couldn't find where you have an email address so commented here.
Thanks

covered calls said...

bobj.. You can reach me at ccalls001 AT gmail (I will leave the last part of the email address out). Email me and we can start a discussion.

bobj said...

I sent an email to the above address. If you received it, if you could respond. I know this is a hectic time because of expiration so don't need a lengthy discourse at this time.