엑셀vba를이용한옵션모델링cclark.tistory.com/attachment/ck9.pdf ·...

24
투자공학팀 대리 홍창수 [email protected] 엑셀 엑셀 VBA VBA를 이용한 이용한 옵션 옵션 모델링 모델링

Upload: vomien

Post on 22-Aug-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1외환선물㈜ 투자공학팀

투자공학팀 대리 홍창수

[email protected]

엑셀엑셀 VBAVBA를를 이용한이용한 옵션옵션 모델링모델링

2외환선물㈜ 투자공학팀

주가지수선물

CONTENTSCONTENTS

페이지제제 II 부부 엑셀엑셀 VBAVBA의의 이해이해 ........................................................................ 41.11.1 엑셀엑셀 편집기의편집기의 실행실행...................................................................... 51.2 Sub1.2 Sub프로시져와프로시져와 FuctionFuction프로시져프로시져 ................................... 71.31.3 VBAVBA에서의에서의 변수선언변수선언 ............................................................... 81.4 1.4 조건문조건문 사용하기사용하기 ............................................................... 91.5 1.5 반복문반복문 사용하기사용하기 ............................................................... 10

제제 IIII 부부 옵션옵션 모형의모형의 이해이해 ........................................................................... 112.1 2.1 옵션기초옵션기초 ........................................................................................ 122.2 2.2 블랙블랙--숄즈모형숄즈모형 ................................................................................ 142.3 2.3 블랙블랙--숄즈모형숄즈모형 GREEKS GREEKS ................................................................ 172.4 2.4 블랙모형블랙모형(1976)(1976) ................................................................................ 22

제제 IIIIII 부부 응용과응용과 결론결론...................................................................................... 253.1 3.1 이색옵션이색옵션 응용응용 ............................................................................. 273.2 3.2 금리옵션금리옵션 응용응용 ............................................................................. 283.3 3.3 참고문헌참고문헌 ............................................................................... 30

3외환선물㈜ 투자공학팀

주가지수선물

제제 I 부부 엑셀엑셀 VBAVBA의의 이해이해

Understanding Excel VBA

VBA is a programming language common to Microsoft Visual Basic, Microsoft Office, Microsoft Project, Visio, and a whole host of other applications.Although the particular 'flavor' of VBA you use depends on the environment that hosts VBA, the core VBA language is basically identical regardless of the environment that hosts it. In other words, VB, the Microsoft Office suite, and a number of other applications share a common programming language named VBA that is identical across its various hosts.

- 'VB & VBA In a Nutshell' by Paul Lomax, October,1998

4외환선물㈜ 투자공학팀

1. 1. 매크로와매크로와 VBAVBA의의 이해이해

q 매크로 : 응용 프로그램 내에서 사용 가능한 작은 프로그램으로, 엑셀을 예로들면 엑셀 명령어 모음

즉, 반복되는 작업을 기억시켜 두었다가 필요한 경우에 한번에 실행 시키는 기능

매크로는 하나의 기능을 실행하는 코드(Code)의 모임으로 구성. 이때 코트가 입력된 단위

를 프로시져(Procedure)라고 한다. 매크로를 기술한 프로시져는 모듈(Module)에 관리

q VBA : 위와 같은 매크로를 작성하기 위해 전문적인 프로그램 지원하는 오피스 제품군인 Visual

Basic for Application을 지칭하는 약어로, Visual Basic 프로그래밍 언어를 마이크로 소프

트사의 응용 프로그램들에서 사용할수 있도록 한 버전.

§ 각 행을 코드(code)라 하며,

매크로가 기록된 부분을 프로시

져(Prodedure)라 부름.

§ 프로시져(Prodedure)가 기록

된 부분을 모듈(Module)이라 부

름.

5외환선물㈜ 투자공학팀

2. 2. VBVB편집기편집기 실행하기실행하기((VBE)VBE)

q메뉴에서 [도구] => [매크로] => [Visual Basic Editor]를 선택.

(혹은 바로가기(단축키) 키인 ALT+F11를 눌러 실행.)

q다음 6 페이지와 같은 프로젝트라는 타이틀을 가진 화면이 보이게 된다.

To enter code:Tools/Macro/visual basic editorAt editor:Insert/ModuleType code, then compile by:debug/compile VBAproject

6외환선물㈜ 투자공학팀

3. 3. VBVB편집기편집기((VBE) VBE) 창창 이해하기이해하기

프로젝트 창

(Ctrl+R)

속성 창(F4)

모듈창

(코드창)

q 프로젝트 탐색기 창 : 프로젝트를 관리하고 선택하는 기능을 한다.

q속성 창 :프로젝트 탐색기창에서 선택한 파일이나 시트등의 이름등의 성질을 변경

q모듈창: 코드창이라고 부르기도 하며 프로그램을 직접 코딩하는 곳으로 프로그램 생성

q모듈(Module) : VBA Editor화면상 [메뉴] => [삽입] => [모듈]를 선택

모듈은 선언이나 프로시져의 집합체, 코드를 입력하기 위해 사용.

7외환선물㈜ 투자공학팀

4.4.SubSub프로시져와프로시져와 FunctionFunction프로시져프로시져 이해이해

q 프로시져(Procedure) : 특정 동작 수행하는 코드들을 하나의 블럭형태로 모아놓은 코드 집합

q 서브 프로시져(Sub procedure): 어떤 동작을 수행하는 명령어들의 집합 , 결과값 없슴

* 구성 : Sub 프로시져 이름( ) 프로시져 내용 End Sub

q 함수 프로시져(Function procedure): 단일값이나 배열을 반환하는 명령어들의 집합(ex: SUM

함수), 결과값 있슴

* 구성 : Function 함수이름( ) 함수내용 End Function

q 속성 프로시져(Property procedure): 클래스 모듈에서 사용하는 특별한 프로시져

q 선언(Declarations) :선언은 VBA에서 사용하려는 변수에 관한 정보. 사용자가 사용하고자

하는 변수에 대한 데이터를 선언

Sub..End sub / Function.. End fuction구문

8외환선물㈜ 투자공학팀

5. 5. VBAVBA에서에서 변수변수 선언선언

Public Function Black(CallPutFlag As String, F As Double, X _

As Double, T As Double, r As Double, v As Double) As Double

변수선언(Variable declarations) : VBA 응용프로그램 구동 속도개선

[VBA데이터의 유형]string (문자열형 : For names like “Bob” )

Integer (정수형 : -32768 ~ 32767 범위의 값 )

Long (긴정수형 : interger밖의 범위에 있는 값)

Boolean ( 불린형 : True , False가 되는 변수)

Single (단정도 부동 소수점형 : 소수점이 있는 숫자에 이용)

Double (배정도 부동 소수점형: single보다 더 정확한 소수점값을 요구할때 이용)

Currency (통화형 : monetary values)

Variant (가변형 : 임의의 숫자를 처리하기 위해 이용)

Dim d1 As Double, d2 As Double

d1 = (Log(F / X) + (v ^ 2 / 2) * T) / (v * Sqr(T))

d2 = d1 - v * Sqr(T)

Dim 명령문 사용 : d1과 d2와 같은 중간단계의 계산을 하기 위해 이용.

Dim 명령문의 형식 : Dim var As datatypevar 선언할 변수를 기술

datatype 변수의 데이터형을 지정

9외환선물㈜ 투자공학팀

6. 6. 조건문조건문 사용하기사용하기

If - Then 구문 : If [조건식 또는 변수] [비교연산자] [값] then…조건식의 판단결과 ‘참(true)’일 경우에 실행처리

End If

If – Then – Else 구문: If [조건식 또는 변수] [비교연산자] [값] then

else …조건식의 판단결과 ‘거짓(false)’일 경우에도 실행처리

End If

예제) ElseIf (‘그렇지 않은 경우에’) 를 조합한 경우

If CallPutFlag = “c” ThenBlack = exp(-r*T)*(F*CND(d1) – X* CND(d2)

ElseIf CallPutFlag = “p” ThenBlack = Exp(-r*T)*(X*CND(-d2) – F*CND(-d1)

End If

Select.. Case : 여러번의 ElseIf문을 사용하는 경우 Select Cae문 사용이 효율적

select case 조건문

case 조건문 결과 n

실행문

case Else

실행문

End Select

*조건문: 조건이 참인지 거짓인지 평가. 결과에따라 각각의 명령이 수행되는 의사결정 구문

10외환선물㈜ 투자공학팀

7.7.반복문반복문 ((순환문순환문))사용하기사용하기

For-Next 구문 : 한 블록의 명령문을 계산횟수를 사용하여 지정된 횟수만큼 반복실행

For 계산횟수변수 = 시작점 To 종료값 [Step 증가값][실행문]

[Exit For]

[실행문]

Next [계산횟수 변수]

Do- While -Loop구문 : 조건이 참(True) 일 동안만 반복한다

Do while 조건

[실행문1]

[실행문2]

Loop

Do-Untill-Loop구문: 조건이 거짓(False)일 동안만 반복한다

Do Untill 조건

[실행문1]

[실행문2]

Loop

*반복문: 지정한 명령이나 명령문의 그룹을 반복적으로 수행하도록 하는 구문

11외환선물㈜ 투자공학팀

주가지수선물

제제 II 부부 옵션옵션 모형의모형의 이해이해

Understanding option pricing model

If options are correctly priced in market, it should not be possible to marke sure profits by creating portfolio of long and short positions in option and their underlying stocks. Using this principle, a theoretical valuation formula for options is derived. Since almost coporate liabilities can be viewed as combinations of options, the formula and the analysis that led to it are also applicable to corporate liabilities such as common stock, corporate bonds, andwarrants.In particular, the formula can be used to derive the discount that should be applied to a corporate bond because of possibility of default.

- ‘The pricing of option and coporate liabilities' by Black& Sholes, May,1973

12외환선물㈜ 투자공학팀

1.1.옵션기초옵션기초

q 옵션이론 (Option Theory)- 블랙-숄즈-머튼 모형 : 유럽형 옵션 가치계산의 기본이 되는 모형 (KOSPI200옵션)

- 이항 모형(Binomial) : 미국형 옵션 및 기타 파생증권 가치계산(KOSPI200옵션/국채선물옵션)

- 블랙모형(Black model) : 기본적인 이자율옵션 모형 계산 (국채선물옵션, 캡, 플로어, 스왑션)

- 가먼-콜하겐모형(Garman-Kollagen) : 통화옵션 가격결정모형 (원/달러 통화옵션)

q 배당이 있는 경우의 유럽형 put-call parity : C + Xe-rt + D = S + p

배당이 있는 경우의 미국형 put-call parity : C + Xe-rt + D >S + P

q 유럽형(European) & 미국형 옵션(American option)

13외환선물㈜ 투자공학팀

2.2.블랙블랙--숄즈숄즈 모형모형

TdT

TrXSd

T

TrXSd

dNSdNeXp

dNeXdNScrT

rT

σσ

σ

σσ

−=−+=

++=

−−−=

−=−

10

2

01

102

210

)2/2()/ln(

)2/2()/ln( where

)( )( )( )(

여기서,

q Black Sholes Model(1973)주요가정

- Log normal price distrbution: 기초자산의 가격변화는 연속적으로 발생

- 변동성과 무휘험 이자율 불변

- 무배당을 가정한 유럽형 옵션

- 완전자본시장 : no tax, no transaction cost, short sale가능

14외환선물㈜ 투자공학팀

3.3.블랙블랙 숄즈숄즈 모형모형 ((Excell)Excell)

▷ Plain vanilla excell을 이용한 옵션가격 계산

1. 위에 기술된 B4: B8 범위에 입력변수 기입2. d1과 d2의 공식 계산- d1의 공식- d2의 공식

3. 누적정규함수 공식(N(d1), N(d2)의 계산) 이용4. 유럽형 콜옵션 가격공식 계산5. 유럽형 풋옵션 가격공식 계산

블랙 -숄즈 옵션 모형 (Plain Vanilla Excell)

S 64.64 현재의 주가(KOSPI 200)

X 70 행사가격

r 0.0704 금리(CD rate)

T 0.0767 옵션 잔존만기(year)

σ 0.5202 sigma(KOSPI 200의 변동성)

d1 1.35 <-- =(LN(S/X)+(r+0.5*sigma^2)*T)/(sigma*SQRT(T))d2 1.20 <-- = d1-sigma*SQRT(T)

N(d1) 0.91 <-- 정규분포함수NormsDist 이용, = NormsDist(d1)N(d2) 0.88 <-- 정규분포함수NormsDist 이용, = NormsDist(d2)

Call price -2.77 <-- = S*N(d1)-X*exp(-r*T)*N(d2)Put price 2.21 <-- = X*exp(-r*T)*N(-d2)-S*N(-D1) : 직접계산

2.21 <-- = call price-S+X*Exp(-r*T) : 풋-콜 패리티

15외환선물㈜ 투자공학팀

4.4.블랙블랙 숄즈숄즈 모형모형 ((VBAVBA이용이용))

q VBA를 이용한 옵션가격 계산

'// 블랙-숄즈(1973) 주식옵션 가결결정모형

Public Function BlackScholes(CallPutFlag As String, S As Double, X _As Double, r As Double, T As Double, v As Double) As Double

Dim d1 As Double, d2 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))d2 = d1 - v * Sqr(T)If CallPutFlag = "c" Then

BlackScholes = S * Application.NormSDist(d1) - X * Exp(-r * T) * Application.NormSDist(d2)ElseIf CallPutFlag = "p" Then

BlackScholes = X * Exp(-r * T) * Application.NormSDist(-d2) - S * Application.NormSDist(-d1)End If

End Function

블 랙 -숄 즈 옵 션 가 격 결 정 모 형(VBA)

Call/Put c c=콜, p=풋

S 64.64 현재의 주가(kospi 200)X 70 행사가격r 0.0704 R(CD금리)T 0.0767 옵션 잔존만기(year)σ 0.5202 변동성(KOSPI200 변동성)옵션프리미엄 1.86

16외환선물㈜ 투자공학팀

5.5.블랙블랙 숄즈숄즈 모형모형 ((VBA) Cont.VBA) Cont.

q Visual Basic에 의핸 매크로 기술

1. '// 블랙-숄즈(1973) 주식옵션 가결결정모형

2. Public Function BlackScholes(CallPutFlag As String, S As Double, X _As Double, r As Double, T As Double, v As Double) As Double

3. Dim d1 As Double, d2 As Double. d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))

d2 = d1 - v * Sqr(T)4. If CallPutFlag = "c" Then

BlackScholes = S * Application.NormSDist(d1) - X * Exp(-r * T) * Application.NormSDist(d2)ElseIf CallPutFlag = "p" Then BlackScholes = X * Exp(-r * T) * Application.NormSDist(-d2) - S * Application.NormSDist(-d1)End If

5.End Function

q Visual Basic에 의핸 매크로 기술 (한글 설명)

1. 매크로 이름 지정 (임의 지정)2. 함수 BlackScholes 생성 작업: String, Doble등의 변수 선언(Variable declarations) 3. Dim 명령문을 활용하여 d1과 d2 와 같은 중간단계 계산 실행

4. 조건문 If를 사용한 구문 구성 : If- Then- Elseif 구문

Application.NormSDist => 엑셀의 표준정규분포 함수인 NormSDist를 VBA에 사용 위해 Appplication. 이용

*주의 : 정규분포함수 공식 : normdist, 표준정규분포함수 : normsdistCND함수 : 블랙숄즈 공식에 필수적으로 쓰이는 누적정규분포 값을 근사치로 계산하는 함수 (Normsdist이용)

5. 프로시져 종료

17외환선물㈜ 투자공학팀

6.6.옵션옵션 그릭스그릭스((Greeks)_Greeks)_블랙숄즈모형블랙숄즈모형

'// 블랙숄즈 모형_델타Public Function Delta(CallPutFlag As String, S As Double, X As Double, T As Double, _

r As Double, v As Double) As Double

Dim d1 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))

If CallPutFlag = "c" ThenGDelta = Exp((-r) * T) * Application.NormSDist(d1)

ElseIf CallPutFlag = "p" ThenGDelta = Exp((-r) * T) * (Application.NormSDist(d1) - 1)

End IfEnd Function

q 델타(Delta) VBA함수

q 델타(∆) = call(put) sensitivity to asset value

C = S N(d1 ) - KB(0,t) N(d2 )

*N(d1 ) = 콜옵션 델타 (D) = 콜 헤지비율(hedge ratio)= 자산가격의 작은변화에 대한 콜가치의 변화= 콜 기울기: 자산가격에 관한 콜의 1차미분

*옵션가격의 변화 = 옵션델타 ×기초자산가격의 변화

[ ]

1

1

( ) 0

( ) 1 0

rTcall

rTput

ce N d

S

pe N d

S

∂∆ = =∂∂∆ = = −∂

f

p

>0

<0

18외환선물㈜ 투자공학팀

'// 블랙숄즈 모형_감마Public Function Gamma(S As Double, X As Double, T As Double, r As Double, v As Double) As Double

Dim d1 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))GGamma = Exp((-r) * T) * ND(d1) / (S * v * Sqr(T))

End Function

q 감마(Gamma) VBA함수

q갬마 (G) =delta sensitivity to asset value changes

2 21

, 2 2( ) 0

rT

ca l l put

n d ec pS S S Tσ

−∂ ∂Γ = = =∂ ∂

f>0

갬마 : 옵션의 볼록성(convexity) 측정지표, 즉 델타변동분/기초자산 가격의 변동분*델타곡선의 기울기 : 기초자산의 가격변동에 따라 옵션 프리미엄이얼마나 빠른 속도로 변화하는 가를 측정*옵션델타의 변화 = 갬마× 기초자산 가격의 변화*의미: 델타값이 변화하는 속도를 반영, 갬마가 클수록 기초자산의 가격변동에 따라옵션 포지션 가치가 빠르게 변함*Call, Put에 관계없이 Long Position: Long gamma(positive gamma)

Short position : Short gamma(negative gamma)

19외환선물㈜ 투자공학팀

q 쎄타(theta) VBA함수

'// 블랙숄즈 공식_쎄타Public Function Theta(CallPutFlag As String, S As Double, X As Double, T As Double, r As Double, v As Double) As Double

Dim d1 As Double, d2 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))d2 = d1 - v * Sqr(T)

If CallPutFlag = "c" ThenGTheta = -S * Exp((-r) * T) * Application.NormSDist(d1) * v / (2 * Sqr(T)) - (-r) * S * Exp((-r) * T) * Application.NormSDist(d1)

- r * X * Exp(-r * T) * Application.NormSDist(d2)ElseIf CallPutFlag = "p" Then

GTheta = -S * Exp((-r) * T) * Application.NormSDist(d1) * v / (2 * Sqr(T)) + (-r) * S * Exp((-r) * T) * Application.NormSDist(-d1) + r * X * Exp(-r * T) * Application.NormSDist(-d2)

End IfEnd Function

q 쎄타(theta) = call(put) sensitivity to time changes

0)()(2

)(

0)()(2

)(

211

211

≤≥−−−+=∂∂−=Θ

≤≥−+=∂∂−=Θ

−−−

−−−

dNrXedNrSeTdnSe

Tp

dNrXedNrSeT

dnSeTc

rTrT

rT

put

rTrT

rT

call

σ

σ

*옵션가격의 변화=쎄타(theta) × 경과일수

20외환선물㈜ 투자공학팀

q 베가(vega) VBA함수

'// 블랙숄즈 공식_베가Public Function Vega(S As Double, X As Double, T As Double, r As Double, v As Double) As Double

Dim d1 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))Vega = S * Exp((-r) * T) * ND(d1) * Sqr(T)

End Function

q 베가 (vega) = call(put) sensitivity to volatility changes

0)( 1, fTdnSepc rT

putcall

−=∂∂

=∂∂

=σσ

κ >0

베가(카파kappa) : 옵션가격 변동분/기초자산 가격 변동성의 변화분(%)=>변동성 변화가 옵션가치에 영향을 미치는 정도를 측정*옵션기간이 길수록 베가의 수치는 증가, 짧을수록 작아짐*옵션가격의 = 옵션베가 × 내재변동성의 변화*새로운 옵션가격 = 기존 옵션가격 +옵션베가 ×내재변동성의 변화*기초자산의 변동성이 커지면 옵션의 가치 모두 상승, 베가는 항상 양의 값

21외환선물㈜ 투자공학팀

q 로(Rho) VBA 함수

'// 블랙숄즈공식_로Public Function Rho(CallPutFlag As String, S As Double, X As Double, T As Double, r As Double, v As Double) As Double

Dim d1 As Double, d2 As Double

d1 = (Log(S / X) + (r + v ^ 2 / 2) * T) / (v * Sqr(T))d2 = d1 - v * Sqr(T)If CallPutFlag = "c" Then

Rho = X * T * Exp(-r * T) * Application.NormSDist(d2)

ElseIf CallPutFlag = "p" ThenRho = -X * T * Exp(-r * T) * Application.NormSDist(-d2)

End IfEnd Function

q 로(rho) = call(put) sensitivity to riskless rate changes

0)(

0)(

2

2

p

f

dNXTerp

dNXTer

c

rT

call

rT

call

−−=∂∂=

=∂∂

=

ρ

ρ >0

<0

로 : 옵션가격변동분/이자율 변동분*다른 지표에 비해 거래성과에 미치는 영향 미미

22외환선물㈜ 투자공학팀

7.7.선물옵션선물옵션 모형모형: : blackblack모형모형(1976)(1976)

선물옵션 모형(B l ack ( 1976 ) )

선 물 가 격 행 사 가 격 변 동 성 이 자 율 잔 존 만 기 콜/풋

105.00 102.00 6.82% 4.22% 0.082192 c

105.00 103.00 6.82% 4.22% 0.082192 c

(1y=365d)

옵 션 프 리 미 엄 델 타 갬 마 베 가 1 day 세 타 로

3.0511 92.90% 0.0636 0.0392 -0.004069 -0.0025

2.1672 83.68% 0.1182 0.0729 -0.008057 -0.0018

q Black Model(1976)- 선물옵션(option on futures)등 금리파생상품(cap,floor, swaption)의 가격결정에 유용

- 기초자산가격이 선도(forward) 및 선물(futures)일때 유럽형 옵션의가격 결정 계산

- 선물가격도 대수정규분포를 갖는다고 가정

- 선물가격이 보유비용 모형을 따른다는 가정하에 black sholes모형과 유사

23외환선물㈜ 투자공학팀

'// 정규분포 함수Public Function ND(X As Double) As Double

ND = 1 / Sqr(2 * Pi) * Exp(-X ^ 2 / 2)End Function

'// 누적 정규분포 함수Public Function CND(X As Double) As Double

Dim L As Double, K As DoubleConst a1 = 0.31938153: Const a2 = -0.356563782: Const a3 = 1.781477937:Const a4 = -1.821255978: Const a5 = 1.330274429

L = Abs(X)K = 1 / (1 + 0.2316419 * L)CND = 1 - 1 / Sqr(2 * Pi) * Exp(-L ^ 2 / 2) * (a1 * K + a2 * K ^ 2 + a3 * K ^ 3 + a4 * K ^ 4 + a5 * K ^ 5)

If X < 0 ThenCND = 1 - CND

End IfEnd Function

'// 블랙모형 (1976): 선물옵션 가격결정모형Public Function Black(CallPutFlag As String, F As Double, X _

As Double, T As Double, r As Double, v As Double) As Double

Dim d1 As Double, d2 As Double

d1 = (Log(F / X) + (v ^ 2 / 2) * T) / (v * Sqr(T))d2 = d1 - v * Sqr(T)If CallPutFlag = "c" Then

Black = Exp(-r * T) * (F * CND(d1) - X * CND(d2))ElseIf CallPutFlag = "p" Then

Black = Exp(-r * T) * (X * CND(-d2) - F * CND(-d1))End If

End Function

Black모형(1976): VBA Code

24외환선물㈜ 투자공학팀

참고문헌참고문헌((Reference)Reference)

“Financial Modeling”, Simon Benninga, 2000

“Advanced Modelling in Finance: Using Excel and VBA”, Jackson& Staunton, 2001

“VBA for Modelers: Developing Decision Support Systems Using Microsoftr Excel”,Albright, 2001

“The Complete Guide to Option Pricing Formulas”,Haug, 1998, McGrawHill

“Implementing Derivatives models”,Clewlow&Strickland, 1998

“Paul Wilmott on Quantitative Finance”, Paul Willmott, Wiely, 2000