며칠간의 기록을 모아보니 금융공학

지난 번에 DDE를 이용하여 주가지수선물의 일중 가격 빈도를 포스팅했는데, 이번에는 하루가 아닌 며칠간의 빈도를 모아서 한꺼번에 그려 보았다. 뭐 대단한 발견을 기대한 건 아니고 그저 심심풀이로...

어제 주가지수선물 도수분포 금융공학

지난 번 DDE를 이용한 프로그램을 이용하여 선물데이터를 워크시트에 쌓아 보았다. 데이터의 갯수는 3,636개인데, API를 이용하여 얻는다면 더 많은 데이터를 얻지 않을 까... 사실 블룸버그를 통해 틱데이터를 얻기도 했지만 직접 만든 걸로 해보는 게 의미있기도 하고 퇴사하면 블룸버그와 빠이빠이 일테니

선물데이터를 가지고 어제 하루동안 움직인 포인트의 histogram을 만들어 보았는데, 대충 정규분포 비스무리한 모양이라고 우기는 중...^^ 계속 관심을 가지고 있는 것은 일중 고점과 저점을 예측하고, 발생시각을 쌓아 통계를 만들어 보는 것이다. 그동안 게을러서 안하고 있는데 대단한 결과가 나오리라는 희망은 안가지고 있다.


위에서 노란막대가 어제의 종가포인트

간단한 DDE 프로그래밍 EXCEL/VBA

DDE(Dynamic Data Exchange)는 윈도 초창기부터 프로그램간 데이터를 주고 받는 통신방법인데, 지금도 많은 증권사 HTS에서 이를 지원하여 간단하게 시세데이터를 실시간으로 엑셀 워크시트로 불러올수 있다. 이후 엑셀에서는 더 빠른 RTD()함수를 지원하지만 여전히 DDE를 더 많이 사용한다.

아주 오래 전에 외국계증권사에 놀러가서 로이터단말로부터 DDE를 이용하여 데이터를 얻어 오는 프로그램을 재능기부(?)로 만들어 주었는데, 그때 데이터가 바뀌면 이를 가져와 데이터베이스를 만들어 주는 프로시저를 워크시트의 Change이벤트에 걸어 두었는데, 이게 전혀 호출이 안되어 애를 먹었다.

DDE를 통해 데이터가 변경되는 경우 Change이벤트는 쓸데 없고 Workbook개체의 LinkSources와 SetLinkOnData 메서드를 이용한다. LinkSource는 DDE를 통해 교환하는 데이터 아이템을 Variant형식의 배열로 돌려주고, SetLinkOnData는 아이템 값의 변경시 사용할 프로시저를 걸어 주는 역할을 한다.

다음은 시간 아이템 변경시 시간과 현재가를 출력하는 VBA 예이다. Start_DDE()를 실행하면 시간아이템에 onStart()라는 프로시점을 걸어준다. 프로시저 설정시 작은 따옴표(')안에 프로시저이름을 넣어준다. Stop_DDE()는 걸어둔 프로시저를 해제하는 것으로 SetLinkOnData 메서드에 빈문자열을 던져 주면 된다.
Sub Start_DDE()
Dim aLinks
Dim i As Long
Const DDE_ITEM_TIME As String = "DDEServer|Fu101J12!Item3"

aLinks = ThisWorkbook.LinkSources(xlOLELinks)
If Not IsEmpty(aLinks) Then
For i = 1 To UBound(aLinks)
If aLinks(i) = DDE_ITEM_TIME Then
ThisWorkbook.SetLinkOnData aLinks(i), "'onStart'"
Exit For
End If
Next
End If
End Sub

Sub Stop_DDE()
Dim aLinks
Dim i As Long

aLinks = ThisWorkbook.LinkSources(xlOLELinks)
If Not IsEmpty(aLinks) Then
For i = 1 To UBound(aLinks)
ThisWorkbook.SetLinkOnData aLinks(i), ""
Next
End If
End Sub


Sub onStart()
Dim s As Worksheet

Set s = Sheet1

On Error GoTo Err_Handelr

Debug.Print s.Range("B3"), s.Range("B4") '// B3는 시간, B4는 현재가격

Exit Sub
Err_Handelr:
MsgBox "Error(" & Err.Number & ") " & Err.Description & " [onStart]"
Call Stop_DDE
End Sub
위의 프로시저는 한국투자증권 HTS를 이용한 것이다.

STL이 무엇인지 알고 계십니까? C/C++

한빛미디어에서 제공하는 좋은 강좌가 하나 있네요...처조카가 컴퓨터사이언스를 전공하느라 종종 저에게 c/c++ 과제를 물어 보는데, 비전공자가 전공자를 가르쳐준다는 게 재미있는 현상입니다.

About STL : C++ STL 프로그래밍(1)
About STL : C++ STL 프로그래밍(2-1)
About STL : C++ STL 프로그래밍(2-2)
About STL : C++ STL 프로그래밍(3) - 연결 리스트

STL이 무엇인지 알고 계십니까?

C++를 주 프로그래밍 언어로 사용하고 계신 분들은 알고 있으리라 생각합니다. STL은 C++ 언어의 '표준 템플릿 라이브러리 (Standard Template Library) '의 약자입니다.

STL을 간단하게 말하자면 일반적으로 많이 사용될 수 있는 자료구조와 알고리즘 모음 라이브러리가 말할 수 있습니다.

STL은 C++ 언어가 처음 만들어질 때부터 있었던 것이 아니고 1998년에 C++ 표준이 정해지기 전인 1993년 말 무렵에 Alex Stepanov가 C++ 언어의 창시자인 Bjarne Stroustrup에게 보여준 후 준비 기간을 걸쳐서 1994년에 표준 위원회에 초안이 통과됩니다.

참고로 C++ 표준은 1989년에 시작되어 1998년 9월에 마무리되었습니다....

알기 쉽게 풀어준 SQL의 조인 Data science

SQL의 기본적인 문법은 알고 있지만,자주 사용하지 않아 이너 조인/ 아우터 조인 등등이 아직도 헤갈리는데, 아래의 다이어그램을 보니 확실히 쉽다. 역시 글보다는 그림이다.

1 2 3 4 5 6 7 8 9 10 다음