2017-09-18 1 views
1

재무부 시장에 대한 할인 곡선을 구축 할 수있었습니다. 그러나, 나는 이것을 사용하여 개별 채권 (그리고 결국 채권 포트폴리오)의 주요 금리 위험을 찾으려고합니다.QuantLib : 빌딩 주요 위험도

내가 찾고있는 주요 금리 위험은 내가 30Y 채권을 가지고 있고 다른 채권을 일정하게 유지하면서 채권을 할인하는 데 사용 된 1y 금리를 이동하는 것입니다. 채권의 가격이 얼마만큼 변경됩니까? 으로? 테너 (예 : 2Y, 5Y, 7Y 등)에 대해이를 반복하고 결과를 합산하면 채권의 전체 기간을 알 수 있지만 위험 노출이 어떻게 저하되는지 더 잘 볼 수 있습니다.

http://www.investinganswers.com/financial-dictionary/bonds/key-rate-duration-6725

는이 작업을 수행하는 방법을 보여 모든 문서 인식 누구인가? 고맙습니다.

답변

1

이미 채권 및 할인 곡선을 구축 한 점을 감안, 당신은와 비슷한 방식으로 연결 한 :

discount_handle = YieldTermStructureRelinkableHandle(discount_curve) 

bond.setPricingEngine(DiscountingBondEngine(discount_handle)) 

먼저 사용하고 기존의 할인 곡선을 통해 확산을 추가 할 수 있습니다 수정 된 곡선은 채권 가격을 책정합니다. 뭔가 같은 : 위의 후

discount_handle.linkTo(new_curve) 

을 :

nodes = [ 1, 2, 5, 7, 10 ] # the durations 
dates = [ today + Period(n, Years) for n in nodes ] 
spreads = [ SimpleQuote(0.0) for n in nodes ] # null spreads to begin 

new_curve = SpreadedLinearZeroInterpolatedTermStructure(
    discount_curve, 
    [ QuoteHandle(q) for q in spreads ], 
    dates) 

는 당신에게 당신이 원래의 할인 곡선 대신 사용할 수있는 모든 0 초기 스프레드와 새로운 곡선 (그리고 끔찍한 클래스 이름을) 줄 것이다 , 채권은 여전히 ​​동일한 가격을 반환해야합니다 (스프레드가 모두 null이므로). 특정 키 속도 기간을 계산할 때

, 당신은 해당 견적을 이동할 수 있습니다 당신은 5 년 따옴표 (위의 목록에서 세 번째)을 충돌 할 경우, 예를 들어 실행

spreads[2].setValue(0.001) # 10 bps 

곡선이 그에 따라 업데이트되고 채권 가격이 변경되어야합니다.

참고 : 위의 내용은 스프레드간에 삽입되므로 5 년 간을 10bps로 이동하고 2 년 간을 변경하지 않으면 약 3 년이 약 3bps만큼 이동합니다. 이것을 줄이려면 (원하는 것이 아닌 경우) 커브에 포인트를 더 추가하고 다양한 범위를 제한 할 수 있습니다. 예를 들어, 5 년에서 1 개월을, 5 년에서 1 개월을 더한 포인트를 추가하면 5 년 포인트를 이동하면 2 개월 만 영향을받습니다.

+0

답변 해 주셔서 대단히 감사드립니다. 말할 필요도없이 패키지와 팁이 매우 유용합니다. 내가 구조를 배우려고 시도하고 있지만 스프레드 [2] .setValue (0.001)를 사용하여 커브를 수정하는 방법이 있다는 것에 대한 나의 무지에 사과드립니다. 위의 답변 오프, 나는 다음과 같은 discount_handle.linkTo (new_curve)을 실행하면 스프레드 [2] .setValue (0.001) fixed_rate_bond.setPricingEngine (new_curve) 인쇄 (fixed_rate_bond.NPV()) 난 여전히 setValue() 이전과 동일한 NPV를 수신합니다. 예상 되나요? – user6142489

+0

해당 위치에서 업데이트해야합니다. 코드를 QuantLib 메일 링리스트에 올리면 알아낼 수 있습니다. –

+0

참조하는 곳이 sourceforge에 게시하는 방법을 모릅니다. 내가 보낼 수있는 전자 메일 배포본이 있습니까? 고맙습니다. – user6142489