시가 단일가 거래 대금으로 인한 왜곡과 보정 방법
매매에 거래 대금을 이용하는 경우 개별 종목의 절대적인 수치를 관찰할 때에는 문제될 게 없는데 여러 종목들의 거래 대금을 상대적으로 비교해야 할 때에는 시가 단일가 매매에 해당하는 금액을 걸러 내야 할 필요가 있다. 종목에 따라 이게 큰 경우가 있고 작은 경우도 있기 때문이다. 예를 들면 2024년 3월 29일 거래 대금 1위인 삼성전자와 2위인 엔젤로보틱스는 각각 2,212,079와…
매매에 거래 대금을 이용하는 경우 개별 종목의 절대적인 수치를 관찰할 때에는 문제될 게 없는데 여러 종목들의 거래 대금을 상대적으로 비교해야 할 때에는 시가 단일가 매매에 해당하는 금액을 걸러 내야 할 필요가 있다. 종목에 따라 이게 큰 경우가 있고 작은 경우도 있기 때문이다. 예를 들면 2024년 3월 29일 거래 대금 1위인 삼성전자와 2위인 엔젤로보틱스는 각각 2,212,079와…
자동으로 작동하는 앱을 만들어 이용할 때에는 애플리케이션이 스스로 장이 열렸는지 여부를 확인해야 할 때가 있다. 하나의 방법으로는 모든 목적에 맞게 제어할 수 없으므로 아래의 것들을 섞어서 쓴다. t8411 차트 데이터 트랜잭션을 이용하면 개장 시간과 폐장 시간을 확인할 수 있다. 수학능력시험일처럼 일시적으로 개장/폐장 시간이 바뀌는 날에 유용하지만 장이 열리지 않는 날에도 열리는 것처럼 시간들을 반환하는 문제가…
이베스트투자증권은 api를 com과 dll의 형태로 제공한다. 전자는 너무 느려서 나는 이용하지 않는다. dll로 이용하는 방법을 설명한다. 설치 이베스트투자증권의 계좌를 만들고 홈패이지에 접속하여 api 메뉴를 찾는다. 거기에서 api 이용 등록을 한 뒤 자료실에서 최신 dll 릴리스 버전을 다운로드한다. 디버그 버전을 다운로드하지 않도록 주의한다. 개발을 할 게 아니라 api를 이용해 만들어진 애플캐이션을 이용할 거라면 압축을 푼 뒤…
레퍼런쓰 타잎 객체를 뜨레드의 아규먼트로 이용하면 뜨레드에서 처리되는 동안 객체의 값이 바뀐 경우 뜨레드가 전달 받은 객체가 아닌 바뀐 객체가 뜨레드 안에서 이용되는 문제가 생긴다. 예를 들어 WndProc으로 윈도우즈의 특정 메씨지를 잡아서 이걸 아규먼트로 하여 뜨레드를 만들어 돌리는 경우를 생각해 볼 수 있다. 이베스트투자증권의 api를 이용하여 주식 등의 가격을 처리할 때가 이렇다. 삼성전자의 현재 가격을…
주식 등이 체결되면 체결 대이터가 만들어지며 호가 대이터는 변한다. 이들은 논리적으로 동시에 일어나므로 한국거래소와 증권회사 등은 멀티뜨레드로 처리할 수 있다. 그러나 실제로 받아 보면 주로 체결 대이터 – 호가 대이터의 순서로 수신된다. 한국거래소가 어떻게 처리를 하는지는 모르나 내가 테스트한 이베스트투자증권은 싱글 뜨레드로 처리하고 있다. 문제는 이렇게 동기 처리를 해도 그 순서대로 클라이언트가 받는 건 아니라는…
이베스트투자증권의 api를 이용하여 코스피와 코스닥 합해 2,500개 정도 종목들의 체결 데이터와 호가 데이터를 수신하여 List에 담고 있다. 약간의 필터링을 하긴 하지만 그래도 그 양은 상당하다. 장이 끝날 무렵 1gb를 넘는다. 이렇게 수신하는 건 저장하기 위한 게 아니라 연산을 위한 것인데 대개의 경우 연산은 최근 한 시간 정도의 대이터를 대상으로 한다. 따라서 수 시간 전의 리스트…
ls 증권 api의 현물 주문 트랜잭션인 CSPAT00600을 이용할 때 가격은 소수 두 자리까지 표시된 실수형 대이터를 문자열로 바꿔 보내야 한다. 가격 문자열의 크기는 13.2로서 13자리 가운데 소수점이 한 자리를 차지하고 소수가 두 자리를 차지하여 실제 값은 열 자리가 된다. 실수형 대이터를 문자열로 받을 때에는 일관되지 않게 소수가 포함된 경우와 포함되지 않은 경우가 있다. 어느 경우에…
String과 string의 차이 String은 클래스이고 string은 변수형이다. 그러나 아래 예제를 보면 이들 사이에 차이가 없다는 걸 알 수 있다. string은 변수형인데 new로 만들 수 있고 String은 클래스인데 new 없이 그냥 쓸 수 있다. 이들은 이렇게 변수형과 클래스 모두의 기능을 한다. 더 정확하게는 string이 String의 껍데기다. string is an alias for System.String in .NET.– Built-in reference…
TextBox로 한꺼번에 출력하기 리스트의 아이템들을 TextBox에 출력할 때 한 줄씩 하면 느리다. 아래와 같이 한꺼번에 하면 빠르다. Environment.NewLine은 “\r\n”이라고 해도 된다. 전자는 후자를 호출하므로 후자가 더 빠르다. 아이템 순서 바꾸기 List에는 move 메떠드가 없다. ObservableCollection에는 move가 있지만 바인딩을 할 게 아니라면 List가 더 빠르므로 굳이 ObservableCollection를 쓸 필요는 없다. 어차피 move도 아래와 같은 방법으로 작동한다….