'시스템 02호' 카테고리의 다른 글
2018.08.03 - 시스템 02호 (0) | 2018.08.04 |
---|---|
2018.06.29 - 시스템 02호 (0) | 2018.06.29 |
2018.06.10 - 시스템 02호 (0) | 2018.06.10 |
2018.05.30 - 시스템 02호 (0) | 2018.05.30 |
2018.05.25 - 시스템 02호 (0) | 2018.05.27 |
2018.08.03 - 시스템 02호 (0) | 2018.08.04 |
---|---|
2018.06.29 - 시스템 02호 (0) | 2018.06.29 |
2018.06.10 - 시스템 02호 (0) | 2018.06.10 |
2018.05.30 - 시스템 02호 (0) | 2018.05.30 |
2018.05.25 - 시스템 02호 (0) | 2018.05.27 |
2018.08.03 - 시스템 01호 (0) | 2018.08.04 |
---|---|
2018.06.29 - 시스템 01호 (0) | 2018.06.29 |
2018.06.10 - 시스템 01호 (0) | 2018.06.10 |
2018.05.30 - 시스템 01호 (0) | 2018.05.30 |
2018.05.25 - 시스템 01호 (0) | 2018.05.27 |
앞서 빗썸 API를 이용하는 방법에 대해 포스팅을 했었지만 한 독자분의 요청으로 "빗썸 API를 이용한 가상화폐 실시간 체결 데이터 수신 프로그램"을 만들게 되었고 나름대로 충분히 (그래봐야 몇시간) 테스트 해봤다고 생각하지만 오류가 있을 수도 있으니 각자 확인 해보시기 바랍니다.
( v.1.005 배포 글 : http://systemtraders.tistory.com/512 )
"빗썸 API를 이용한 가상화폐 실시간 체결 데이터 수신 프로그램 v.1.100" 배포합니다.
데이터 수신을 희망하는 종목을 선택하면 해당 종목에 대한 실시간 체결 데이터를 모두 수신하여 텍스트 파일로 저장해줍니다.
기본적으로 데이터가 담긴 텍스트 파일의 저장 경로는 C 드라이브의 _Bithumb 디렉터리이며 해당 경로가 존재하지 않더라도 프로그램에서 자동으로 경로를 생성한 후 파일을 저장합니다.
( C:/_Bithumb )
v.1.005 변경 사항 :
- 텍스트 파일이 비어 있더라도 키 입력 TextBox가 Enabled 처리되어 키 입력이 불가능한 오류 수정
- 서버가 점검중이더라도 프로그램을 재시작 할 필요 없이 계속 켜두면 자동으로 서버 ON 인식
v.1.010 변경 사항 :
- 수신 종목을 변경하더라도 비트코인(BTC) 데이터만 수신되는 오류 수정
개인적인 프로젝트를 진행하느라 시간이 없어서 생각보다 늦게 업데이트 되어 죄송하고 잘 사용하시길 바랍니다.
본 프로그램을 이용하기 위해서는 가상화폐 거래소인 빗썸에 회원 가입을 한 후 API 사용 신청 등을 하여야 합니다.
API 사용 신청 등의 부분에 대한 자세한 내용은 이전의 글을 참고 해주세요.
( http://systemtraders.tistory.com/393 )
프로그램의 특성에 대한 내용은 아래 링크를 참고 해주세요.
( http://systemtraders.tistory.com/485 )
v.1.100 변경 사항 :
- 빗썸 서버 주소의 변경 처리 ( http://bithumb.cafe/archives/28917 )
- 빗썸에서는 5월 23일까지 기존의 도메인으로 서비스하고 5월 24일부터 변경된 도메인으로 서비스를 제공할 계획이고 본 프로그램에서는 현 시각을 기준으로 버전 업데이트 처리 합니다.
v.1.200 변경 사항 :
- 추가 상장된 코인을 목록에 추가
v.1.300 변경 사항 :
- 추가 상장된 코인을 목록에 추가
기존 프로그램을 구동중인 분들은 그대로 켜두시고 변경된 프로그램을 실행하여 프로그램 버전이 변경됨에 따라 데이터 손실이 없도록 처리하면 됩니다.
@ 주의 사항
빗썸 API 서버 내부적으로 동시 다발적인 request(리퀘스트) 발생시 접속을 차단하는 것으로 파악되니 동시에 여러개의 프로그램을 실행하시면 안되고 직접 테스트 해 본 결과 물리적인 컴퓨터가 구분 되더라도 데이터를 못 받는 것으로 보아 API KEY 등으로 일종의 '중복 접속' 등을 체크 하는 것 추정되기에 동시에 여러 데이터를 받으려면 데이터 수신 전용으로 사용할 다른 아이디를 만들어서 사용하는것이 좋을 것 같습니다.
첨부되어 있는 파일을 다운로드 후 압축해제 하면 쉽게 사용할 수 있게 되어 있으니 각자의 용도에 맞게 사용하시면 되겠습니다.
BiThumb_ReceiveRealData_v.1.300.zip
[추가]
수신받은 데이터의 각 필드명은 아래와 같습니다.
체결시각, 매수/매도체결 구분, 체결수량, 체결가격, 체결약정금액
체결시각은 DATETIME 형식으로 되어 있습니다.
매수/매도체결 구분은 ask는 매도, bid는 매수입니다.
체결약정금액은 체결수량 * 체결가격입니다.
빗썸 API를 이용한 가상화폐 실시간 체결 데이터 수신 프로그램 v.1.400 (0) | 2018.06.25 |
---|---|
업비트 (UpBit) 공식 API 출시 소식! (2) | 2018.06.21 |
빗썸 API를 이용한 가상화폐 실시간 체결 데이터 수신 프로그램 v.1.200 (2) | 2018.05.21 |
빗썸 API를 이용한 가상화폐 실시간 체결 데이터 수신 프로그램 v.1.110 (1) | 2018.05.16 |
바이낸스 (Binance) API 다뤄보기 #2 (6) | 2018.03.28 |
기다리던 큰 변동성 흐름중 아주 일부가 한번 발생 되었고 더 큰 변동성 장세가 남았다고 보여지는데요.
시장을 오랫동안 경험 해보니 이런 경우에 기다리던 때는 항상 천천히 오더군요.
언제나 그렇습니다.
시장은 아주 느긋하고 여유로운데 급한 것은 투자자 본인이라는 것을 꼭 기억 하셨으면 합니다.
또 안될 때는 쉬어가는 것도 좋은 방법입니다.
무리한 투자는 늘 헛발질을 하게 됩니다.
그런 맥락에서 시스템도 올해 상반기 제법 쉬어가고 있는 상황에서 기다리니 최근의 흐름처럼 또 기회가 오게 되고 그것을 잡으면 될 뿐입니다.
한동안 바쁘던 일들이 제법 마무리 단계에 접어들고 있지만 또 다시 제철을 맞이한 낚시 시즌이 도래함에 따라 블로그에 할애할 수 있는 시간적 여유는 많지 않습니다.
시간이 되는대로 블로그 포스팅도 재개 할 예정이며 또 다시 많은 분들을 뵐 수 있기를 고대 해보겠습니다.
그러나 여유 시간이 많아지면 그것을 잘 이용하고 활용하며 이전보다 더 여유롭게 생활 할 요량이므로 전처럼 매일 같이 글을 올리지는 않을 생각입니다.
호가창에서 뵙겠습니다.
덧1)
암호통화의 시세는 늘 말씀 드리듯 여전히 시간 조정과 가격 조정의 기간을 가지고 있으니 쉬어가기 좋을 때 인 것 같습니다.
2018.06.29 - 추세추종 인공지능 V2 시리즈 성과 합산 (0) | 2018.06.29 |
---|---|
2018.06.15 - 추세추종 인공지능 V2 시리즈 성과 합산 (0) | 2018.06.17 |
2018.05.30 - 추세추종 인공지능 V2 시리즈 성과 합산 (0) | 2018.05.30 |
2018.05.25 - 추세추종 인공지능 V2 시리즈 성과 합산 (0) | 2018.05.27 |
2018.05.04 - 추세추종 인공지능 V2 시리즈 성과 합산 (1) | 2018.05.06 |
개인적으로 좋은 개발자는 아닙니다.
때문에 개발에 관련한 내용을 적을 때마다 놓치거나 실수한 부분은 없는지 신경을 많이 쓰는 편입니다만 개발은 잘 하지만 금융이나 주식쪽에 대해 이해도가 낮은 개발자 혹은 학생들의 반복적인 문의가 많아 글을 남깁니다.
개발은 부수적인 수단일 뿐이다.
시장의 생리와 메커니즘을 이해하지 못하면 아무리 개발을 잘 한다 한들 소용이 없습니다.
어떤 작동원리를 가지고 있는지 이해 해야 합니다.
포커나 훌라, 고스톱 게임에 참여 하면서 룰을 이해하지 못하는 것과 같습니다.
조금은 안다 하더라도 시시각각으로 변화하는 상황에 맞춰 어떤 게임 운영 방법이 승리의 결과로 이어지게 할 수 있을지 알아야 되겠지요.
주문 프로그램의 개발 언어에 집착하지 마세요.
필자 역시 Assembly, C, C++, VB, PHP, JAVA, VC++, Python, Ruby, C# 등 많지는 않지만 다양한 언어들을 접해봤지만 결국 중요한 것은 애초에 구상한대로 프로그램이 작동하도록 구현하느냐의 차이일 뿐 ms (milli second) 단위의 접근에 집착할 필요가 없습니다.
예를 들어, 매일 종가에 사고 팔기로 한 로직을 가지고 있다면 어떤 언어를 선택하더라도 주문을 내는데는 큰 차이가 없습니다.
소 단위로 분리 구분 하세요.
주문 프로그램은 개발 언어의 장벽과 무관하다 할 수 있지만 시장의 시세 및 여러 정보 데이터를 수신하는 프로그램이나 분석을 위한 프로그램은 그렇지 않습니다.
프로그래밍 언어마다의 특성이 있는데요.
대체적으로 C언어가 빠르다고 알려져 있습니다.
그리고 Java라던지 Python은 '상대적'으로 느리다고 알려져 있지요.
주문 프로그램은 Java나 Python을 사용해도 됩니다.
HFT (High Frequency Trading)이 아닌 이상 말이지요.
그런데 조건이 단순하다면 모를까 알파고처럼 엄청난 경우의 수에 대해 연산을 하던 혹은 몇가지의 팩터에 대해서만 단순히 판독하던 '분석'의 영역에서는 가급적이면 빠른 처리가 필요합니다.
여러가지 프로그래밍 언어를 다룰 줄 안다면 가장 빠른 언어로 모든것을 처리 하거나 혹은 각각의 영역에서 가장 적합한 언어를 사용하여 처리하면 될 일입니다.
목적에 맞게 사용하세요.
HTS가 그러했듯 API를 이용하여 주식, 선물, 옵션, 암호통화 거래를 시도하는 사람들이 많이 증가 하였는데 한가지 언어만 고집하는 경우를 더러 목격하게 됩니다.
C언어가 대체적으로 빠르다고 하지만 경우에 따라서는 C언어보다 더 빠른 상황이 연출될 수 있습니다.
혹은 빠른 속도보다는 안정적인 운용이 중요할 수도 있고 동시 다발적으로 쏟아지는 각종 데이터를 잘 처리해야 될 때도 있는 등 여러 상황이 존재 할 수 있습니다.
이런 상황을 고려하여 개발을 진행해야 하는데 대부분 한가지의 언어나 상황만을 고집하는 경우를 제법 많이 보게 됩니다.
필자의 경우 시장 데이터의 수집은 C계열로, 분석은 Python과 TensorFlow로, 데이터베이스(DataBase)는 MySQL로, 주문은 C계열로 처리하고 있는데 이것이 정답은 아니겠지만 편의상 또한 목적에 맞게 사용중인 것으로 생각하고 있고 추후 언제라도 변경될 수 있는 부분입니다.
독자분들도 한가지만 고집할 것이 아니라 보다 효율적인 처리를 위해 고민을 많이 해보기를 권합니다.
어떤 라이브러리를 사용하시나요?
각자가 '다름'을 가지고 있듯 매매에도 '개성'이라는 것이 필요 합니다.
남들이 생각하지 못한 부분, 누군가 놓친 포인트에 +@가 있는 것이지 누구나 사용할 수 있는 공개 라이브러리에서 성배를 찾으려고 하지 말고 직접 부딪쳐 보세요.
그렇다고 시장에 성배가 있다고 생각하지는 않습니다.
계속 발전하도록 노력해야 하고 적어도 다른 사람들보다 한발짝 앞선 위치에서 진행할 수 있도록 노력해야 겠지요.
API vs DMA
이 부분은 필자가 사용하고 있는 DMA에 대해 경험이 적기 때문에 추후에 별도의 포스팅으로 대체 합니다.
컴퓨팅 파워의 선택이 중요합니다.
독자분들이 사용하고 있는 로직의 복잡도는 제각가일 것입니다만 어떤 일을 처리하기에 접합한가에 대해 고려하지 않는 경우를 제법 마주하게 됩니다.
고밀도 연산이 필요하면 컴퓨팅 파워가 매우 중요합니다만 앞서 언급한 종가 거래 정도라면 어지간한 컴퓨터로도 충분합니다.
컴퓨터의 사양 등으로 고민하지 마세요.
제일 중요한 것은 로직입니다.
위에 여러 부분들에 대해 말했지만 가장 중요한 것은 지속적으로 수익을 낼 수 있는 로직을 가지고 있는가이지 다른 부분에 대해서는 뭐가 어쩌고 저쩌고 해봐야 별 의미 없다고 생각합니다.
이에 덧붙여 얘기 하자면 필자의 '알고리즘 자동매매 시스템'에 대해 필자는 어느정도 만족하지만 그와 동시에 불만족 스러운 부분이 있고 이를 개선하기 위해 나름대로 고군분투중에 있습니다.
평균의 데이터로 접근해보면 최근 수개월간은 횡보 내지는 우하향하고 있기 때문인데요.
기본적으로 실제와 가장 유사한 형태로 시뮬레이션을 했고 그것을 시스템화 했으며 규모의 경제 영역에 발을 들이고 있기에 손익률의 관점에서 접근하고 있지는 않습니다.
이렇든 저렇든 가장 중요한 것은 수익 로직이므로 여러 고민들은 접어두고 열심히 시장 데이터를 모으고 분석하는 것이 우선이라는 말씀 드리고 싶습니다.
호가창에서 뵙겠습니다.
덧1)
블로그 독자분들을 대상으로 시장 데이터 수집 프로그램, 매매 프로그램, 분석 대행, 알고리즘의 교정 등 여러 도움을 드리고 있는데요.
프로젝트 단위로는 시간을 내어 드릴 수 있지만 자잘한 그리고 반복적인 질문에는 응대 해드리지 않습니다.
덧2) 향후 언젠가는 시세 데이터의 드리거나 분석 대행을 해드리거나 하지 않으려고 합니다.
도움을 드리고 싶은 마음은 있지만 전혀 준비되지 않은 상황에서 모든것을 다 만들어 달라고 하는 부류의 욕심 때문이겠지요.
아마 당분간은 하던대로 하겠지만 언제든 "STOP"을 외칠 준비를 하겠습니다.
지금까지 만들어본 프로그램 (16) | 2017.12.23 |
---|---|
시스템 트레이딩 (algorithm system trading) (0) | 2017.11.10 |
시장 재구현(시뮬레이션)을 위한 알고리즘 (7) | 2017.11.05 |
시장 제도의 변경 #1 개장, 폐장 시각의 변화 (0) | 2017.10.24 |
C# 이라는 언어를 선택한 이유 (5) | 2017.10.23 |
2018.06.29 - 시스템 09호 (0) | 2018.06.29 |
---|---|
2018.06.15 - 시스템 09호 (0) | 2018.06.17 |
2018.05.30 - 시스템 09호 (0) | 2018.05.30 |
2018.05.25 - 시스템 09호 (0) | 2018.05.27 |
2018.05.04 - 시스템 09호 (0) | 2018.05.06 |
2018.06.29 - 시스템 08호 (0) | 2018.06.29 |
---|---|
2018.06.15 - 시스템 08호 (0) | 2018.06.17 |
2018.05.30 - 시스템 08호 (0) | 2018.05.30 |
2018.05.25 - 시스템 08호 (0) | 2018.05.27 |
2018.05.04 - 시스템 08호 (0) | 2018.05.06 |
2018.06.29 - 시스템 07호 (0) | 2018.06.29 |
---|---|
2018.06.15 - 시스템 07호 (0) | 2018.06.17 |
2018.05.30 - 시스템 07호 (0) | 2018.05.30 |
2018.05.25 - 시스템 07호 (0) | 2018.05.27 |
2018.05.04 - 시스템 07호 (0) | 2018.05.06 |
2018.06.29 - 시스템 06호 (0) | 2018.06.29 |
---|---|
2018.06.15 - 시스템 06호 (0) | 2018.06.17 |
2018.05.30 - 시스템 06호 (0) | 2018.05.30 |
2018.05.25 - 시스템 06호 (0) | 2018.05.27 |
2018.05.04 - 시스템 06호 (0) | 2018.05.06 |
2018.06.29 - 시스템 05호 (0) | 2018.06.29 |
---|---|
2018.06.15 - 시스템 05호 (0) | 2018.06.17 |
2018.05.30 - 시스템 05호 (0) | 2018.05.30 |
2018.05.25 - 시스템 05호 (0) | 2018.05.27 |
2018.05.04 - 시스템 05호 (0) | 2018.05.06 |