Strangle / straddle kalkulator

Vstup

Spotova cena:
Call strike: Put strike:
Call expirace [YYYYMMDD]: Put expirace [YYYYMMDD]:
Call impl. volat. [%]: Put impl. volat. [%]:
Call pomer odberu: Put pomer odberu:
Call koef. meny: Put koef. meny:
Bezrizikova urokova mira [%]: Procentualni podil callu [%]:
<< Zpet
Vysledky\n"; echo "\n"; // Print first row echo ""; $startdate = time(); $cexp = intval($cexpt); $pexp = intval($pexpt); $cexpd = mktime(12, 0, 0, intval($cexp/100)%100, $cexp%100, intval($pexp/10000)-1900); $pexpd = mktime(12, 0, 0, intval($pexp/100)%100, $pexp%100, intval($pexp/10000)-1900); $stopdate = min($cexpd, $pexpd); // echo "cexp=$cexp, pexp=$pexp, cexpd=$cexpd, pexpd=$pexpd, stopdate=".strftime("%d. %m. %Y",$stopdate)."
\n"; for($date = $startdate; $date < $stopdate; $date += 30*86400) { echo ""; } echo "\n"; // Get values $spot = doubleval($spott); $cx = doubleval($cxt); $px = doubleval($pxt); $cratio = doubleval($cratiot); $pratio = doubleval($pratiot); $ccurc = doubleval($ccurct); $pcurc = doubleval($pcurct); $cvol = doubleval($cvolt)/100; $pvol = doubleval($pvolt)/100; $rfrate = doubleval($rfratet)/100; $callRatio = doubleval($cperct)/100; // Compute current price & portfolio // echo "spot=$spot, cx=$cx, rfrate=$rfrate, cvol=$cvol, cratio=$cratio, ccurc=$ccurc, t=".getT($startdate, $cexpd)."
\n"; $csprice = BlackScholes('c', $spot, $cx, getT($startdate, $cexpd), $rfrate, $cvol) * $cratio * $ccurc; $psprice = BlackScholes('p', $spot, $px, getT($startdate, $pexpd), $rfrate, $pvol) * $pratio * $pcurc; $ncall = $callRatio / $csprice; $nput = (1-$callRatio) / $psprice; // echo "ncall=$ncall, nput=$nput
\n"; // Print data $rowNo = 1; for($vc = 8; $vc >= -8; $vc--) { $perc = ($cvol+$pvol)*$vc/8*100; $price = $spot * (1+$perc/100); printf("\n", $price, ($perc>=0?"+":""), intval($perc)); for($date = $startdate; $date < $stopdate; $date += 30*86400) { if ($date == $startdate) { // Initial prices $cprice = $csprice; $pprice = $psprice; } else { // Compute prices $cprice = BlackScholes('c', $price, $cx, getT($date, $cexpd), $rfrate, $cvol) * $cratio * $ccurc; $pprice = BlackScholes('p', $price, $px, getT($date, $pexpd), $rfrate, $pvol) * $pratio * $pcurc; } $pval = $cprice*$ncall + $pprice*$nput; printf("\n", $pprice, $cprice, $pval); } $rowNo = 1 - $rowNo; echo "\n"; } echo "
Spot cena".strftime("%d. %m. %Y", $date)."
%.2f [%s%d%%]
P%.2f
\nC%.2f
%.2f\n
\n"; } ?>

Napoveda

Obecne

Pocita teoreticky vykon straddle / strangle kombinace warrantu / opci na zaklade Black-Scholesova modelu.

Pokud je parametr u call i put, staci vyplnit jeden, pokud je druhy prazdny, doplni se z prvniho.

Parametry

Vysledky

Vysledky jsou ve forme tabulky, kde je dana hodnota warrantu a portfolia (straddle / strangle) pro dane casove okamziky a spotovou cenu. Data jsou po triceti dnech, od aktualniho okamziku do expirace warrantu.

Spot hodnot aktiva je vzdy devet, od aktualni hodnota + 2x implicitni volatilita do aktualni hodnota - 2x implicitni volatilita.

V bunce je: Hodnoty v druhem sloupecku - aktualni datum - jsou vzdy pro aktualni spotovou cenu, ne pro cenu urcenou v prvnim sloupecku. Proto jsou vsechny stejne. Pokud jste spravne vyplnili pomer odberu a koeficient meny, muzete tyto hodnoty vyuzit pro kontrolu aktualni ceny, za kterou emitent warranty nabizi.