trading api

  • 이베스트투자증권 api 이용하는 방법

    이베스트투자증권은 api를 com과 dll의 형태로 제공한다. 전자는 너무 느려서 나는 이용하지 않는다. dll로 이용하는 방법을 설명한다. 설치 이베스트투자증권의 계좌를 만들고 홈패이지에 접속하여 api 메뉴를 찾는다. 거기에서 api 이용 등록을 한 뒤 자료실에서 최신 dll 릴리스 버전을 다운로드한다. 디버그 버전을 다운로드하지 않도록 주의한다. 개발을 할 게 아니라 api를 이용해 만들어진 애플캐이션을 이용할 거라면 압축을 푼 뒤…

  • c# 레퍼런쓰 타잎 객체를 뜨레드의 아규먼트로 이용할 때 주의할 점

    레퍼런쓰 타잎 객체를 뜨레드의 아규먼트로 이용하면 뜨레드에서 처리되는 동안 객체의 값이 바뀐 경우 뜨레드가 전달 받은 객체가 아닌 바뀐 객체가 뜨레드 안에서 이용되는 문제가 생긴다. 예를 들어 WndProc으로 윈도우즈의 특정 메씨지를 잡아서 이걸 아규먼트로 하여 뜨레드를 만들어 돌리는 경우를 생각해 볼 수 있다. 이베스트투자증권의 api를 이용하여 주식 등의 가격을 처리할 때가 이렇다. 삼성전자의 현재 가격을…

  • 증권회사 api 체결 대이터와 호가 대이터의 수신 순서

    주식 등이 체결되면 체결 대이터가 만들어지며 호가 대이터는 변한다. 이들은 논리적으로 동시에 일어나므로 한국거래소와 증권회사 등은 멀티뜨레드로 처리할 수 있다. 그러나 실제로 받아 보면 주로 체결 대이터 – 호가 대이터의 순서로 수신된다. 한국거래소가 어떻게 처리를 하는지는 모르나 내가 테스트한 이베스트투자증권은 싱글 뜨레드로 처리하고 있다. 문제는 이렇게 동기 처리를 해도 그 순서대로 클라이언트가 받는 건 아니라는…

  • c# List.RemoveRange 부하

    이베스트투자증권의 api를 이용하여 코스피와 코스닥 합해 2,500개 정도 종목들의 체결 데이터와 호가 데이터를 수신하여 List에 담고 있다. 약간의 필터링을 하긴 하지만 그래도 그 양은 상당하다. 장이 끝날 무렵 1gb를 넘는다. 이렇게 수신하는 건 저장하기 위한 게 아니라 연산을 위한 것인데 대개의 경우 연산은 최근 한 시간 정도의 대이터를 대상으로 한다. 따라서 수 시간 전의 리스트…

  • LS api 현물 주문 CSPAT00600 가격 처리 주의

    ls 증권 api의 현물 주문 트랜잭션인 CSPAT00600을 이용할 때 가격은 소수 두 자리까지 표시된 실수형 대이터를 문자열로 바꿔 보내야 한다. 가격 문자열의 크기는 13.2로서 13자리 가운데 소수점이 한 자리를 차지하고 소수가 두 자리를 차지하여 실제 값은 열 자리가 된다. 실수형 대이터를 문자열로 받을 때에는 일관되지 않게 소수가 포함된 경우와 포함되지 않은 경우가 있다. 어느 경우에…

  • c# String 잔기술들 1

    String과 string의 차이 String은 클래스이고 string은 변수형이다. 그러나 아래 예제를 보면 이들 사이에 차이가 없다는 걸 알 수 있다. string은 변수형인데 new로 만들 수 있고 String은 클래스인데 new 없이 그냥 쓸 수 있다. 이들은 이렇게 변수형과 클래스 모두의 기능을 한다. 더 정확하게는 string이 String의 껍데기다. string is an alias for System.String in .NET.– Built-in reference…

  • c# List 잔기술들 1

    TextBox로 한꺼번에 출력하기 리스트의 아이템들을 TextBox에 출력할 때 한 줄씩 하면 느리다. 아래와 같이 한꺼번에 하면 빠르다. Environment.NewLine은 “\r\n”이라고 해도 된다. 전자는 후자를 호출하므로 후자가 더 빠르다. 아이템 순서 바꾸기 List에는 move 메떠드가 없다. ObservableCollection에는 move가 있지만 바인딩을 할 게 아니라면 List가 더 빠르므로 굳이 ObservableCollection를 쓸 필요는 없다. 어차피 move도 아래와 같은 방법으로 작동한다….

  • c# WndProc으로 윈도우즈 메시지 제어하기

    WndProc 메소드 WNDPROC은 win32 api에 들어 있는 콜백 함수이며 .네트의 Control.WndProc 메써드로 wrap되어 있다. 다른 환경에서 이용되는 메써드 등을 자신의 환경에서 이용할 수 있게 가공하는 걸 wrap한다고 한다. ‘포장한다’는 뜻이다. 콜백 함수란 이벤트 실행 함수를 말한다. callback은 ‘답신’을 뜻한다. 내가 아무개에게 전화를 했는데 그가 받으면 용건을 말하고 끊으면 된다. 그러나 전화를 했는데 그가 없고 다른…

  • 증권회사 api 선택시 고려 사항

    속도 com은 쉽게 이용할 수 있는 대신 느리다. com은 component object model의 머리글자인데 이름만 봐서는 이해하기가 어렵다. 마이크로소프트는 여러 플랫폼들 사이에서 쉽게 데이터를 오가게 하기 위해 이걸 만들었지만 실패했다. 지금은 윈도우즈 안에서만 일부 애플리케이션들 사이에서 데이터 전송을 하는 데에 이용된다. 윈도우즈 중급 이상 수준이 되는 사람이라면 ole는 들어봤을 거다. com, ole, 액티브x, ocx는 사실상 모두…