Most people have insurance for their house, car, etc., but what about for stock portfolio management? Yes, it is possible to buy stock insurance for a portfolio of stocks, but don’t call your insurance broker. Personal stock portfolios can be insured using index options, specifically by purchasing index “put” options. In general, as the price of an index declines, the put options for the index increase in value, all else remaining the same. So if the market declines in value, market based indexes will also decline and the corresponding put options will increase in value, effectively hedging or insuring personal stock portfolios against drops in the market.
Diversified?
Even not-so-well-diversified personal stock portfolios may be insurable, for example personal stock portfolios heavily weighted with semiconductor companies can be insured with a semiconductor index and personal stock portfolio weighted with biotechnology companies can be insured with a biotechnology index.
Which Index?
For those with a personal stock portfolio and wishing to have it insured, now comes the million-dollar question: “How do I go about doing it”? The first step is to determine which index options might be appropriate for insuring the portfolio. If the personal stock portfolio is mainly composed of large capitalization stocks, then buying put options for the S&P 500 Index (SPX) or the S&P 100 Index (OEX) might be appropriate. On the other hand, if the personal stock portfolio is mostly composed of high technology stocks, then buying put options for the Nasdaq 100 Index (NDX) might be the best solution. And buying put options for the Russell 2000 Index (RUT) might best insure a personal stock portfolio heavily composed of small capitalization stocks.
Which Put Option?
After selecting the appropriate index or indexes, the next question is: “Which put option should I buy?” The answer to this question depends on how much stock insurance you want or how safe you want your personal stock portfolio to be. Those familiar with car insurance deductibles know the lower the deductible, the higher the insurance premiums, and a similar situation exists for portfolio stock insurance, the smaller the potential pain the more money it costs. So the answer to which put option to purchase depends on the pain threshold of the investor, and varies from investor to investor. But for the sake of example, lets say a given investor’s pain threshold is 5%, so if his or her personal stock portfolio of stocks were to decline more than 5% he/she would have difficulty eating, sleeping, etc.
Example:
Suppose a given investor has a personal stock portfolio composed of large capitalization stocks with a market value of $100,000 and this particular investor has a pain threshold of 5%. Based on these criteria, buying put options for the S&P 500 (SPX) or S&P 100 (OEX) index might be good candidates for this investor. For example, suppose the S&P 500 Index (SPX) is currently trading at 1305 and the S&P 100 Index (OEX) is currently trading at 595, this customer would want to examine buying put options for the S&P 500 Index (SPX) at strike prices around 1240 and around 565 for the S&P 100 Index (OEX) 1240 and 565 representing strike prices 5% less than the current price of the index. Let’s suppose the ask price for the 1240 strike price for next months expiration for the S&P 500 (SPX) is currently $1.75 and the ask price for the 595 strike price for next months expiration for the S&P 100 (OEX) is currently $0.80. The appropriate number of contracts to purchase is based on having enough index options such that when the index drops 5%, the purchased put options for stock insurance increase in about an equal but opposite value to the decrease in the stock portfolio. For this particular example, each 1% drop in the value of the portfolio represents a loss of $1000, so for each 1% drop in the value of the portfolio, the purchased index put options must increase in value by $1000. For the S&P 500 Index (SPX) at the strike price of 1240, a 1% drop in price represents 12.4, so when the S&P 500 Index (SPX) drops from 1240 to 1227.6 it would be desirable for the purchased put options to increase by $1000. Dividing $1000 by 12.4 tells us the number of shares of put options we will need, about 81, but each contract is 100 shares, so 1 contract (representing 100 shares) would be enough to insure this portfolio, and would cost 100 (number of shares in one contract) times $1.75 (ask price of the 1240 S&P 500 Index (SPX) put option) or $175 (excluding brokerage fees and commissions) to insure the portfolio for one month.
# shares required = | value of 1% drop of stock portfolio / value of 1% drop in index |
# shares required = | $1000/12.4 |
# shares required = | ~ 81(one contract is 100 shares, so 81 shares is about 1 contract) |
Cost of stock insurance = | 1 contract * 100 (# shares/ contract) * $1.75 (ask price for 1 share) |
Cost of stock insurance = | $175 |
Similarly for the S&P100 (OEX) a 1% drop in price represents 5.65, so we would need $1000 divided by 5.65 shares or about 177 shares or two contracts. So the cost of insuring with S&P100 index (OEX) put options is 2 contracts times 100 shares per contract times $0.80 (ask price of the S&P 100 565 index put option), for a total cost of $160 (excluding brokerage fees and commissions) to insure the stock portfolio.
# shares required = | value of 1% drop of stock portfolio / value of 1% drop in index |
# shares required = | $1000/5.65 |
# shares required = | ~ 177 (one contract is 100 shares, so 177 shares is about 2 contracts) |
Cost of stock insurance = | 2 contracts * 100 (# shares/ contract) * $0.80 (ask price for 1 share) |
Cost of stock insurance = | $160 |
Since stock insurance with S&P 100 index (OEX) put options is cheaper, we’ll select the S&P 100 index (OEX) put options, and the cost of the stock insurance is $160 divided by the value of the stock portfolio, $100,000 or about 0.16% per month or 1.9% on an annualized basis.
Monthly % cost of stock insurance = | $160/$100,000 |
Monthly % cost of stock insurance = | 0.16% |
Annualized % cost of stock insurance = | 12 * 0.16% |
Annualized % cost of stock insurance = | 1.9% |
Not too high of a price to pay for restful sleep!
Perl Script:
A perl script has been developed to aid in searching for appropriate index put options to purchase for portfolio stock insurance. The execution of the perl script requires three parameters, the desired index for purchasing put options, percent threshold of pain and percent desired break-even point. It is possible to purchase more index put options than necessary and with large market drops it is possible to not only insure against a drop, but also break-even or come out ahead. For the example specified in this article, a possible execution of the script might be:
perl ins.pl OEX -5 -10
The passed parameter “OEX” is the ticker symbol for the S&P 100 index (OEX) “-5” represents a 5% threshold of pain, and “-10” represents a break-even point of 10%. So the script would search for the least costly S&P 100 index (OEX) option to realize a maximum loss of 5% and a break-even point of 10% in the event the market were to drop 10%.
# (c) Copyright Power Financial Group, Inc. All Rights Reserved
#!usr/bin/perl
use LWP::Simple;
if($#ARGV!=2)
{
print “\n usage:\n\n”;
print ” perl ins.pl \n\n”;
print “example: perl ins.pl oex -5 -10\n”;
}
else
{
$sym = uc($ARGV[0]);
$mloss = $ARGV[1];
$ppnt = $ARGV[2];
get_options($sym,$mloss,$ppnt);
close(outfile);
sub get_options
{
$symbol = $_[0];
$max_loss = $_[1];
$prof_pnt = $_[2];
$bars = 1;
if($symbol eq “OEX” || $symbol eq “SPX” )
{
$bars = 2;
}
print “bars = $bars\n”;
$link =
“http://www.marketwatch.com/tools/quotes/options1.asp?siteid=mktw&symb=
$symbol&bars=$bars”;
print “$link\n”;
$content = get($link); #get option chain
@data = split(/
/,$content);
$first = 0;
foreach(@data)
{
if($_ =~ m/Last as of/)
{
@price = split(/NOBR>/,$_);
@price2 = split(/ $curprice = $price2[0];
$curprice =~ s/\,//;
}
if($_ =~ m/Hide/)
{
print “$_\n”;
}
if($_ =~ m/parentsymb=$symbol/)
{
@data2 = split(/lk01\”>/,$_);
@csymb = split(/ @psymb = split(/ $callsymb = $csymb[0];
$putsymb = $psymb[0];
@calldata = split(/bgcolor/,$data2[1]);
@putdata = split(/bgcolor/,$data2[2]);
@callb = split(/NOBR>/,$calldata[4]);
@calla = split(/NOBR>/,$calldata[5]);
@putb = split(/NOBR>/,$putdata[4]);
@puta = split(/NOBR>/,$putdata[5]);
@callb2 = split(/ @calla2 = split(/ @putb2 = split(/ @puta2 = split(/ $callbid = sprintf(“%.2f”,($callb2[0])*1.0);
$callask = sprintf(“%.2f”,($calla2[0])*1.0);
$putbid = sprintf(“%.2f”,($putb2[0])*1.0);
$putask = sprintf(“%.2f”,($puta2[0])*1.0);
@strka = split(/align=center/,$calldata[6]);
@strk = split(/NOBR>/,$strka[1]);
@strk2 = split(/ $strk2[0] =~ s/\,//;
$strike = ($strk2[0])*1.0;
$callavg = sprintf(“%.2f”,($callask+$callbid)/2.0);
$putavg = sprintf(“%.2f”,($putask +$putbid)/2.0);
#print “putavg = $putavg\n”;
if($first==0)
{
$first = $strike;
}
$num = ($strike-$first);
$callbids[$num] = $callbid;
$callasks[$num] = $callask;
$putbids[$num] = $putbid;
$putasks[$num] = $putask;
$strikes[$num] = $strike;
$callavgs[$num] = $callavg;
$putavgs[$num] = $putavg;
$callsymbols[$num] = $callsymb;
$putsymbols[$num] = $putsymb;
}
}
$min_cost = 100;
for($i=0;$i<=$num;$i++)
{
if($strikes[$i] ne "")
{
print "working on strike $strikes[$i] $putsymbols[$i]...\n";
for($j=1;$j<300;$j++)
{
$strike_drop = ($strikes[$i] - $curprice)*100/$curprice;
$strike_diff = $strikes[$i] - $j - $curprice;
$perdrop = $strike_diff*100/$curprice;
if($perdrop > $prof_pnt &&
$strike_drop > $max_loss &&
$curprice > $strikes[$i]
)
{
$cost_ins = (-$perdrop * $putasks[$i])/$j;
if($cost_ins<$min_cost)
{
$min_cost = sprintf("%.2f",$cost_ins);
$min_strike = $strikes[$i];
$min_symb = $putsymbols[$i];
$min_ask = $putasks[$i];
$min_perdrop = sprintf("%.2f",$perdrop);
$minj = $j;
}
}
}
}
}
if($min_ask>0)
{
$num_cont1000 = sprintf( “%.5f”,($min_cost)/($min_ask*10) );
}
for($j=0;$j<$minj;$j++)
{
$insur = $min_cost*$j/$min_ask;
$lossper = ($min_strike - $j - $curprice)*100/$curprice;
$loss = sprintf("%.2f",$lossper + $insur);
$price = $min_strike - $j;
print "$price $loss%\n";
}
print "current price of $symbol = \$$curprice\n";
print "put symbol = $min_symb strike = \$$min_strike\n";
print "ask price of put to buy \$$min_ask\n";
print "cost_ins = $min_cost%\n";
print "#cont/\$1000 = $num_cont1000\n";
for($i=1;$i<11;$i++)
{
$inv = $i*10000;
$numcont = sprintf("%0.1f",$i*10*$num_cont1000);
$totcost = sprintf("%0.2f",$numcont * $min_ask * 100);
print "for \$$inv buy $numcont contracts";
print " total cost = \$$totcost\n";
}
}
}
[tags]stock portfolio management, personal stock portfolio, index options, stock insurance[/tags]