국채선물(KBT) underlying 가상채권 duration - matlab function
- 증권사들이 스프레드 거래를 위해 선물과 현물을 엮어서 매매하는 경우가 많습니당.
   : 3년vs10년 스프레드가 줄어들거라구 생각하면 10년물을 매수하고 선물을 상응하는 만큼 매도하는 식이지여

- 그런 거래를 위해선 선물 underlying 가상채권의 듀레이션을 계산해야 합니다.

- 아주 기초적인 함수이고 더군다나 C++ 모듈도 아니지만 개시차원에서 함 올려봄다. --;;;



KTBF_Duration.m

KTBF_PriceToYTM.m

KTBF_YTMToPrice.m


- matlab에서 dll을 만들어서 써먹을려구 했었는데 ... 절반의 성공 --;;
by 뻐꾸기 | 2006/07/21 22:59 | 지호아빠 | 트랙백 | 덧글(1)
MFC연습프로젝트1-애플리케이션 구성과 리스트박스 컨트롤
MFC를 이용하여 간단한 프로그래밍을 연습하려고 합니다. 내용은 Downside deviation을 구하는 것입니다.

  1. MFC AppWizard[exe] 프로젝트를 만듭니다. 애플리케이션타입은 SDI, 나머지는 디폴트.
  2. 리소스에디터에서 연습프로젝트를 모아둘 메뉴를 만듭니다. 이 메뉴하단에 앞으로 연습할 내용을 담아둘 것입니다. 여기에선 [포트폴리오 공학]이라는 메뉴를 만들고 그 하단에 [downside deviation]메뉴를 둘 것입니다. 이것을 클릭하면 downside deviation을 계산하는 대화상자가 뜨게 됩니다.
  3. 리소스에디터에서 대화상자를 하나 추가합니다. 대화상자를 아래의 그림처럼 구성합니다.
    대화상자에는 레이블 컨트롤 2개, 에디트컨트롤2개,버튼컨트롤 2개, 리스트박스 컨트롤 1개입니다. 컨트롤은 나중에 추가될 것입니다.
  4. 대화상자구성을 마치면 클래스위저드(Ctrl+W)를 실행하여 새로운 클래스를 만듭니다. 이것은 CDialog클래스를 상속하는 클래스가 됩니다.
  5. 이제 메뉴와 대화상자를 연결합니다. 우선 메뉴를 클릭하여 작동하도록 클래스위저드에서 COMMAND메시지를 사용하는 이벤트프로시져를 만듭니다. 여기에 대화상자를 띄우는 내용을 채웁니다. 이때 주의할 점은 대화상자의 헤더파일을 인클루드해주어야 합니다.

    #include "dnsidev.h" // 대화상자의 헤더파일
    ...
    ...
    ...
    void CPe1View::OnPeDownside()
    {
    // TODO: Add your command handler code here
    Cdnsidev dlg = new Cdnsidev;

    dlg.DoModal();
    }

  6. 대화상자의 리스트박스는 Time Period,Monthly return(ROR),ROR less,Squared 등 네 개의 컬럼을 가질 것입니다. 리스트박스 하단의 에디트박스는 월간수익률을 입력하여 리스트박스에 채워넣기 위한 용도입니다. 즉 에디트박스에 월간수익률을 입력하고 [Add]버튼을 클릭하면 리스트박스에 추가되고 [Del]키를 누르면 현재 선택한 리스트박스의 항목을 삭제합니다. 그리고 리스트박스에서 항목을 선택하면 선택한 항목이 하단의 에디트박스에 채워지게 됩니다. 다음은 이러한 내용을 코드로 옮긴 것입니다.

    void Cdnsidev::OnButtonAdd()
    // 에디트컨트롤의 내용을 리스트박스에 추가하는 프로시져
    {
    // TODO: Add your control notification handler code here
    CString strText;

    UpdateData();
    strText = m_text_listbox; // 에디트컨트롤의 변수를 strText라는 임시변수로 옮긴다.
    UpdateData(FALSE);

    m_ctl_listbox.AddString(strText); //임시변수의 내용을 리스트박스에 추가

    }

    void Cdnsidev::OnSelchangeSheet()
    // 리스트박스의 항목을 클릭하면 실행하는 프로시져
    {
    // TODO: Add your control notification handler code here
    int index;
    CString strText;

    index = m_ctl_listbox.GetCurSel(); //선택한 항목의 인덱스를 얻어온다
    m_ctl_listbox.GetText(index,strText); //인텍스를 가지고 텍스트를 얻어온다.

    m_text_listbox=strText; //임시변수 strText를 에디트컨트롤의 변수인 m_text_listbox로 복사
    UpdateData(FALSE); // 복사된 내용을 표시하도록 컨트롤을 업데이트한다.
    }

    void Cdnsidev::OnButtonDel()
    // 선택한 항목을 삭제하는 프로시져
    {
    // TODO: Add your control notification handler code here
    int index;
    CString strText;

    index = m_ctl_listbox.GetCurSel(); // 선택한 항목의 인덱스를 얻어온다
    m_ctl_listbox.DeleteString(index); // 해당 인덱스를 삭제한다.
    }
    데이터를 가지는 컨트롤에는 변수를 따로 만들어 컨트롤과 물려두어야 하는데, 하단의 에디트 박스는 CString형의 m_text_listbox변수, 리스트박스는 Control형 m_ctl_listbox변수입니다.

다음은 실행한 대화상자의 모습입니다.
by 뻐꾸기 | 2006/02/22 15:53 | 민석아빠 | 트랙백(1) | 덧글(0)
새로운 시작
C++관련 내용을 단순히 보는 것 뿐만아니라,  
각자 관심영역을 C++로 구현해보면서 경험을 나누는 곳이 되기를 기대합니다.
by 뻐꾸기 | 2006/02/19 16:20 | 트랙백 | 덧글(0)


< 이전페이지 다음페이지 >