QF5211 Lecture05 (2025) - Notes
QF5211 Lecture05 (2025) - Notes
Mathematical Finance
Lecture 07:
i Importance sampling
The method of mode matching; the cross-entropy method
Introduction
Consider the problem of estimating the expected value
µ = E[h(X)].
f
Suppose X has the density f(x).
• Plain MC: draw iid samples from f(x), then compute the sample
average of h(x).
• Importance sampling: For arbitrary density g(x), we have
f (x) f (Y )
µ= h(x)f (x)dx = h(x) · g(x)dx = E h(Y ) ,
g(x) g(Y )
R R
g
where Y is a random variable with density g .
Draw iid samples from the density !, then compute the sample
average of ℎ(#)$(#)/!(#).
The weight $(#)/!(#) is called the likelihood ratio.
M E
g
Chen fi
MT
Generate in samples from the distribution
dep
of T
Y 72 Tn
Mn i
I
i
hiki
4
Variance of Mn
Varna Van En
É hiii
s I
É varlet fi
In Var chis gg
me O
g y c b ly fly
v
Vantil I Var E o
s
f chest fini dy c
In
gty.fm
i
R y
Introduction
q E Ch
Importance sampling for discrete random variables:
Suppose ! is a discrete random variable with distribution
P(X = xk ) = p(xk ), k = 1, 2, · ref
·· x x
Let " be an alternative random variable with probability
distribution or x y I
P(Y = xk ) = p̄(xk ), k = 1, 2, · · ·
Importance sampling: Generate iid samples for ", then use the
sample average of
p(Y )
h(Y ) ·
p̄(Y )
as the estimate.
How to choose the alternative distribution?
Principle of choosing alternative distributions:
The use of the alternative distribution should reduce the variance of
the estimate as much as possible.
The variance of the importance sampling estimate is
n
1 f(Yi ) 1 f(Y )
Var h(Yi ) · = Var h(Y ) · .
n i=1
g(Yi ) n g(Y )
– Mode matching
– Cross-entropy method
matching
Match the mode of 9 x with mode of h x fix
I unto
Y info
Q argmax h x fix
x
441 fix 0 O
Into.tn x
y nfo.im a
ti ti x e x
all o
k 2 m
O Oz On
Normal Distributions
N O 1
Example 1: Estimate tail probability
Plain MC:
– Generate iid samples from $(0,1)
– Compute the sample average of 1{X>a}
Importance sampling:
– Generate iid samples from $(%,1) , where %=max(#, 0)
– Compute the sample average of
f (X) 1
1{X>a} · = 1{X>a} · exp X+ 2
f (X) 2
M P x at
El Lix all
of
E
g City as
Y N o 1
h x fix
O arguex
x
t a
h lx text
Ig a
fix
f O XE c
D a a o
I
Example 1: Estimate tail probability
300 300
a s
N O 1
200 200 a 5
100 100
0
−5 0
f5 0
−8 −6 −4 −2 0
x
2 4 d 6 8
x
d
Figure: Plain MC (left) and importance sampling (right). E
a = 5, N = 10000, exact value = 2.867 10 7
Plain MC estimate =0, IS estimate = 2.838 10 7
Example 2: Mode Matching for Binary Call
St Z K E
X leg er tilt
MEEE 1 Is
kl
r
e E C Lz x eat
Example 2: Mode Matching for Binary Call
Importance sampling scheme:
• The price of the option can be written as
v=E e rT
1{ST ⇥K} = E e rT
1{X⇥b} := E[h(X)],
ha ha e
rt
sett FX
n étx
Y nta.IT fix
h t
O arg
x
y mode marching
ha Lex
0
Example 3: Mode Matching for European Call
• Solve for ;
• For i = 1, 2, · · · , n
generate a sample Y from N ( , 1)
set Hi = h(Y ) exp Y + 2 /2 a
n
1
• Compute the estimate v̂ = Hi
n i=1
n
1
• Compute the standard error S.E. = Hi2 nv̂ 2
n(n 1) i=1
Extension to General Distributions
or i of
Pfx if P PS x o i p
Y Bernoulli
or i ol
p f y 11 p P 37 01 i f
f Prob 7 11 Egg É r
É
e f Pros 14 01
Ed P
d p
o o
E eat p t i p p ed i p
Example 4: Application to Risk Analysis
T
joint dist of Xi Yz Xm
1111
L
Importance sampling
Xie f t
of le 1,2 m
g Tp
P
Tk 1 o f
t
pi i pi
d.me
pi
É O
Choice of O
Recall E
me Rob X sa
f Ipx all
X n n lo I
Y N o d
ECT a a a
É
g
For the current problem
M E C 11L Cx xm x
E I Likelihood ratio
f L y em say
E E Y x
Z E Che x
I 1
pi t o i
pi x
Pic x
k
É o
Likelihood ratio
is a 1
111,4ft It
is Y
Ifi
o
I I 1
Example 4: Application to Risk Analysis
Important sampling scheme:
• Choose the alternative sampling distribution from the exponential
tilt family: Let Yk ’s be independent Bernoulli random variables
such that
1 pk e
p̄k = P(Yk = 1) = e · P(X k = 1) = ,
E[e Xk ] 1 + pk (e 1)
P(Yk = 0) = 1 p̄k , k = 1, 2, · · · , m
• The likelihood ratio is
m yk 1 yk
pk 1 pk
R(y1 , · · · , ym ) =
p̄k 1 p̄k
k=1
= E 1{L̄>x} e 2 L̄+2⇥( )
, E[H 2 ] e 2 x+2⇥( )
.
m
where ⇥( ) = log 1 + pk (e 1) .
k=1
Minimize the upper bound to determine :
min 2 x + 2⇥( ) ⇥ ( ) = x.
Example 4: Application to Risk Analysis
Algorithm (importance sampling):
• Solve ⇥ ( ) = x for ;
• Compute the corresponding p̄k for k = 1, · · · , m
• For i = 1, 2, · · · , n
generate Yk from Bernoulli with parameter p̄k for k = 1, · · · , m
set L = Y1 + · · · + Ym Likelihood rasio
a Is xp
Yk 1 Yk
m pk 1 pk
set Hi = k=1 p̄k 1 p̄k if L > x; otherwise Hi = 0
n
1
• Compute the estimate v̂ = Hi
n i=1
n
• Compute the standard error S.E. = 1
Hi2 nv̂ 2
n(n 1) i=1
Example 4: Application to Risk Analysis
n = 10000
X=20: PIL a
= 2.0726e 01, v = 1.4653e 01, se = 1.9288e 03
<latexit sha1_base64="bYgq8ofRjeMu6WGv5jplWR8F6Dk=">AAACfHicfVHbSiNBEO0Z11vWS9RHX5oNgtehJ2NifBBEX/ZRwaxCJoSeTsU09lzsrhHCkL/wy/Ztf8UX7VyQrIoFDYdTp05VV0WZkgYZ++e4cz/mFxaXlks/V1bX1ssbm39MmmsBTZGqVN9F3ICSCTRRooK7TAOPIwW30cPlKH/7BNrINLnBQQbtmN8nsicFR0t1ys8h9gE5PaNVj51U63DE/MPwMedd+nTme8f1WjBDFeG4YxGpHIYGrOC02mhYQTCkYVh692Ies2F5NuNV8wP2jVfg1RpBfezVKVcmDozRz8CfggqZxlWn/DfspiKPIUGhuDEtn2XYLrhGKRQMS2FuIOPigd9Dy8KEx2Daxbj/kO5Ypkt7qbYvQTpmZysKHhsziCOrjDn2zcfciPwq18qx12gXMslyhERMGvVyRTGlo1PQrtQgUA0s4EJLOysVfa65QHuwkl2C//HLn0Gz6p167Pq4cn4x3cYS2Sa/yC7xyQk5J7/JFWkSQV4c6uw5+86ru+MeuEcTqetMa7bIf+HW3wDAArfb</latexit>
= 0.0000e 00, v = 1.5130e 01, se = 3.5836e 03
X=40: PIL Got
= 9.2128e 01, v = 1.4905e 07, se = 3.8022e 09
<latexit sha1_base64="etwFLmzHOvQQNoIQK60Q5gtd5D0=">AAACfHicbVFNTxsxEPUu5SstENojF6sREuVj5V2gJIdIqL30SCVSkLJR5HUmxML7gT2LFK32X/DLeuOvcAEnWVGaMJKl5zdv3tgzUaakQcYeHXfpw/LK6tp67eOnjc2t+vbnPybNtYCOSFWqryNuQMkEOihRwXWmgceRgqvo9uckf3UP2sg0ucRxBr2Y3yRyKAVHS/XrDyGOADlt05YX+EETjph/GN7lfEDv27530mKnljqrqCKcdiwilUNpoH3sNVkQWEGrpGFYe/ViHrMBB4y9ei1Q817/BGW/3pjdGKOLwK9Ag1Rx0a//DQepyGNIUChuTNdnGfYKrlEKBWUtzA1kXNzyG+hamPAYTK+Y9i/prmUGdJhqexKkU/ZtRcFjY8ZxZJUxx5GZz03I93LdHIfNXiGTLEdIxKzRMFcUUzpZBR1IDQLV2AIutLRvpWLENRdoF1azQ/Dnv7wIOoHX8tjvk8b5j2oaa2SHfCV7xCdn5Jz8IhekQwR5cqjzzdl3nt1d98A9mkldp6r5Qv4L9/sLgdy3sg==</latexit>
= 0.0000e + 00, v = 0.0000e + 00, se = 0.0000e + 00
1
= g (x) log g (x)dx h(x)f (x) log f (x)dx.
R µ R
Therefore, d f
min R(g f ) max
IP
h(x)f (x) log f (x)dx.
R
m Ecg
f
The Cross-Entropy Method
• The maximizer is the solution to the equation
⇥ ⇥
0= E[h(X) log f (X)] = E h(X) log f (X) .
⇥ ⇥
of
• Replace the expected value by sample average:
N
1 ⇥
0= h(Xk ) log f (Xk ),
N ⇥
k=1
where Xk ’s are iid copies of X.
• The above equation can be exactly solved for normal distributions:
Suppose f (x) is the density of N (0, Im ) , f (x) is the density of
N ( , Im ), where = ( 1 , · · · , m ) Rm, then the solution is
N
ˆ= k=1 h(Xk )Xk
N
, GRM
k=1 h(Xk )
Y n a
go y
E x 05
Go x e
O I É ha GE I ix or
o
Ég
Algorithm
Algorithm:
• Generate N iid pilot samples X1 , · · · , XN from density f (x);
• Compute the optimal tilting parameter ˆ ;
• For i = 1, 2, · · · , n
generate Yi from the alternative sampling density f ˆ(x)
set Hi = h(Yi ) · f (Yi )
f ˆ(Yi )
n
• Compute the estimate v̂ = 1 Hi
n i=1
n
1
• Compute the standard error S.E. = Hi2 nv̂ 2
n(n 1) i=1
Example 5: the CE method for European call
Algorithm:
• Generate N iid pilot samples X1 , · · · , XN from density N (0, 1)
• Set ˆ = N k=1 h(Xk )Xk /
N
k=1 h(Xk )
• For i = 1, 2, · · · , n
generate Yi from the alternative sampling density N ( ˆ, 1)
set Hi = h(Yi ) exp ˆYi + ˆ2 /2
n
• Compute the estimate v̂ = 1 Hi
n i=1
n
1
• Compute the standard error S.E. = Hi2 nv̂ 2
n(n 1) i=1
Example 5: the CE method for European call
Experiment with parameters
S0 = 50, r = 0.05, = 0.2, T = 1
N = 2000 pilot samples
n = 10000 samples in importance sampling
K=60:
<latexit sha1_base64="Yiv/E2rPIDCG12apGdMogkGeMZY=">AAACK3icbVDLSgNBEJz1GeMr6tHLYBAENcxKSMxBEL14jGCMkA1hdtIxg7MPZ3qFsOSDvPgrgngw4tX/cJLswVfBQHVVN91TfqykQcZGzszs3PzCYm4pv7yyurZe2Ni8NlGiBTREpCJ943MDSobQQIkKbmINPPAVNP2787HffABtZBRe4SCGdsBvQ9mTgqOVOoVzD/uA/MQtVSvl6oF3n/AufbBlxa2WYZ+xTEq9ya7UVwkMDdgGVjuuwCE7GtJOochKbAL6l7gZKZIM9U7hxetGIgkgRKG4MS2XxdhOuUYpFAzzXmIg5uKO30LL0pAHYNrp5IAh3bVKl/YibV+IdKJ+n0h5YMwg8G1nwLFvfntj8T+vlWDvuJ3KME4QQjFd1EsUxYiOk6NdqUGgGljChZb2Vir6XHOBNt+8DcH9/eW/pHFUqpXYZbl4epalkSPbZIfsEZdUySm5IHXSIII8kmfyRkbOk/PqvDsf09YZJ5vZIj/gfH4B2+ij7g==</latexit>
= 1.7647, v = 1.6174e + 00, se = 1.0986e 02
<latexit sha1_base64="zeloWIgTGDS+INOdrA4DynbJVHM=">AAACK3icbVDJSgNBFOxxjXGLevTSGARBHXpC3A4B0YtHBaNCJoSezotp0rPY/SYQhnyQF39FEA8qXv0POwviVtBQVL3iva4gUdIgY6/OxOTU9Mxsbi4/v7C4tFxYWb0ycaoFVEWsYn0TcANKRlBFiQpuEg08DBRcB53TgX/dBW1kHF1iL4F6yG8j2ZKCo5UahVMf24C8wlxmsePfpbxJuxXP3dvf82D7S8r84a4sUCn0DVTKrlfeL8EuK/Vpo1AcxRmjf4k3JkUyxnmj8OQ3Y5GGEKFQ3JiaxxKsZ1yjFAr6eT81kHDR4bdQszTiIZh6NjygTzet0qStWNsXIR2q3xMZD43phYGdDDm2zW9vIP7n1VJsHdYzGSUpQiRGi1qpohjTQXO0KTUIVD1LuNDS3kpFm2su0PabtyV4v7/8l1RL7pHLLsrF45NxGzmyTjbIFvHIATkmZ+ScVIkg9+SRvJBX58F5dt6c99HohDPOrJEfcD4+AaRPo80=</latexit>
= 0.0000, v = 1.5651e + 00, se = 4.1462e 02
K=100:
<latexit sha1_base64="hT+lO7jv0W4zelNrHurrW8PlNag=">AAACK3icbVDJSgNBEO2Je9yiHr00BsGDhs6iMYdA0ItHBaNCJoSeTiVp0rPYXSOEIR/kxV8RxIOKV//DTpyD24OGV69eUdXPi5Q0yNirk5mZnZtfWFzKLq+srq3nNjavTBhrAU0RqlDfeNyAkgE0UaKCm0gD9z0F197wdNK/vgNtZBhc4iiCts/7gexJwdFKndypiwNAXi8XqrVqZd+9jXmX3tVLhQo7qsIBK6dS4k53JZ6KYWzA+hkr16zhcEw7uTyz5QT0LymmJE9SnHdyT243FLEPAQrFjWkVWYTthGuUQsE468YGIi6GvA8tSwPug2kn0wPGdNcqXdoLtX0B0qn6fSLhvjEj37NOn+PA/O5NxP96rRh7x+1EBlGMEIivRb1YUQzpJDnalRoEqpElXGhpb6ViwDUXaPPN2hCKv7/8lzRLhVqBXVTyjZM0jUWyTXbIHimSKmmQM3JOmkSQe/JIXsir8+A8O2/O+5c146QzW+QHnI9P44ej8g==</latexit>
= 3.7974, v = 2.4067e 03, se = 3.0039e 05
<latexit sha1_base64="TNxs2vQwivLFcUt+5Se52q4gqOM=">AAACK3icbVDLSgMxFM34tr6qLt0Ei+BCh0yrqItCsRuXClaFTimZ9NaGZh4md4Qy9IPc+CuCuFBx63+YtrPwdSBwOOdc7s0JEiUNMvbmTE3PzM7NLywWlpZXVteK6xtXJk61gIaIVaxvAm5AyQgaKFHBTaKBh4GC66BfH/nX96CNjKNLHCTQCvltJLtScLRSu1j3sQfIq8xlFnv+Xco79L5acU/YoQf7rJJLmT/elQUqhaGBatktV9jBKDCk7WJpMs4Y/Uu8nJRIjvN28dnvxCINIUKhuDFNjyXYyrhGKRQMC35qIOGiz2+haWnEQzCtbHzAkO5YpUO7sbYvQjpWv09kPDRmEAY2GXLsmd/eSPzPa6bYPW5lMkpShEhMFnVTRTGmo+ZoR2oQqAaWcKGlvZWKHtdcoO23YEvwfn/5L2mU3ROXXRyUaqd5Gwtki2yTXeKRI1IjZ+ScNIggD+SJvJI359F5cd6dj0l0yslnNskPOJ9fpNujzQ==</latexit>
= 0.0000, v = 3.9051e 03, se = 2.2304e 03
Matlab code: option_European_CE.m
Example 5: the CE method for European call
K = 120:
<latexit sha1_base64="qU8l83rwLp2J2T4i6tgMeeq1k9Y=">AAACDXicbZC7SgNBFIZnvcZ4i1raDIaAhYSNCGoRCNpYhQhGhWwIZycnZnD24sxZISx5AhtfxcZCxdbezrdxNga8xB8GvvnPOcyc34+VNOS6H87U9Mzs3HxuIb+4tLyyWlhbPzdRogU2RaQifemDQSVDbJIkhZexRgh8hRf+9XFWv7hFbWQUntEgxnYAV6HsSQFkrU6h5FEfCXiV16G+490k0OW31W82mF06haJbdkfik1AZQ5GN1egU3r1uJJIAQxIKjGlV3JjaKWiSQuEw7yUGYxDXcIUtiyEEaNrpaJ0hL1mny3uRtickPnJ/TqQQGDMIfNsZAPXN31pm/ldrJdQ7aKcyjBPCUHw91EsUp4hn2fCu1ChIDSyA0NL+lYs+aBBkE8zbECp/V56E5m75sOye7hVrR+M0cmyTbbFtVmH7rMZOWIM1mWB37IE9sWfn3nl0XpzXr9YpZzyzwX7JefsE0SGaRA==</latexit>
= N aN, v = N aN, se = N aN
1
= Stk exp r 2
(tk tk 1) + tk tk 1 Zk
1
2
where Z1 , · · · , Zm are iid standard normal random variables.
N
ˆ= i=1 h(Xi )Xi
N
.
i=1 h(Xi )
Example 6 : The CE method for Asian option
• For k = 1, 2, · · · , N
for j = 1, 2, · · · , m
generate Zj from N (0, 1)
set Stj = Stj 1 exp r 2
/2 (tj tj 1) + tj tj 1 Zj
set Hk = e rT
(S̄ K)+
N
• Set ˆ = ( ˆ1 , · · · , ˆm ) = k=1 Hk Xk
N
k=1 Hk
Example 6 : The CE method for Asian option
Algorithm (cross-entropy):
• Compute the tilting parameter using pilot samples
• For i = 1, 2, · · · , n
for j = 1, 2, · · · , m
generate Yj from N ( ˆj , 1)
set Stj = Stj 1 exp r 2
/2 (tj tj 1 ) + tj tj 1 Yj
n
• Compute the estimate v̂ = 1
n i=1 Hi
n
1
• Compute the standard error S.E. = Hi2 nv̂ 2
n(n 1) i=1
Example 6 : The CE method for Asian option
Experiment with parameters
S0 = 50, r = 0.05, = 0.2 T = 1, m = 12, ti = i/m
N = 2000, n = 10000
K=50:
v = 3.0722e + 00,
<latexit sha1_base64="EMyFFqcayuN9JI7E0+p7V+dTfUk=">AAACGHicbVDLTgIxFO34RHyhLt00EhMTddIZMeiChOjGJSYiJEBIp1ygofOw7ZCQCb/hxl9x40KNW3b+jeWxUPAkNzk559723uNFgitNyLe1tLyyurae2khvbm3v7Gb29h9VGEsGZRaKUFY9qkDwAMqaawHVSAL1PQEVr3c79it9kIqHwYMeRNDwaSfgbc6oNlIzQ/qFC5vkXRdOCTmrP8W0hZP65N3EEzEMsYICduxLks/BOXGHzUyW2GQCvEicGcmiGUrNzKjeClnsQ6CZoErVHBLpRkKl5kzAMF2PFUSU9WgHaoYG1AfVSCYbDPGxUVq4HUpTgcYT9fdEQn2lBr5nOn2qu2reG4v/ebVYt68aCQ+iWEPAph+1Y4F1iMcx4RaXwLQYGEKZ5GZXzLpUUqZNmGkTgjN/8iIpu/a1Te5z2eLNLI0UOkRH6AQ5KI+K6A6VUBkx9Ixe0Tv6sF6sN+vT+pq2LlmzmQP0B9boB3G4nQs=</latexit>
se = 1.5074e 02
v = 3.1192e + 00,
<latexit sha1_base64="y4ehYKeXdVP0f0FkA8NxliciCaE=">AAACGHicbVBNS0JBFJ1nX2ZfVss2QxIE1WPeSygXgtSmpUGmoCLzxqsOzvtoZp4gD/9Gm/5KmxYVbd31bxo/FqUduHA4596Ze48XCa40Id9WamV1bX0jvZnZ2t7Z3cvuHzyqMJYMKiwUoax5VIHgAVQ01wJqkQTqewKqXv924lcHIBUPgwc9jKDp027AO5xRbaRWlgyKl7bjFFw4I+S88RTTNk4a03cTT8QwwgqKOG+7eVKAC+KOWtkcsckUeJk4c5JDc5Rb2XGjHbLYh0AzQZWqOyTSzYRKzZmAUaYRK4go69Mu1A0NqA+qmUw3GOETo7RxJ5SmAo2n6u+JhPpKDX3PdPpU99SiNxH/8+qx7lw3Ex5EsYaAzT7qxALrEE9iwm0ugWkxNIQyyc2umPWopEybMDMmBGfx5GVSce2CTe7zudLNPI00OkLH6BQ56AqV0B0qowpi6Bm9onf0Yb1Yb9an9TVrTVnzmUP0B9b4B3gjnQ8=</latexit>
sha1_base64="bc7eh2/3vltQbBGUTaMbC6iE2Xw=">AAAB43icbVBNS8NAEJ34WeNX9eplsQieSuJFvQlePFYwttCGstls2qWb3bA7EUroH/DgRfHqf/Lmv3H7AWrrg4HHezPMzEsKKSwGwZe3tr6xubVd2/F39/z9g8P60aPVpWE8Ylpq00mo5VIoHqFAyTuF4TRPJG8no9up337ixgqtHnBc8DinAyUywSg6qdWvN4JmMANZJeGCNGCBfv2zl2pW5lwhk9TabhgUGFfUoGCST/xeaXlB2YgOeNdRRXNu42p25oScOSUlmTauFJKZ+nuiorm14zxxnTnFoV32puJ/XrfE7CquhCpK5IrNF2WlJKjJ9GeSCsMZyrEjlBnhbiVsSA1l6JLxXQbh8serJLpoXjeD+58soAYncArnEMIl3MAdtCACBik8w6s39F68N+993rjmLSaO4Q+8j2+HZIrV</latexit>
sha1_base64="QnUEiIBAulIC5clHBA0Leqz3Zcs=">AAACGHicbVDLSgNBEOz1bXxFPXoZDIKgLrMxoDkEBC8eIxgjZEOYnXR0cPbhzKwQlvyGF3/FiwcVr7n5N042AZ8FDUVV90x3BYkU2lD64UxNz8zOzS8sFpaWV1bXiusblzpOFccGj2WsrgKmUYoIG0YYiVeJQhYGEpvB7enIb96j0iKOLkw/wXbIriPRE5wZK3WK9L526HpetYx7lO77dynrkszP380CmeKAaKyRiluu0Coe0PKgUyxRl+Ygf4k3ISWYoN4pDv1uzNMQI8Ml07rl0cS0M6aM4BIHBT/VmDB+y66xZWnEQtTtLN9gQHas0iW9WNmKDMnV7xMZC7Xuh4HtDJm50b+9kfif10pN77idiShJDUZ8/FEvlcTEZBQT6QqF3Mi+JYwrYXcl/IYpxo0Ns2BD8H6f/Jc0ym7VpedfYcACbME27IIHR3ACZ1CHBnB4gCd4gVfn0Xl23pz3ceuUM5nZhB9whp9PiZyJ</latexit>
sha1_base64="C9toxqz8+MlxzUaCYLwSVNw3c3Q=">AAACGHicbVBNS0JBFJ1nX2ZfVss2QxIE1WPeSygXgtSmpUGmoCLzxqsOzvtoZp4gD/9Gm/5KmxYVbd31bxo/FqUduHA4596Ze48XCa40Id9WamV1bX0jvZnZ2t7Z3cvuHzyqMJYMKiwUoax5VIHgAVQ01wJqkQTqewKqXv924lcHIBUPgwc9jKDp027AO5xRbaRWlgyKl7bjFFw4I+S88RTTNk4a03cTT8QwwgqKOG+7eVKAC+KOWtkcsckUeJk4c5JDc5Rb2XGjHbLYh0AzQZWqOyTSzYRKzZmAUaYRK4go69Mu1A0NqA+qmUw3GOETo7RxJ5SmAo2n6u+JhPpKDX3PdPpU99SiNxH/8+qx7lw3Ex5EsYaAzT7qxALrEE9iwm0ugWkxNIQyyc2umPWopEybMDMmBGfx5GVSce2CTe5JrnQzTyONjtAxOkUOukIldIfKqIIYekav6B19WC/Wm/Vpfc1aU9Z85hD9gTX+AXbjnQs=</latexit>
se = 4.2409e 02 (Plain MC)
K=70:
v = 1.7195e
<latexit sha1_base64="z5jEIVoaf5m2IG8lbiVow4hNNPU=">AAACF3icbVDLTgIxFO3gC/E16tJNIzFxoThDIMiChOjGJSYiJMyEdMoFGjoP2w4JmfAZbvwVNy7UuNWdf2N5LBS8SZPTc869vT1exJlUlvVtpFZW19Y30puZre2d3T1z/+BehrGgUKchD0XTIxI4C6CumOLQjAQQ3+PQ8AbXE70xBCFZGNypUQSuT3oB6zJKlKba5sWwYudKdrkI51b+zHmISQcnznRu4vEYxlhCpZizrFJZOwrjtpm19G1SeBnYc5BF86q1zS+nE9LYh0BRTqRs2Vak3IQIxSiHccaJJUSEDkgPWhoGxAfpJtMFxvhEMx3cDYU+gcJT9ndHQnwpR76nnT5RfbmoTcj/tFasupduwoIoVhDQ2UPdmGMV4klKuMMEUMVHGhAqmN4V0z4RhCqdZUaHYC9+eRnU87lyzrotZKtX8zTS6Agdo1NkoxKqohtUQ3VE0SN6Rq/ozXgyXox342NmTRnznkP0p4zPHy12nPQ=</latexit>
02, se = 5.0079e 04
v = 2.1344e
<latexit sha1_base64="qXMhOh062gVXyW6imM7FtasV88Y=">AAACF3icbVDLTgIxFO3gC/GFunTTSExc6DgD+GBBQnTjEhMREoaQTucCDZ2HbYeETPgMN/6KGxdq3OrOv7E8FoqepMnJOee2t8eNOJPKsr6M1MLi0vJKejWztr6xuZXd3rmTYSwo1GjIQ9FwiQTOAqgppjg0IgHEdznU3f7V2K8PQEgWBrdqGEHLJ92AdRglSkvt7MmgnDftQrEIx1b+yLmPiYcTZ3Jv4vIYRlhCuWCentklnSiM2tmcZVoT4L/EnpEcmqHazn46XkhjHwJFOZGyaVuRaiVEKEY5jDJOLCEitE+60NQ0ID7IVjJZYIQPtOLhTij0CRSeqD8nEuJLOfRdnfSJ6sl5byz+5zVj1bloJSyIYgUBnT7UiTlWIR63hD0mgCo+1IRQwfSumPaIIFTpLjO6BHv+y39JLW+WTOummKtcztpIoz20jw6Rjc5RBV2jKqohih7QE3pBr8aj8Wy8Ge/TaMqYzeyiXzA+vgEhjZzt</latexit>
02, se = 3.5619e 03 (Plain MC)
b=1/(sigma*sqrt(T))*(log(K/s0)-(r-sigma^2/2)*T);
theta=max(b,0); % tilting parameter
F=s0*exp(-0.5*sigma^2*T+sigma*sqrt(T)*theta)*(sigma*sqrt(T)-theta) …
+exp(-r*T)*K*theta;
day fhlxl.fm I 0
Matlab function for example 4
(Application to Risk Analysis)
function [v, se] = credit_risk_IS(m, c, p, x, n)
% m: number of obligors; c(1:m): the loss from default
% p(1:m): probability of default; x: threshold; n - sample size.
f=@(theta)fun(theta, p, x); % define a function handle f
if x <= sum(c.*p)
theta=0; % use plain MC if x is not large
else
theta = fzero(f, 10); % find the zero of f;
end
pbar = p* exp(theta)./(1+ p*(exp(theta)-1)); % titled probability mass function
for i=1:n
y=rand(m,1)<=pbar; % iid samples from the tilted Bernoulli distribution
L =sum(c.*y); % total loss
lr=prod(((p./pbar).^y).*(((1-p)./(1-pbar)).^(1-y))); %likelihood ratio
H(i)=(L>x)*lr;
end
Matlab function for example 4
(Application to Risk Analysis)
v = sum(H)/n; % MC estimate
se = sqrt((sum(H.^2) - n*v^2)/n/(n-1)); % estimate of the standard error
function F=fun(theta, p, x)
F=sum(p*exp(theta)./(1+p*(exp(theta)-1))) -x;
Matlab function for example 5
(The CE method for European call)
function [v, se, vexact] = option_European_CE(s0, r, sigma, T, K, n)
% s0 - initial stock price; r - risk-free interest rate;
% sigma - volatility; T - terminal time; K - strike price; n - sample size.
h=@(x)payoff(x,s0,r,sigma,T,K); % define a handle for the discounted payoff function
% compute the titling parameter using pilot samples
N=2000; x=randn(N,1); tmp=h(x);
theta = sum(tmp.*x)/sum(tmp);
y=theta+randn(n,1); % iid samples from the tilted distribution
H=h(y).*exp(-theta*y+theta^2/2); % discounted payoff x the likelihood ratio
v = sum(H)/n; % MC estimate of the value of the option
se = sqrt((sum(H.^2) - n*v^2)/n/(n-1)); % estimate of the standard error
% exact value from Black-Scholes formula
tmp=1/(sigma*sqrt(T))*log(K/s0)+(sigma/2-r/sigma)*sqrt(T);
vexact=s0*normcdf(sigma*sqrt(T)-tmp)-K*exp(-r*T)*normcdf(-tmp);
fprintf('\n theta=%8.4e, v=%8.4e, se=%8.4e, vexact=%8.4e\n',theta, v, se, vexact);
Matlab function for example 5
(The CE method for European call)
function h = payoff(x,s0,r, sigma, T, K)
h=max(s0*exp(-0.5*sigma^2*T+sigma*sqrt(T)*x)-exp(-r*T)*K, 0);
Matlab function for example 6
(The CE method for Asian option)
function [v, se] = option_asian_CE(s0, r, sigma, T, m, K, n)
% s0 - initial stock price; r - risk-free interest rate;
% sigma - volatility; T - terminal time; m - number of monitor dates;
% K - strike price; N: number of pilot samples; n - sample size.
t=[0: 1/m: 1]*T; % m monitoring dates
dt=t(2:m+1)-t(1:m);
% compute the tilting parameter using the basic cross entropy method
tmp1=zeros(m,1);
tmp2=0;
N=2000; % number of pilot samples
for i=1:N
samplefrom N10,2m
z=randn(m,1);
stock price
s=gBM(s0, r, sigma, m, dt, z); path for
H=exp(-r*T)*max(sum(s(2:m+1))/m -K,0); % payoff for the k-th path
tmp1=tmp1+H*z;
tmp2=tmp2+H;
end
Matlab function for example 6
(The CE method for Asian option)
theta= tmp1/tmp2; % tilting parameter
% important sampling
for i=1:n % loops to generate n sample paths and payoffs
y=randn(m,1)+theta; NCO Imm
s=gBM(s0,r,sigma,m,dt,y);
H(i)=exp(-r*T)*max(sum(s(2:m+1))/m -K,0); %discounted payoff
H(i)=H(i)*exp(-sum(theta.*y)+0.5*sum(theta.^2)); % likelihood ratio
end
v=sum(H)/n;
se = sqrt((sum(H.^2) - n*v^2)/n/(n-1)); % estimate of the standard error
fprintf('\n v=%8.4e, se=%8.4e\n', v, se);
% generate a discrete path of geometric Bronian motion
function s=gBM(s0, r, sigma, m, dt, z)
s(1) =s0;
for k=2:m+1
s(k) = s(k-1)*exp((r-0.5*sigma^2)*dt(k-1)+sigma*sqrt(dt(k-1))*z(k-1));
end