데이터를 얻어오기 위해 꼭 필요한 정보를 어디서 얻을까..
각 증권사마다 api 가 있는데 데이터를 가져오는 예제가 대신증권으로 된 것을 처음 보았기 때문에 대신증권으로 하기로 했다.
대신증권 api에선 COM object를 이용하는데
프로그래밍 언어로 excel vba, c#, C++ 등으로 결과값을 요청하고 받아 올수 있다. java는 지원하지 않는다.
본인은 Java로 먹고살고 있기때문에.. 그리고 Java를 더 배워보자 하는 마음으로 Java Jacob 라이브러리 를 이용해 COM Object와 java를 연결하고자하는 시도를 하였다.
그러나.. 번번히 실패.. 예상하는 결과값은 안나오고 이상한 결과값이 나온다던가.. 하는 문제가 발생하였다.
본인이 .. 부족한 탓도 있지만 너무 Effort가 많이 들어가 Java는 포기하기로 하였다.. ㅠㅠ - 혹여나 Java로 하시려는 분은 참고하시길..
그후 C++로 대신증권API를 이용해 데이터 얻어오기 시도.. C++도 상당히 괜찮지만, 코드의 양이 많아지는 경향도 있고.. 결정적으로 내가 MFC, C++등의 코딩에 자신이 많이 없었으므로..
이것도 노력대비 효율이 잘 나오지 않아서 포기했다.. - 내가 프로그래밍 공부를 하는건지 주식공부를 하려는건지 헷갈릴 정도로 프로그래밍에 대해 공부를 했던것 같다.
물론 공부하는 건 좋은데.. 이렇게 해서 언제하나 싶어서 포기...
그래서, C#으로 하기로했다. C#은 사실 좀 자신있었기 때문에.. 금방금방 데이터를 가져올 수 있었다. ㅠㅠ 진작 C#할걸..
사실 C#을 안한 이유는 속도가 느리다느니.. 하는 내용도 있고 C++을 공부하고자 하는 마음도 있었기 때문이었다.
하지만, 속도가 느리다고 생각하는건 엄청난 오산이다. HFT 를 하거나 하는 경우에는 뭐 달라질 수도 있겠지만.. 그건 그때가서 생각할 일이고, native code와 managed code의 구현 속도는 어마어마한 차이가 있는 것 같다.
실제로 금융공학자들은 C++을 많이 사용할것 같지만.. 난 아직 그정도는 아니기 때문에 그냥 C#으로 결정했다. 막상 C#으로 해서 데이터를 얻어오는 속도 자체도 C++로 했을때랑 차이가 없다. - 있어도 못느낀다.
사실 excel vba도 복잡한 로직이 아니라면 .. 속도가 큰 차이가 없을 것 같다.
고로 가장 편한게 쓰는것이 답이다. 특히 프로그래밍에 전~~혀 뜻이 없는 분이라면 이런 에포트를 들일 이유가 전~~혀 없다. 하지만 관심이 있다면 말리진 않겠으나 주식공부 하는것 만큼 아니, 그 이상 에포트가 들어갈 수 있다고 생각하고 시작해야 한다.