Sunday, June 2, 2013

Mastercard (MA)

BUY signal the week of 10.18.10 at $242.64. My first stop was $202.75, so my risk (R)/share was $39.89. 

Closed Friday at $570.25 with a $519.79 stop. My new stop for this week is $522.37.  

The percentage gain on this trade is +135.0%, and the reward-to-risk ratio is +$327.61/$39.89 = +8.21.

History (beginning in 2006):
Winning Trades: 4 | 80.0% | +$117.35/share avg.
Losing Trades: 1 | 20.0% | -$35.79/share avg.
Average Trade: +57.8% | +$86.72/share | Reward-to-Risk (R): +3.02
Compound Annual Growth Rate (CAGR): +32.0%
Alpha% (weekly): +0.67%
Sharpe Ratio (weekly): +0.1638

Alpha and Sharpe Ratio calculations:
Total # of weeks (5 trades): 271
Mean Trade Returns (weekly): +0.82%
Mean S&P 500 Returns (weekly): +0.13%
Standard Deviation (weekly): +4.98%
Risk-Free Rate (baseline assumption): 0.0%
Beta (calculation): +1.15
Alpha (calculation): +0.67%
Sharpe Ratio (calculation): +0.1638

LinkedIn (LNKD)

BUY signal the week of 1.7.13 at $118.00. My first stop was $96.40, so my risk (R)/share was $21.60. 

Closed Friday at $167.53 with a $139.69 stop. My new stop for the coming week is $141.22.

The percentage gain on this trade is +42.0%, and the reward-to-risk ratio is +$49.53/$21.60 = +2.29.

History (beginning in 2013):
Winning Trades: 1 | 100.0% | +$49.53/share avg.
Losing Trades: 0 | 0.0% | -$0.00/share avg.
Average Trade: +42.0% | +$49.53/share | Reward-to-Risk (R): +2.29
Compound Annual Growth Rate (CAGR): +148.7%
Alpha% (weekly): +1.14%
Sharpe Ratio (weekly): +0.3039

Alpha% and Sharpe Ratio calculations:
Total # of weeks (1 trade): 20
Mean Trade Returns (weekly): +1.95%
Mean S&P 500 Returns (weekly): +0.52%
Standard Deviation (weekly): +6.42%
Risk-Free Rate (baseline assumption): 0.0%
Beta (calculation): +1.56
Alpha (calculation): +1.14%
Sharpe Ratio (calculation): +0.3039

Deckers Outdoor (DECK)

BUY signal the week of 2.4.13 at $43.56. My first stop was $29.97, so my risk (R)/share was $13.59. 

Closed Friday at $53.68 with a $45.81 stop. My new stop for the coming week is $46.52.

The percentage gain on this trade is +23.2%, and the reward-to-risk ratio is +$10.12/$13.59 = +0.74.

History (beginning in 2005):
Winning Trades: 3 | 75.0% | +$29.55/share avg.
Losing Trades: 1 | 25.0% | -$16.82/share avg.
Average Trade: +117.3% | +$17.96/share | Reward-to-Risk (R): +3.44
Compound Annual Growth Rate (CAGR): +34.2%
Alpha% (weekly): +0.83%
Sharpe Ratio (weekly): +0.1539

Alpha and Sharpe Ratio calculations:
Total # of weeks (4 trades): 280
Mean Trade Returns (weekly): +1.00%
Mean S&P 500 Returns (weekly): +0.11%
Standard Deviation (weekly): +6.49%
Risk-Free Rate (baseline assumption): 0.0%
Beta (calculation): 1.60
Alpha (calculation): +0.83%
Sharpe Ratio (calculation): +0.1539

Crocs (CROX)

BUY signal the week of 2.19.13 at $15.43. My first stop was $12.46, so my risk (R)/share was $2.97. 

Closed Friday at $17.64 with a $14.08 stop. My new stop for this week is $14.50. 

The percentage gain on this trade is +14.3%, and the reward-to-risk ratio is +$2.21/$2.97 = +0.74.

History (beginning in 2006):
Winning Trades: 3 | 75.0% | +$14.34/share avg.
Losing Trades: 1 | 25.0% | -$5.43/share avg.
Average Trade: +159.5% | +$9.40/share | Reward-to-Risk (R): +2.88
Compound Annual Growth Rate (CAGR): +46.2%
Alpha% (weekly): +1.35%
Sharpe Ratio (weekly): +0.1778

Alpha% and Sharpe Ratio calculations:
Total # of weeks (4 trades): 204
Mean Trade Returns (weekly): +1.70%
Mean S&P 500 Returns (weekly): +0.21%
Standard Deviation (weekly): +9.57%
Risk-Free Rate (baseline assumption): 0.0%
Beta (calculation): +1.68
Alpha (calculation): +1.35%
Sharpe Ratio (calculation): +0.1778

Salesforce.com (CRM)

BUY signal the week of 2.21.12 at $35.91 (adjusted for 4.18.13 4:1 stock split). My first stop was $27.13, so my risk (R)/share was $8.78. 

Closed Friday at $42.33 with a $38.00 stop. My new stop for the coming week is $38.10.  

The percentage gain on this trade is +17.9%, and the reward-to-risk ratio is +$6.42/$8.78 = +0.73.

History (beginning in 2004 and adjusted for 4.18.13 4:1 stock split):
Winning Trades: 4 | 80.0% | +$8.12/share avg.
Losing Trades: 1 | 20.0% | -$0.17/share avg.
Average Trade: +66.9% | +$6.46/share | Reward-to-Risk (R): +1.96
Compound Annual Growth Rate (CAGR): +28.2%
Alpha% (weekly): +0.52%
Sharpe Ratio (weekly): +0.1312

More bells and whistles! 

I added alpha% calculations the last time around because I want to compare the weekly performance of my trades against the benchmark S&P 500 Index.

Now I'm adding a weekly Sharpe Ratio (which I've actually calculated for years) because I like to objectively rank all of the stocks that I trade and/or follow from first to worst in terms of reward and risk. Basic portfolio optimization.

I've started to factor Sortino Ratios into the mix as well (differs from Sharpe in that it only calculates standard deviation below a minimum required rate of return), but let's stick with one new thing at a time for the sake of this blog.

Here are my calculations for alpha% and the Sharpe Ratio:

Total # of weeks (5 trades): 368
Mean Trade Returns (weekly): +0.75%
Mean S&P 500 Returns (weekly): +0.16%
Standard Deviation (weekly): 5.74%
Risk-Free Rate (baseline assumption): 0.0%
Beta (calculation): +1.39
Alpha% (calculation): +0.52%
Sharpe Ratio (calculation): +0.1312

Sunday, May 26, 2013

Crying Over Spilled Milk

In this particular case, the spilled milk is Facebook (FB) stock...

BUY signal the week of 11.26.12 at $28.00. My first stop was $19.07, so my risk (R)/share was $8.93. I was stopped out Friday at $24.31. The percentage loss on this trade was -13.2%, and the reward-to-risk ratio was -$3.69/$8.93 = -0.41.

History (beginning in 2012):
Winning Trades: 0 | 0.0% | +$0.00/share avg.
Losing Trades: 1 | 100.0% | -$3.69/share avg.
Average Trade: -13.2% | -$3.69/share | Reward-to-Risk (R): -0.41
Compound Annual Growth Rate (CAGR): -25.5%
Alpha% (weekly): -1.39%

...and the crying is because I didn't build this sooner. 

If I had, I not only could have/would have/should have avoided both this trade and Zynga, but I also could have/would have/should have picked up: 
  • 3D Systems (DDD) +229.3%
  • Marathon Petroleum (MPC) +86.0%
  • Phillips 66 (PSX) +54.7%
  • Pandora (P) +49.1%
  • Zillow (Z) +58.0%
  • Splunk (SPLK) +6.1%
Granted, I still would have missed out on Caesar's Entertainment (+94.3%), and I guess the LinkedIn trade is working out okay (+47.3%), but that doesn't make me feel a whole lot better.

Wah. Boo hoo. 

Sunday, May 12, 2013

Predictive Analytics

I am going to cut right to the chase.

I had hoped to write something funny about how I don't like predictions, but I don't think anybody actually wants to read that. And I'm not good at writing that kind of stuff anyway.

All I really want to talk about is the table you see below.

In almost all of my trading I use actual past trades or back-testing (or a combination of the two) to make decisions. It's all about probabilities.

But what information should I use to make trading decisions about new stocks that have only recently gone public?

That is the problem I'm trying to solve here.

So the approach/experiment I've chosen is to model the weekly price behavior of 10 stocks that have gone public over the last year and a half (beginning with their IPOs) to see if I can make reasonably accurate predictions about how the stocks will perform after we get a buy signal.   

The table includes the 10 stocks, the dates and prices of their initial buy signals, and their predicted average weekly returns. It also includes the most recent closing prices for all 10 stocks, which we use to compute the actual weekly average returns, actual total returns, and Compound Annual Growth Rates.
  

Company (Symbol)Buy Signal DateBuy Signal PriceClosing Price 5/10/2013Predicted Average Weekly Return %Actual Average Weekly Return %Actual Total Return %CAGR %
3D Systems (DDD)1/30/2012$14.09 $43.85 +0.63%+2.07%+211.2%+144.6%
Marathon Petroleum (MPC)6/25/2012$44.13 $77.38 +0.39%+1.32%+75.3%+91.4%
Phillips 66 (PSX)8/13/2012$42.33 $61.38 +1.15%+1.08%+45.0%+66.3%
Facebook (FB)11/26/2012$28.00 $26.68 -0.00%-0.08%-4.7%-10.3%
Caesars Entertainment (CZR)12/3/2012$7.32 $15.02 -0.90%+4.95%+105.2%+446.8%
LinkedIn (LNKD)1/7/2013$118.00 $173.78 +0.61%+2.49%+47.3%+226.8%
Pandora (P)1/7/2013$11.02 $15.58 +0.06%+2.24%+41.4%+188.4%
Zillow (Z)1/22/2013$35.35 $54.14 +0.74%+3.22%+53.2%+338.3%
Zynga (ZNGA)2/4/2013$3.43 $3.23 -1.16%-0.35%-5.8%-21.4%
Splunk (SPLK)4/8/2013$42.26 $44.89 +0.66%+1.58%+6.2%+119.2%

So what is the table telling us?

A lot. This blog would go on forever if I chose to break down everything it's telling us.

So I'm going to cut to the chase again and look at just 4 simple solutions.

1. The base case. In the interest of full (and embarrassing) disclosure, the first solution is what I've actually done. I took the Facebook, LinkedIn, and Zynga trades, but none of the others. Why those stocks? I honestly don't know. Gut feeling. And my gut feeling is obviously worthless. Heck, I knew that 10 years ago. That's why I use a system to trade. In any case, the result of this approach is an average gain of +12.2%.

2. Take all of the trades. No real decision to make here. The average gain with this approach is +57.4%, so it's already a much better alternative to what I've been doing.

3. Take only the trades with a positive predicted average weekly return. Now we're getting somewhere. This would include Phillips 66, Zillow, Splunk, 3D Systems, LinkedIn, Marathon Petroleum, and Pandora. Our average gain here is +68.5%.

4. But wait, there's more. What if we took only the trades with a positive predicted weekly alpha? This would eliminate Pandora, because it's predicted average weekly return of +0.06% lags the predicted average weekly return of the S&P 500, which is +0.22%. This last approach gives us an average gain of +73.0% across 6 stocks.

Clearly there is some room for improvement regarding my current methodology...