Tuesday 20 March 2018

Quantlib fx 옵션


예제를 사용한 QuantLib Python 자습서.
이 글은 퀀텀의 모든 파이썬 튜토리얼에 대한 링크 모음입니다.
나는 QuantLib 파이썬 바인딩을 사용하는 것에 대한 많은 튜토리얼을 작성했다. 이 글에서는 최소한의 예제를 사용하여 몇 가지 QuantLib 개념을 설명합니다. 다음은 이러한 게시물에 대한 링크입니다. QuantLib 소개 Python :이 게시물은 QuantLib Python 라이브러리의 기본 사항 중 일부를 설명합니다. QuantLib Python에서 고정 금리 채권 모델링 :이 게시물에서는 QuantLib Python을 사용하여 고정 이자율 채권을 모델링하는 예제를 살펴 봅니다. QuantLib Python의 이자율 용어 구조 소개 :이 포스트는 QuantLib Python의 부트 스트래핑 수익 곡선의 기본을 살펴볼 것입니다. QuantLib Python을 이용한 White Term Term Simulation : QuantLib Python 옵션 모델 핸드북, Part III : QuantLib Python을 사용한 유럽 옵션 가격 책정 : QuantLib Python을 사용하여 유럽 옵션 가격을 책정하는 방법을 보여줍니다. Black-Scholes-Merton 공식과 이항 트리를 사용하는 방법에 대해 논의 할 것입니다. 헐 백색의 수렴 화이트 몬테카를로 시뮬레이션 : 헐 - 화이트 모델의 몬테 - 카를로 시뮬레이션의 수렴을 토론 QuantLib에서 Heston 모델을 사용하는 유럽 옵션의 가치 평가 Python : Quantlib에서 Heston 모델을 사용하여 유럽 옵션을 평가하는 방법에 대한 예제를 소개합니다 Python은 QuantLib Python을 사용하여 바닐라 금리 스왑을 모델링합니다. QuantLib Python을 사용하여 이자율 스왑을 평가하는 기본적인 방법을 제공합니다. QuantLib의 단기 금리 모델 조정 Python : QuantLib Python의 Swaption 변동성에 대한 단기 금리 모델 보정의 예를 제공합니다. QuantLib Python을 사용하여 Treasury Futures 평가하기 : QuantLib Python의 Treasury Futures 계약 평가에 대한 소개를 제공합니다. QuantLib를 사용하여 상품 선물에 대한 가치 평가 Python : QuantLib Python의 Black 공식을 사용하여 상품 선물 계약 옵션을 평가하는 방법을 설명합니다. QuantLib Python을 사용하여 Convertible Bonds 평가하기 : QuantLib Python을 사용하여 전환 사채의 가치 평가를 소개합니다. 모델링 Volatility Smile과 Heston Model Calibration Using QuantLib Python : 시장에서 관찰 된 웃음과 QuantLib Python을 사용하여 Heston 모델을 교정하면서 내재 된 휘발성 표면을 구성하는 방법을 소개합니다. QuantLib Python 요리 책 발표 : "QuantLib Python Cookbook"발표 QuantLib Python을 사용하여 이자율 대문자 및 바닥 평가 : QuantLib Python을 사용하여 대문자 및 바닥 평가에 대한 자습서. QuantLib Python Notebook on Docker : Docker에서 QuantLib 파이썬 노트 실행하기 QuantLib 용 qtk 발표 Python : QuantLib Python과 상호 작용할 수있는 새로운 인터페이스 인 qtk 발표 QuantLib Python에서 신용 스프레드로 채권 평가하기 Python : QuantLib Python을 사용하여 신용 스프레드로 채권 가치를 평가하는 예제 제공 . 이 게시물은 항복 기간 구조를 변경하는 예를 안내합니다. QuantLib Python과 Scipy Optimize를 사용하는 Heston Model Calibration :이 포스트에서는 QuantLib Python과 Scipy 's Optimize 패키지를 사용하여 Heston 모델의 보정에 대해 심도 깊은 다이빙을 수행합니다. QuantLib Python을 사용하여 호출 가능 채권 평가하기 :이 게시물에서는 Hull-White Monte Carlo Simulation Using Moment Matching에서 QuantLib Python Variance Reduction을 사용하여 호출 가능 채권을 평가합니다. 이 게시물은 순간 일치를 사용하여 선체의 Monte Carlo 시뮬레이션의 분산을 줄이는 방법을 설명합니다 - 흰색 용어 구조 모델. QuantLib 및 Python을 사용한 미국 옵션 가격 책정 :이 게시물에서는 QuantLib 및 Python을 사용하여 미국 옵션 가치를 설명합니다.

Quantlib fx 옵션
최신 공식 릴리스를 얻으려면 다운로드 페이지로 이동하거나 git 저장소에서 최신 개발 버전을 확인하십시오. QuantLib은 다른 언어로도 제공됩니다.
선적 서류 비치.
문서는 여러 출처에서 여러 가지 형식으로 제공됩니다. 설치 지시 사항을 읽고 컴퓨터에서 QuantLib을 사용할 수 있습니다.
질문이 필요하면 메일 링리스트에 가입하고 거기에 게시하십시오. 그렇지만 FAQ를보고 이미 응답했는지 확인하기를 원할 수도 있습니다.
버그를 찾았나요?
GitHub에서 문제를 엽니 다. 패치가있는 경우에는 끌어 오기 요청을 대신 엽니 다.
기여하고 싶습니까?
GitHub에서 저장소를 포크하고 코딩을 시작하십시오 (지침은 여기에 있습니다). 개발자 소개 및 지침을 살펴보십시오.
다음은 QuantLib 라이센스, 제공자 목록 및 버전 기록입니다. 이 링크에서 Sourceforge의 프로젝트 페이지를 사용할 수 있습니다.
QuantLib 프로젝트는 양적 금융을위한 포괄적 인 소프트웨어 프레임 워크를 제공하기위한 것입니다. QuantLib은 실제의 모델링, 거래 및 위험 관리를위한 무료 / 오픈 소스 라이브러리입니다.
QuantLib은 깨끗한 객체 모델로 C ++로 작성된 다음 C #, Objective Caml, Java, Perl, Python, GNU R, Ruby 및 Scheme와 같은 다른 언어로 내보내집니다. AAD 지원 버전도 사용할 수 있습니다. 리포지토리 프로젝트는 개체 라이브러리를 최종 사용자 플랫폼에 배포하는 것을 용이하게하며 QuantLib 용 Excel Addin 및 QuantLibAddin, LibreOffice Calc와 같은 다른 플랫폼 용 QuantLib 추가 기능을 생성하는 데 사용됩니다. 다른 언어로의 바인딩과 Gnumeric, Matlab / Octave, S-PLUS / R, Mathematica, COM / CORBA / SOAP 아키텍처, FpML 로의 포팅이 고려 중에 있습니다. 자세한 내용은 확장 페이지를 참조하십시오.
양적 분석가와 개발자의 높은 평가를받은이 연구원은 학계와 실무자 모두를 대상으로하며 결과적으로 이들 간의 강력한 상호 작용을 촉진합니다. QuantLib는 시장 관행, 항복 곡선 모델, 솔버, PDE, 몬테 카를로 (낮은 불일치 포함), 이색 옵션, VAR 등과 같은 기능을 사용하여 실제 구현 및 고급 모델링에 유용한 도구를 제공합니다.
재무는 잘 작성된 오픈 소스 프로젝트가 엄청난 차이를 만들 수있는 영역입니다.
어떤 금융 기관이라도 최첨단 가격 정책 모델과 헤지 도구에 대한 견고하고 시간 효율적이며 효과적인 운영이 필요합니다. 그러나, 거기에 도착하기 위해, 사람은 매번 바퀴를 다시 발명 할 것을 강요 당하고있다. 블랙 숄즈 (Black-Scholes)와 같은 표준 10 년 된 모델조차도 여전히 공개적으로 강력한 구현이 부족합니다. 결과적으로 많은 좋은 퀀트가 이미 수천 번 작성된 C ++ 클래스를 작성하는 데 시간을 낭비하고 있습니다. 공개적으로 이러한 도구를 설계하고 구축함으로써 QuantLib은 도구 자체에 대한 동료 검토를 독려하고 이것이 과학 및 상업용 소프트웨어에서 어떻게 수행되어야 하는지를 보여줍니다. 첫 번째 오픈 소스 / 공개 과학 컨퍼런스에서 Dan Gezelter의 강연은 피어 리뷰의 과학적 전통이 오픈 소스 운동의 철학과 어떻게 잘 어울리는지를 논의했습니다. 개방 표준은 과학 기술이 진화하는 유일한 방법입니다.
도서관은 여러 연구 기관, 규제 기관, 은행, 소프트웨어 회사 등에서 이용 될 수 있습니다. 무료 / 오픈 소스 프로젝트이므로 라이브러리에 기여한 퀀트는 매번 처음부터 시작할 필요가 없습니다.
학생들은 실제 세계에서 실제로 사용되는 도서관을 마스터하여 의미있는 방식으로 기여할 수 있습니다. 이것은 잠재적으로 고용 시장에서 특권을 누릴 수있는 위치에 놓이게됩니다. 연구원은 모델을 구축하는 데 필요한 저수준 작업의 양을 크게 줄여보다 복잡하고 흥미로운 문제에 집중할 수있는 프레임 워크를 갖추게 될 것입니다. 금융 회사는 QuantLib을 기본 코드 및 / 또는 벤치 마크로 활용하면서 시장에서 더 경쟁력을 갖출 수있는보다 혁신적인 솔루션을 개발할 수 있습니다. 규제 기관은 표준 가격 책정 및 위험 관리 관행을위한 도구를 보유 할 수 있습니다.
QuantLib 라이센스는 자유 소프트웨어 및 독점적 인 응용 프로그램 모두에서 사용하기에 적합한 수정 된 BSD 라이센스로서 라이브러리의 사용에 전혀 제한을 두지 않습니다.
몇몇 회사는이 도서관의 개발에 상당한 자원을 투입했습니다. 특히 QuantLib 프로젝트가 탄생 한 선도적 인 국제 리스크 관리 공급 업체 인 StatPro.

Quantlib fx 옵션
Deriscope 및 무역; 금융 파생 상품 평가를 전문으로하는 무료 Excel 추가 기능입니다. 주요 혁신적인 기능은 금융 업계 최초의 통합 마법사로, 다양한 유형의 파생 상품의 가격 결정 및 위험 관리와 관련된 실시간 데이터 (주식 및 손익 계산서)를 사용하여 스프레드 시트를 작성하는 데 도움이됩니다. 옵션, 금리 스왑, 스왑 션, 신용 디폴트 스왑, 인플레이션 스왑, 바구니 옵션 등
Deriscope는 QuantLib의 분석력을 활용하여 제품에서 자세히 설명 된대로 선택한 금융 상품의 가격, 위험 및 기타 다양한 자산을 계산합니다. Deriscope는 사용자 정의 데이터로 대체 할 수있는 일반적인 값으로 채워진 기기 정의를 제공하여 데이터 입력을 용이하게합니다. 또한 주식 시세 표시기 및 시세와 같은 특정 실시간 데이터를 제공합니다. Deriscope는 또한 포함 된 스프레드 시트 생성 도구를 통해 스프레드 시트 구성 프로세스를 크게 단순화합니다. Deriscope는 QuantLib 알고리즘의 출력을 위생적으로 만들지 않습니다. 이것은 Deriscope가 QuantLib 테스트 도구로 사용될 수 있도록 설계되었습니다. 예를 들어, QuantLib "AnalyticBarrier" 가격 책정 방법은 사용자가 0이 아닌 리베이트를 제공하더라도 리베이트가 0 인 것처럼 옵션 가격을 계산합니다. Deriscope는 QuantLib에 의해 계산 된 가격을 출력하지만 리베이트 입력이 무시된다는 경고를 보냅니다. 일반적으로 해당 QuantLib 모델에서 기대하는 입력 데이터를 제공해야합니다. Deriscope는 무료입니다. 지금 바로 사용을 시작할 수 있습니다. 다운로드 페이지로 이동하여 사용 가능한 최신 버전을 다운로드하십시오.
다음은 시장에서 다른 유사 제품과 구별되는 Deriscope의 장점 중 일부입니다.
Excel 통합.
Deriscope는 Excel과 완벽하게 통합됩니다. Office 365를 포함하여 2000 년부터 최신 2016 년까지의 모든 Excel 버전 (32 비트 및 64 비트)이 지원됩니다. Excel의 기존 메뉴 (또는 최신 버전의 리본)에 자체 항목이 들어 있지 않습니다. 스프레드 시트 내용과 실시간으로 상호 작용하면서 정보 게시판 및 작업장으로 모두 작동하는 전용 작업 창만 표시합니다.
분석 신뢰성 - QuantLib.
Deriscoope는 독점적 인 분석 기술에 의존하기보다는 2000 년부터 존재 해 왔던 QuantLib 소프트웨어 라이브러리에 옵션 가격 책정 업무를 위임하여 전 세계 수천 명의 전문가들에 의해 실제로 사용되고 있습니다. 어떤 의미에서 Deriscope는 QuantLib 가격 책정 라이브러리에 대한 Excel 인터페이스 역할을합니다. 이 사실은 Deriskope에 번호 정확도와 관련하여 평균 사용자가 찾는 신뢰도를 부여합니다. 이 사실 덕분에 Deriscope은 프로그래밍 언어를 사용하지 않고도 QuantLib을 익히고 여러 기능과 모델을 Excel에서 직접 테스트 할 수있는 훌륭한 방법입니다. 기술 페이지에서 더 많은 관련 정보.
사용자 친화적 인 인터페이스.
Deriscope는 이전 훈련 없이도 복잡한 파생 장비를 구축하고 가격을 책정하는 데 즉시 사용할 수있는 방식으로 설계되었습니다. 전용 작업 창을 통해 사용 가능한 모든 계측기 및 기능을 탐색 할 수 있습니다. 함수를 선택한 후에는 각 입력 매개 변수를 찾아보고 편집 할 수 있으며 마지막으로 모든 셀에 삽입 할 수있는 일반 스프레드 시트 수식을 생성 할 수 있습니다. 그런 다음이 수식을 전용 작업 창을 사용하지 않고 다른 Excel 수식과 마찬가지로 스프레드 시트에서 직접 조작 할 수 있습니다.
어디서나 정보.
Deriscope를 통해 액세스 할 수있는 수백 가지 함수와 입력 매개 변수의 의미를 이해하려면 설명서를 참조 할 필요가 없습니다. 컨텍스트 기반 정보는 실시간으로 동적으로 생성되어 전용 작업 창에 표시됩니다. 잠재적 인 데이터 입력 오류를보다 효과적으로 진단하기 위해 가격 결정 알고리즘에 의해 수행 된 실제 단계를 문의 할 수도 있습니다.
라이브 피드.
전 세계 여러 나라의 주식 시세 표시기와 관련 실시간 및 과거 가격은 Yahoo Finance 및 Alpha Vantage 무료 서비스 링크를 통해 최종 사용자가 이용할 수 있습니다. Deriscope는 표시된 "라이브"컨텐츠의 정확성 또는 적시 업데이트를 보장 할 수 없습니다. 데이터. Alpha Vantage의 데이터가 1 ​​분 지연됩니다. 2017 년 11 월 초부터 야후 파이낸스는 실시간 데이터 전송을 중단하고 과거 데이터 만 제공합니다. 실시간 통계를 Excel로 직접 분석하는 데 관심이있는 사람들을 위해 실제 통계는 철저한 예술 통계 분석 패키지를 무료로 제공합니다. Yahoo Price Finance와 Alpha Vantage를 통해 실시간 가격 및 과거 데이터를 Excel로 작업하는 방법에 대한 자세한 내용은 라이브 가격 자습서 및 과거 데이터 자습서를 시청하십시오.
IQ Option으로 무료 데모 바이너리 옵션 거래 계좌를 열려면 여기를 클릭하십시오.
링크가 작동하지 않으면 AdBlocker를 일시 중지해야 할 수도 있습니다.
위험 경고 : 귀하의 수도는 위험 할 수 있습니다.
IQ Option을 사용하여 무료 데모 Cryptocurrency 거래 계좌를 열려면 여기를 클릭하십시오.
링크가 작동하지 않으면 AdBlocker를 일시 중지해야 할 수도 있습니다.
위험 경고 : 귀하의 수도는 위험 할 수 있습니다.
IQ Option을 사용하여 무료 데모 Cryptocurrency 거래 계좌를 열려면 여기를 클릭하십시오.
링크가 작동하지 않으면 AdBlocker를 일시 중지해야 할 수도 있습니다.
위험 경고 : 귀하의 수도는 위험 할 수 있습니다.
IQ Option을 사용하여 무료 데모 Cryptocurrency 거래 계좌를 열려면 여기를 클릭하십시오.
링크가 작동하지 않으면 AdBlocker를 일시 중지해야 할 수도 있습니다.
위험 경고 : 귀하의 수도는 위험 할 수 있습니다.
IQ Option으로 무료 데모 FX 거래 계좌를 열려면 여기를 클릭하십시오.
링크가 작동하지 않으면 AdBlocker를 일시 중지해야 할 수도 있습니다.

QuantLib로 어이 없게 지내십시오.
블로그 통계.
이번 주에는 새로운 소식이 없습니다. 이것은 게으르다가 짧은 종이에 대략적인 FX TaRF 가격 책정에 대한 결과를 요약하는 것이 가치가 있다는 것을 알았 기 때문이 아닙니다. 나는 QuantLib 코드에 중점을 두어 여기에 대해서도 쓸 것이다. 다음주. 조심해.
이전 게시물에서 저는 fx 이국적인 (사실 fx tarf) 값을 효율적으로 근사하기위한 몇 가지 아이디어를 썼습니다. 하나의 주요 동기는 XVA 시뮬레이션에서 빠른 가격 책정을 사용하는 것입니다.
이 글은 가능한 한 정확하게 아이디어를 기존 QuantLib 아키텍처에 맞추기 위해 생각해 낸 디자인에 전념합니다.
다음 게시물은 근사 계획 자체에 대한 세부 정보, 몇 가지 시장 및 시간 감퇴 시나리오에서의 전체 가격 결정과 근사치를 비교하는 몇 가지 수치 예제 및 성능 테스트를 제공합니다.
좋은 디자인이 가장 중요합니다. 번영 한 이웃에서도 신속하게 수리되지 않은 부서진 창문이 곧 두 번째 이후에 퇴화하는 지역으로 이어질 것입니다. 다행히 Luigi는 물론 QuantLib시에서 이런 일이 발생하는 것을 허용하지 않습니다.
이들은 일반적으로 디자인에 대한 제 생각입니다.
우리는 하나의 MC와 하나의 프록시 엔진이라는 두 개의 프라이싱 엔진을 가져야합니다. 프록시 엔진이 독점적 인 방식으로 대략적인 NPV를 추출하는 몇 가지 추가 방법이있는 엔진은 하나만 있으면 안됩니다. 프록시 엔진은 다른 엔진과 마찬가지로 작동해야합니다. 시간의 붕괴는 일정한 매개 변수를 통하지 않고 전지구 평가 일자로부터 지속적으로 추론되어야하며, 관련 시장 데이터는 표준 구조에 의해 주어져야한다. 동일한 아이디어에 따라 새로운 도구 및 가격 결정 엔진의 구현은 쉽고 공통 인터페이스 클라이언트 코드에서 사용되는 최종 사용자 인터페이스는 사용하기 쉽고 빠를 수 있어야합니다. XVA 시뮬레이션은 프록시 엔진의 응용 프로그램이지만이 사용 사례에는 엄격한 연결이 없습니다. 프록시 엔진을 사용할 수도 있습니다. & # 8220; 그냥 & # 8221; 높은 정확도가 요구되지 않으면 npvs를 더 빠르게 계산할 수 있습니다.
또는 짧게 : 모든 것에 대해 특별한 것이 없어야합니다. 열정을 억제하고 평범한 일을하고 누군가에게 깊은 인상을 심어주지 마십시오. 괜찮아. 악기 클래스로 시작하겠습니다.
생성자가 필요합니다.
예를 들어 ECB fx 픽스를 나타내는 기본 fx 인덱스 (이것은 새로운 클래스이기도하지만 QuantLib에서는 아직 fx 인덱스로 보이지 않기 때문에, 그러나 여기에 대해서는 자세히 설명하지 않음), 거래 상대방 (외화 자산 또는 원천 통화의 이름이 많음)의 명목상의 명칭. 일반적으로 짧은 풋과 긴 콜 인 payoff 프로파일은 구조의 쿠폰 유형 (위에 링크 된 이전 게시물 참조)이 거래의 양측의 기어링을 타격하는 목표 레벨과 동일한 타격을 공유합니다.
마지막 두 개의 accumulatedAmount 및 lastAmount 매개 변수는 선택 사항입니다. FxTarf가 주어지지 않으면 FxTarf는 지수의 역사적 고정 값을 읽는 누적 금액을 계산합니다.
반면에 지정된 경우 역사적인 고정이 무시되고 주어진 누적 금액이 사용됩니다. 이 컨텍스트의 lastAmount는 마지막 수정 작업이 이미 수행되었지만 연결된 지불이 아직 진행중인 경우에만 필요합니다. 이러한 다소 중복되는 매개 변수를 소개하는 이유는 다음과 같습니다. 한편으로는 fx 인덱스에 대한 모든 역사적 고정을 설정하는 것이 아니라 누적 된 금액을 직접 설정하는 것이 편리 할 수 ​​있습니다. 이미 일부 소스 시스템에서 거래 정보를 얻었으며 거래 데이터와 함께 누적 된 현재 금액을 이미 제공합니다. 더 중요한 것은 XVA 시뮬레이션 중에 IndexManager에서 모든 고정을 설정하지 않을 수도 있다는 것입니다. 원할 경우 그렇게 할 수는 있지만 편리하지 않을 수도 있습니다. 각 경로가 끝나면 모든 고정 장치를 다시 지워야하거나 어쩌면 각 고정 날짜를 시뮬레이트하지 않고 누적 된 고정 장치를 보간하기를 원하기 때문입니다. 어쨌든 이것은 단순한 매개 변수 일뿐입니다. 그것을 사용하거나 그냥 무시하십시오.
tarf의 전체 가격 책정의 경우, 보통의 방법으로 제작 된 monte carlo 엔진을 사용할 수 있습니다.
여기에있는 매개 변수는 (일반화 된) Black Scholes 프로세스, 연간 시뮬레이트 할 시간 단계, RNG의 시드입니다.
마지막 수정자인. withProxy ()가 유일한 특별한 것입니다. 기본적으로 엔진은 다른 mc 엔진과 마찬가지로 npv (및 오류 추정)를 계산합니다. 한편 프록시 플래그로 엔진을 설정하면 시뮬레이션 중에 추가 정보가 수집되고 분석되어 나중에 대략적인 가격 책정에 사용될 수있는 프록시 정보 객체를 생성합니다. 우리는 어떻게 볼 수 있을까요.
프록시를 생성 할 때 시뮬레이션 속도가 느려지므로이 수정자를 필요로하므로 스위치를 끌 수 있어야합니다.
이제 우리는 엔진을 설정하고 (전체) npv :
프록시 가격을 원한다면 물론 전체 npv 계산을 건너 뛸 수 있지만 프록시 엔진에 대한 정보 만 계산하는 경우에도 npv가 항상 생성되기 때문에 아프지 않습니다.
프록시 엔진을 사용하려면이 정보를 생성 할 수있는 엔진으로 시작해야합니다. 그런 다음 프록시 엔진에 프록시 객체가 제공됩니다.
프록시 엔진은로 구성됩니다.
.proxy ()에 의해 장비에서 검색 할 수있는 mc 엔진에 의해 생성 된 프록시 설명 (특별한 결과이며 추가 결과 힙에 묻지 않을 정도로 중요합니다.) 이것은 혁신적이지 않습니다. 예를 들어 스왑의 bps 또는 공정한 이자율과 같은) 가격 결정에 사용 된 fx 견적 & # 8211; 즉 프록시가 가격 책정에 대한 할인 곡선을 가격 결정하는 데 필요한 필수 시장 데이터 (예를 들어 클라이언트 코드에서 흑색 스콜 프로세스의 국내 환율 곡선으로 간주 됨)
또한 평상시와 같이 전 세계 평가일이 평가 기준일을 결정합니다.
장비가 프록시 객체를 제공하지 않으면 (예 : mc 엔진에 그렇게 말했기 때문에 위 참조) 프록시 객체가 프록시 엔진 생성에 적합하지 않은 경우 예외가 발생합니다.
배후에서 진행되는 작업 : 프록시 가격 정책이 가능한 계측기에 대한 인터페이스를 추가했습니다.
구현할 수있는 유일한 방법은 호환 가능한 프록시 엔진이 대략적인 npv를 계산하는 데 필요한 정보가 들어있는 객체를 반환해야하는 프록시입니다 (아래의 호환 가능한 방법 참조). 정보 자체는 ProxyInstrument :: ProxyDescription에서 파생 된 객체 여야합니다. 일관성을 위해 제공된 데이터를 점검해야하는 유효성 검증 메소드를 제공해야합니다.
fx 타월 악기는 어떻게 구현됩니까? 이 인터페이스 :
이것은 fx tarf의 특정 (또는 가능한 하나의) 프록시 정보가 몇 가지 기술적 인 데이터로 구성되어 있음을 나타냅니다.
구조의 마지막 지급일까지의 최대 (미래) 고정물의 최대 개수 & # 8211; 누적 금액의 버킷을 아래에서보십시오.
근사 함수에 대한 세분화를 함께 정의합니다. 각 세그먼트에서 approximating 함수는 Proxy :: ProxyFunction에 의해 주어진다. ProxyFunction은이 추상화 레벨에있는 임의의 함수 Real에서 Real으로 주어진 fx 지점에 대해 npv를 반환한다. npv는 구조의 최종 지급일 기준으로 포워드 기준으로 표시되므로 프록시 엔진이이 최신 가능한 가격 결정 날짜를 평가 날짜까지 할인 할 수 있습니다. 이것은 일반적으로 mc 가격 책정에 사용 된 것과 다르다는 점을 기억하십시오.
validate 메서드는 함수 행렬이 세그먼트 정보와 일관되게 채워지는지 확인합니다.
프록시 객체는 계측기의 결과 클래스의 일부이며 다시 표준 형식을 사용합니다.
프록시 엔진은 동적 다운 캐스트를 사용하여 생성자에 엔진이있는 데 유용한 프록시 객체를 확인합니다.
특수화의 세 번째 레벨은 FxTarf 클래스의 정의에서 파생 된 특정 프록시 객체의 함수 유형이 구현되는 monte carlo 엔진에 있습니다.
이 자리에서 근사 함수의 특정 형식을 최종적으로 수정합니다. 근사 함수는 본질적으로 두 개의 2 차 다항식으로 제공됩니다. 나는 다음 게시물에서 이것에 대한 자세한 내용과 동기 부여를 할 것이다.
마침내 mc 및 프록시 엔진을 일반적인 기본 엔진에서 파생시키는 것이 유용하게 보였습니다. 이 엔진은 모든 고정 작업이 완료되거나 고정 된 금액의 npv가 아직 정해지지 않은 것처럼 간단한 경계 케이스를 처리하므로 유용하게 사용할 수 있습니다. hierachy.
코드에 관심이 있다면 내 저장소를 살펴볼 수 있습니다. 이미 작동 할 수도 있지만 아직 모든 것을 테스트하지는 않았습니다. 다음 주에 더 많이.
XVA 계산을위한 FX TARF의 빠른 가격 책정.
& # 8217 ;; 게임을 보자. 우리는 동전을 10 번 뒤집습니다. 여기에 그리스어 2 유로 동전을 넣을 수있는 특별한 방법이 있습니다. 예를 들어, 여신과 대륙 모두에 Εὐρώπη이 있습니다. 그것이 머리라면 나는 1 유로를 지불합니다. 꼬리라면 2 달러를 내주세요. 오, 그리고 우리가 연주하는 동안 당신이 3 번 이상 승리해야한다면, 우리는 모든 것을 멈추게됩니다.
fx 타프는 fx 포워드 트레이드의 시퀀스로서 당사의 상대방이 스트라이크 비율을 지불합니다. 단일 포워드가 상대방을 선호하는 경우 구조의 명목상에서이를 수행합니다 (그래서 그녀 또는 그는 길다는 전화입니다). 그것이 우리에게 유리하다면 우리는 그것을 명목상의 두 배로 실행합니다 (그래서 우리는 명목상의 두 배를 길게 입었습니다). fx 픽업을 나타내는 상대방을 선호하는 픽스처의 합계가 주어진 목표를 초과하는 경우, 나머지 포워드는 추가 지급없이 만료됩니다. 이러한 구조에는 대상을 트리거하는 쿠폰 수정을위한 여러 가지 용도가 있습니다. 이 수정의 전액을 지불하거나 대상에 도달하는 데 필요한 쿠폰의 일부만 또는 쿠폰을 전혀 사용하지 않습니다.
fx tarfs의 평가는 일반적으로 각 구성 요소에 대한 fx 미소에 달려 있습니다. 전체 미소가 중요합니다. 무역 파업과 목표 파업에서 누적 된 금액을 뺀 것이 분명히 미소에 대한 중요한 포인트입니다. 누적 된 금액은 첫 번째 수정 이후 자체가 임의의 양이므로 전체 미소가 구조의 값에 영향을 미칩니다. 또한 고정 일에 fx 지점의 시간 간 상관 관계가 중요한 역할을합니다.
이 게시물과 아마도 하나 이상의 게시물에서 나는 여러 가지 일에 대해 글을 쓰고 싶습니다.
이 구조에 대해 고전적인 완전 몬테카를 가격 결정 엔진이 어떻게 구현 될 수 있는지 시장 시나리오 및 시간 붕괴 가정에 대한 대략적인 npv가 어떻게 신속하게 계산 될 수 있는지를 두 번째 가격 결정 엔진에서 구현할 수있는 방법과 이것이 첫 번째 이 모든 작업을 수행 할 때 QuantLib의 반짝이는 투명한 디자인이 어떻게 유지 될 수 있는지를 보여줍니다.
분명히 빠른 가격은 CVA, DVA 등과 같은 XVA 숫자를 계산하는 데 사용될 수있는 유명한 npv 큐브를 채우는 데 유용합니다.
오늘의 게시물은 빠르고 대략적인 가격 책정을위한 방법론에 대한 일부 생각에 전념합니다. CVA와 미래의 잠재적 인 노출 계산을위한 플랫폼에서 유사한 아이디어를 구현 한 Murex 동료들의 이야기에 크게 고무되었습니다. 더욱이이 아이디어는 Longstaff와 Schwartz가 고전적이며 단순하지만 훌륭한 논문과 관련이있다 : Longsaff와 Schwartz는 Simulation by American Sterares Approach를 선호하지만 약간 다른 풍미를 가지고있다.
& nbsp; 특정 tarf 용어집을 수정합시다. 구조는 2014 년 11 월 15 일부터 시작하여 2015 년 10 월 15 일까지 매월 지급됩니다. fx 조정은 각 지급일 이전 2 일 (영업일 기준) EUR-USD에 대한 ECB 조정으로 간주됩니다. 명목 금액은 1 억 유로입니다. 우리의 상대방은 전화를받습니다. 우리는 2 억 유로의 가치를 지니고 있습니다. 파업은 1.10이므로 상대방의 통화는 거래일 당시의 돈이었습니다.
평가 날짜는 2015 년 4 월 28 일이고 나머지 목표는 0.10입니다. 평가일 현재 fx 지점은 1.10입니다. EUR-USD fx 옵션에 대한 묵시적인 변동성은 20 % (로그 시장에서는 아직 문제가되지 않지만) 시간이 흐르면서 일정하며 유로화 및 달러화의 동등한 금리를 가정하므로 우리의 기초가되는 변동성은 없습니다 Garman-Kohlagen 과정. 지불 모드는 전체 쿠폰입니다. 물론 시장 데이터에 대한 가정은 부분적으로 현실적입니다.
효율적으로 npv를 근사화하는 아이디어는 다음과 같습니다. 먼저 보통 몬테카를로 가격을 책정합니다. 각 경로는 npv를 생성합니다. 우리는 각 경로의 각 격자 점에 다음 정보를 저장합니다.
(# 오픈 픽스처, fx 스폿, 지금까지 누적 된 액수, 나머지 픽업의 npv)
따라서 우리는 이러한 주요 가격 동인에 대한 npv의 회귀 분석, iefx spot, 이미 누적 된 금액 및 공개 고정 수를 계산할 수 있다는 희망이 있습니다.
이 접근법은 fx 지점이 외부의 & nbsp; & nbsp; XVA 시나리오가 설정되었지만 그 밖의 모든 것 (금리 곡선 및 변동성)은 가격 결정 모델에 의해 암시됩니다. 이는 약간의 (또는 크게) XVA 시나리오 세트와 일치하지 않으며 속도 곡선과 변동성 구조가 시나리오의 일부입니다.
열린 수정 중 하나만 남겨 놓은 가장 간단한 경우를 수정합니다. 즉, 두 번째이지만 마지막이자 마지막 수정 후 어느 시점을 생각해 봅니다. 또한 당분간은 목표를 (즉, 그 기능을 무시하도록) 설정하고이를 활용합니다. 우리의 구조는 하나의 바닐라 fx 앞으로 붕괴됩니다. 우리는 250k 몬테 카를로 경로를 수행하고 결과를 계획합니다 (npv는 여기에 퍼센트로 표시됩니다).
무슨 일이 일어나고 있는지 보여? 우리는 & # 8211; 고정 누적 금액 & # 8211; 스팟 평균에 대한 컨디셔닝은 fx 포워드 npv를 나타내는 라인으로 진행됩니다. 아래에서 2d에서이 작업을 수행하고 명확 해지는 부분을 참조하십시오. 여기서 첫 번째 관찰에서 주목해야 할 것은 구름의 위치가 누적 된 양에 달려 있다는 것입니다. 낮은 지점은 누적 된 양이 적고 높은 지점은 누적 된 금액이 높습니다. 이것은 매우 그럴듯하지만 회귀를 수행 할 수있는 충분한 데이터가있는 영역에 영향을 미칩니다.
다음 그림은 동일한 데이터를 보여 주지만 누적 된 금액 차원을 따라 투영합니다.
게다가 나는 주어진 선형 값을 예측할 수있는 선형 회귀선을 추가했다. 이를 테스트하기 위해 버킷 [0.99,1.01], [1.09,1.11] 및 [1.19,1.21] 내에서 생성 된 모든 몬테카를로 데이터를 평균하여 1.0, 1.1 및 1.2의 스팟 값에 대해 npv를 추정하는 세 개의 수평선을 추가했습니다. . 희망은 수평선이 1.0, 1.1 및 1.2의 x 값에서 회귀선과 교차한다는 것입니다. 이것은 여기 꽤 좋아 보인다.
이제 실제 TARF를 보겠습니다. 즉 목표를 0.15로 설정합니다.
새로운 점은 클라우드가 타겟 레벨에서 절단되어 단순히 0의 npv를 나타내는 비행기로 넘어지는 것입니다. 이 영역에서는 구조가 마지막으로 고정되기 전에 종료되기 때문에 분명합니다.
그렇지 않으면 우리는 전체 쿠폰 지불을 가정하고 하나의 수정 만 남았 기 때문에이 경우는 이전의 경우와 크게 다르지 않습니다. 그래서 우리는 전에 목표 트리거에 의해 살해 될 수있는 fx forward를가집니다. 더 큰 도전은 쿠폰을 지불하는 경우입니다. 이전에 대상이 트리거 된 데이터를 제외하면이 경우 얻을 수 있습니다.
우리는 점 1.0, 1.1 및 1.2에 대한 npvs와 0.05의 축적 된 양 (0.04에서 0.06에 버킷으로 묶음)을 근사화하려고합니다. 목표 피처는 구름에 곡률을 도입합니다. 필자는 선형 함수 대신에 2 차 다항식을 피팅하여이를 고려합니다.
또한 npvs는 현재 15로 제한되고 더 높은 지점에 대해서는 감소합니다. 왜 후자입니까? 사실 지금까지는 시뮬레이션 시간으로만 고정 시간을 사용했습니다 (가격 만 필요하고 프로세스가 단순함으로 인해 많은 단계를 수행 할 수 있기 때문에). 그리고이 값이 1.1보다 클 경우 쿠폰의 차이가 1.1보다 클 수 있습니다.
최종 npv를 묻는 외부 XVA 시나리오의 경우처럼 고정 장치 사이에 시뮬레이션 시간을 추가하십시오 (연간 총 100 개).
근사는 1.0 지점에서는 꽤 괜찮지 만 1.1과 1.2에서는 더 이상 잘 작동하지 않습니다 (위의 두 경우 모두). 지금까지 우리는 npv 근사치에서 누적 된 금액을 사용하지 않았습니다. 따라서 예를 들어 누적 된 금액으로 자신을 제한하십시오. 0.02 ~ 0.08 (0.05의 누적 금액에 대한 예측이 필요하다는 것을 기억하십시오. 데이터를 더 많이 가지고 있지만 회귀에 더 큰 양동이를 선택합니다. 결국 두 개의 작은 데이터 세트에서 너무 많은 회귀 함수를 계산하십시오.)
보다 나은. 이 모든 것이 더 복잡한 환경에서 깨지는지 확인하기 위해 지금은 원래의 학습지로 이동 (2, 나머지 타겟 0.1, 전체 쿠폰)하고 1 대신에 5 개의 오픈 픽스처로 이동합시다 (내 경험에 따르면 그렇습니다. 그 일이 일어날 것입니다). 근사값을 구하는 누적 금액은 이제 0.01입니다.
괜찮아. 그러나 우리는 이제 새로운 인공물을 보았습니다 : 2 차 회귀 함수는 1.25보다 큰 반점에 대해 다시 떨어지기 시작합니다. 물론 이것은 합리적인 것이 아닙니다. So we have the necessity not only to compute different regression functions for different accumulated amounts (and different numbers of open fixings), but also for different spot regions. Let’s compute another quadratic regression for spots bigger than 1.2 for example (the blue graph):
That would work for higher spots.
To summarize the experiments, the approach seems sensible in general, but we have to keep in mind a few things:
The number of time steps in the simulation should be larger than for pure pricing purposes, possibly the grid’s step size should be comparable to the XVA simulation.
The regression function can be assumed to be quadratic, but not globally. Instead the domain has to be partitioned by.
the number of open fixings, possibly even the number of open fixings and the distance to the last fixing, the already accumulated amount the fx spot.
The next task would be to think of an algorithm that does a sensible partition automatically. One idea would be to require just a certain minimum percentage of the data generated by the initial monte carlo simulation for pricing available in each partition.
Next post will be on the implementation of the two pricing engines then !

No comments:

Post a Comment