2011. 6. 16. 11:27 quantlib/Implementation
Strategy pattern
Strategy pattern은 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다.
스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할수있다.
즉, 쉽게 말하면 클래스안에서 행동을 하는 것들을 멤버함수로 설정하지말구, 행동하는것을 따로 클래스로 만드는 방법(행동클래스는 상속해서 구현된다.)
Instrument의 pricing하는 방법들에 적용하면 되겠다!
-재활용 용이 => 유지보수 용이
ex. 다른 종류의 Swap 또는 option이지만 같은 pricing을 사용하는 경우
(European option 1 vs European option 2)
1. 시장 가격으로부터 내제 변동성을 구하여 블랙숄즈 공식을 이용할 수 있으며 즉, 쉽게 말하면 클래스안에서 행동을 하는 것들을 멤버함수로 설정하지말구, 행동하는것을 따로 클래스로 만드는 방법(행동클래스는 상속해서 구현된다.)
Instrument의 pricing하는 방법들에 적용하면 되겠다!
-재활용 용이 => 유지보수 용이
ex. 다른 종류의 Swap 또는 option이지만 같은 pricing을 사용하는 경우
(European option 1 vs European option 2)
2. 더욱 exotic한 옵션들을 위해 사용하거나 나중에 calibrate하기 위해 통계적인(stochastic) 변동성 모델을 이용할 수도 있으며
3. 유한 차분의 구현을 검증하고 분석한 것의 결과를 비교하기 위해 유한 차분 스키마를 사용할 수 있고
4. 더욱 exotic한 것을 위해 통제변수(control variate)로써 유로피언 옵션을 사용하기 위해 몬테 카를로 모델을 사용할 수도 있다.
이러한 것을 pricing Engine 이라 할 수 있다.
void
SomeInstrument::performCalculations()
const
{
NPV_ = engine_−>calculate(arg1, arg2, ... , argN);
}
문제는!
arguments/results !!
http://skmagic.tistory.com/202
'quantlib > Implementation' 카테고리의 다른 글
Aside: evaluation date tricks (0) | 2011.06.18 |
---|---|
3. Term structure - the shape of things to come (0) | 2011.06.16 |
Template Method pattern (0) | 2011.06.15 |
class template & Function Template (0) | 2011.06.15 |
Aside: impure virtual methods (0) | 2011.06.15 |