trading api

  • [ls증권 api] 뉴스 본문 한글 깨지지 않게 출력하기

    위 api는 뉴스 본문을 100 바이트씩 잘라서 처리한다. 알파베트와 숫자는 한 글자가 1 바이트로 처리되므로 문제될 게 없는데 한글은 그렇지 않아서 100 바이트씩 끝나고 시작하는 지점에서 깨진다. 위 문제를 피하려면 t3102OutBlock*를 occurs로 나눠 처리하지 않고 아래와 같이 통째로 변환한다. Marshal.Copy는 언매니지드 메모리 포인터를 매니지드 배열로 복사한다. ls증권의 서버는 utf-8도 16도 아닌 euc-kr로 인코드를 한다. euc-kr는…

  • ls증권 api는 유니코드가 아니라 앤시로 구현되어 있다

    현재 윈도우즈 프로그래밍은 유니코드를 기본으로 한다. 하지만 ls증권의 api는 비주얼 스투디오 6를 기반으로 하므로 ansi로 구현되어 있다. 버전 6이 나온 1998년에는 앤시가 기본이었다. 2000년 지나 unicode가 널리 쓰이기 시작했다. 윈도우즈 api들도 앤시가 기본이다. 과거 프로그램들과의 호환을 위해서 그렇다. 따로 unicode로 캐릭터 셋을 설정하지 않으면 앤시로 처리된다. 그럼에도 불구하고 윈도우즈 api를 임포트하면 비주얼 스투디오가 유니코드로 설정하라고…

  • 사실상 거래가 제한되는 ptp 미국 종목 – publicly traded partnership

    In the United States, a master limited partnership (MLP) or publicly traded partnership (PTP) is a publicly traded entity taxed as a partnership.wikipedia 우리 법에는 존재하지 않는 개념이다. 굳이 번역하자면 ‘상장 합명/합자 회사’라 할 수 있다. 미국에는 partnership이라는 사업체의 법적 형태가 있다. 법인격을 인정하지 않고 법인세도 부과하지 않는다. 우리 공동체의 합명/합자 회사와 비슷하지만 회사는 아니다….

  • 미국 주식 대이터 – 키움증권과 ls증권 비교

    미국 주식 자동 매매 애플리캐이션을 만들고 있다. 나스닥과 nyse 5천 개 넘는 종목들의 실시간 체결 대이터와 호가 대이터를 수신하여 처리한다. 키움증권 api는 com이라 가능하지 않을 거 같아 ls증권의 api를 이용하고 있다. 매수를 할 때 매수 호가 위의 한 틱 가격으로 들어가게 했다. 그런데 더 낮은 가격으로 체결되는 경우들이 예상보다 많다. 일반적이지 않은 상황이라 호가 대이터를…

  • ls증권 api 아웃블록 처리 요령 – occurs

    ls증권 api로 대이터를 리퀘스트하면 구조체로 온다. 이 api는 이 struct를 OutBlock이라 한다. 아웃블록의 종류 – 일체형과 분리형 아웃블록은 하나가 올 수 있고 둘 이상이 올 수도 있다. 후자의 경우 각 아웃블록이 따로 수신될 수 있고 여러 아웃블록들이 연결된 채로 한 번에 수신될 수도 있다. 다시 전자를 분리형이라 하고 후자는 일체형이라 한다. 아웃블록이 어떤 형태인지는 레퍼런스를…

  • 주식 api를 멀티 뜨레드로 이용할 때 데드록이 생기는 경우

    멀티 뜨레드로 작동하지 않는 ls증권의 api를 이용하고 있다. 3천 개 정도 종목의 체결과 호가 대이터를 실시간으로 받는다. 수신되는 빈도와 대이터의 양이 너무 많아서 이들을 매인 뜨레드에서 모두 처리하면 하나의 코어에서만 부하가 커져서 멈추게 된다. 패킷을 받은 때 바로 새로운 객체를 만들어 새로운 뜨레드로 보내 연산하면 cpu의 모든 코어들로 부하를 나눌 수 있다. 연산을 한다는 건…

  • c#으로 키움증권 영웅문 글로벌 제어하기 – 종목 변경

    영웅문 글로벌은 4와 비슷해 보이지만 다르게 작동한다. wm_settext와 wm_keydown을 연달아 보내면 전자만 작동하고 후자는 작동하지 않는다. 4와 달리 종목 코드를 입력하는 edit에 wm_settext로 문자열을 보내 입력하는 거로는 충분하지 않다. 이 에디트는 표준 윈도우즈 컨트롤이 아니다. 키를 하나씩 눌러 입력해 보면 각 동작에 드롭 다운 리스트가 작동하는 걸 확인할 수 있다. 이렇게 드롭 다운 리스트가 작동하는…

  • c#으로 키움증권 영웅문 4 제어하기 – 종목 변경

    영웅문 4의 0101 현재 가격창을 띄워 놓고 이 창의 종목 코드 입력 에디트에 종목 코드를 입력한 뒤 엔터를 누른 거처럼 작동하게 하는 방법이다. 이 창에서 종목을 바꾸면 다른 창들도 바뀐다. 현재 가격창을 띄워만 놓으면 되고 눈에 보이지는 않아도 된다. 핸들에 대한 기본적인 지식은 있어야 한다.