개발

봇프로그램을 공부하고 싶다면? 봇프로그램 제작을 의뢰하고 싶다면?

by 커피중독자 posted Oct 11, 2017

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 댓글로 가기 위로 아래로

 

안녕하세요. 개발자이자 채굴자인 커피중독자입니다.

올해 6월부터 땡글에서 채굴관련 많은 도움을 받았었습니다.

자신의 삽질노하우를 아무대가없이 그리 상세히 알려주시는 것에 절로 고개 숙여지네요.

이에 저도 처음 시스템 트레이딩을 접하는 분들에 도움(?)이 될만한 글을 적어봅니다.

음... 어찌보면 처음부터 포기하라는 글이 될 수도 있겠군요.

 

제 시스템 트레이딩 경력은 2010년부터 시스템 트레이딩을 공부했었고 올초 회사를 나와 풀타임 개발을 하고 있습니다.

제 첫 작품은 2012년에 만들었으며 굳이 이름을 붙이자면 "공시데이터를 기반으로한 자동매매 봇"입니다.

주식을 해보셨던분들은 잘 아실겁니다.

DART에 뜨는 공시가 호재/악재일때 일시적으로 주가가 상승/하강 하는것을요.

제 처음 가설은 이렇습니다.

가설 1. DART의 공시를 빠르게 확인하여 호재일때 구매하고 어느정도 상승하면 판매해서 차익을 실현한다.

제가 당시에 다룰 수 있었던 상위프로그램(제 전공은 임베디드)은 vc++ 6.0이며 툴 다루는 수준은 학부수준이었습니다.

* 학부수준 : 관련서적 한권을 절반정도 읽고 5~6개의 챕터를 따라해보기 수준

회사생활을 병행하며 약 2달 후, 전 대신증권의 사이보스플러스를 이용하여 과거 3년치 주가데이터를 원하는(.txt파일 ㅋㅋ) 형태로 저장할 수 있었습니다. 어느 업종이든 투잡을 뛰는건 쉽지 않겠지만 전 당시 과로로 한번 쓰러졌었습니다. 하지만 기분은 정말 좋았죠.

아! 개발자를 다루시는 분들이 계시다면 참고하세요.

개발자는 돈이나 개발환경 보다 "성취감" 때문에 개발을 합니다.(그렇다고 돈, 개발환경을 다 무시하는건 아닙니다 ^^;)

주가데이터를 얻었으니 다음은 공시데이타를 가져오기 위해 DART의 웹페이지를 크롤링합니다.

종목을 클릭하고 페이지의 날짜를 선택하고 다음버튼을 눌러가며 공시데이터를 저장합니다.

너무 자주 페이지를 접속해서 DART에 아이피도 막혀도보고,

이를 우회하려 프록시를 거쳐 접속하기도 하며,

끝내는 개발기간 3개월 크롤링타임만 무려 80시간 걸려서 공시데이터를 다 퍼왔었지요. ㅋㅋㅋ

몇년 전 구글링을 하다가 DATR가 이제는 공시데이터를 API로 제공한다는 사실을 알게되었...써...글....쿨...럭...

 

입력데이터는 모두 준비가 됐습니다. 이제 학습을 시키면 되는데...

전기전자 전공인 저는 석사때 정말 용감하게도 타학과의 뉴럴네트워크 수업을 신청했었습니다.

당시 인공지능은 알파고가 나오기 전이라 찬밥신세였으나 그 가능성을 미리 내다본 나님은 수업에 입성 후, 처참한 학점과 함께 나락으로...

하여튼 인공지능이라 하기엔 좀 부족한 수많은 선형회귀가 난무하는 학습기를 설계하게 됩니다.

6년이 지난 지금 코드를 열어봐도 토만 쏠리고 손댈 수 없음. 수정불가. 판매불가. 다른곳에 적용불가. 예아~

 

하여튼 학습을 완료하여 전 주가가 급등하는 데이터가 무엇인지 꽤 상세하게 알게됩니다.

이쯤되면 님들 궁금하시죠? 과연 어떤 공시가 학습결과로 나왔는지...후후후

글로 써도 대화할 때처럼 이런기분이 오네요. 아우 좋아. 제가 이런쪽으로 좀 변태?같은 성향이 있느지라...딱 1분만 이 기분 만끽하고...

 

음... 당시공시목록을 저장했던 파일들이 날아간 관계로, 2012년 ~ 2014년 학습결과로 알려드립니다.

1. 줄기세포, 임상실험, 암 치료 등의 단어가 포함된 특허.

2. 반기/분기보고서 등의 영업이익%(과거 영엽이익대비 변화율)

3. 합병, 무상증자 : 이건 공시뜨기전 일정시간동안 거래불가가 됩니다. 무쓸모

4. 단일판매 이익(%)

이정도가 제 학습기가 뱉어낸 상위 단타리스트입니다.

특허의 경우 포함된 모든 단어가 학습기의 입력이고, 보고서 등은 숫자들을 분류 및 정규화하여 입력으로 사용합니다.

짧게는 5초 ~ 길게는 20분 정도 보유 후 판매합니다.

판매전략은 미공개

종목리스트전처리과정 미공개

ms단위 서버접속 노하우 미공개(아실만한 분들은 다 감 잡으셨겠지만)

 

주식을 꽤 해보신 분들은 누구나 아는거 아니냐고 할 수도 있겠습니다만, 이 데이터는 학습데이터입니다.

즉, 이런 공시가 뜬 모든종목(사실 약간 필터링 된 종목들)을 대상으로합니다.

해당 공시가 떴을 때, 오르거나 내린 수치의 평균치에 해당합니다.

수학은 거짓이 없습니다. 51%의 확률로 반복하면 51%에 수렴하지요. 음... 정정합니다. 트레이딩에선 수렴안할 때도 있을 수 있습니다. ㅡㅡ;

 

자! 다시 본론으로 돌아와서, 학습기를 통해 토나올법한 수식이 튀어나왔습니다.

이제 판매와 구매를 하면 됩니다.

판매와 구매기능을 함수화하고, 수식을 적용하고, 현금이 오가니 디버깅모드를 따로 설계하는 등

많은 공과 시간을 들여 구현합니다. 사실 여기서 꽤 많은 삽질과 시행착오가 발생합니다.

신중하게 만든다고 했지만 제 경우 약 700만원의 손해가 프로그램 에러로 인해 사라졌습니다.(태반이 호가차, 증권사 수수료, 세금)

특히, 호가차는 시스템 트레이딩에서 정말 주의를 기울여야 할 부분입니다.

또한, 트레이딩 봇을 만들어본 분들은 아실겁니다.

우리가 흔히 보는 봉차트등은 실제 거래됐었던 데이터와 다릅니다.

실제 주가 데이터는 긴박하게 움직일 때, 상상을 초월합니다.

예를들어 봉차트로 봤었던 5%상승 그래프구간을 실시간으로 정말 빠르게 샘플링하여 확인하면 10%에 근접하여 상승했던 구간이 존재합니다. 실제 10%상승구간이 존재하나 너무 짧은 시간 해당 가격을 유지했기 때문에 시간상 평균화된 가격으로 기록된 것으로 추측됩니다.

코인거래소는 제가 아직 초단타매매를 구현하지 못한터라 확인할 수 없었지만, 아마도 비슷한 현상이 있을거라 추측합니다.

이러한 주옥같은 정보들을 기반으로 봇프로그램을 완성합니다.

 

그래서 수익은 얼마나 났는가 궁금하시죠?

저 지금은 아우디 오픈카 몰고 임대업도 병행합니다.

* 인증해달라 하진 마세요. 해도 조작여부 판단 안되잖아요.

* 좋은사업 추천하지 마세요. 대출 이빠이 받았고 코인투자 외적인 현금보유액 거의 없어요.

그럼 또 궁금하시죠? 왜 채굴장하고 프로그램 만들고 하시나요?(주변분들에게 가장 많이 받는 질문입니다. 뭘 또 그리 벌리냐고)

답변 1 : "성취감"

답변 2 : 당신이 상상하는 대부분의 뻘짓거리 다 한 1년동안 해봤어요. 이젠 재미없어요.

* 이것도 인증할 방법 없는 자랑질이군요. 한때는 이때 놀았던 경험을 기반으로 책한권 내볼까 심각히 고민했었습니다.

 

다시 본문으로 돌아와 해당 프로그램을 만들기까지의 과정을 정리해드릴께요.

본업을 하면서 진행했으나 실질적으로 주당 3일정도 풀타임에 해당하는 노력을 쏟아부었습니다.

주말은 없었으며, 회사 회식 거의 참석 못했지요. 뭐 원래 술은 못마십니다.

가끔은 빠질 수 없는 행사(결혼식 등)중에도 머릿속엔 프로그램이 들어차있고, 빨리 끝나기를 바랬습니다.

본업 역시 연구개발이라 중복되는 두 프로젝트로 인해 몇 번의 사건사고도 발생했었지요.(공장생산라인 옆에서 수십명이 노려보는 가운데 코딩한적도 있습니다)

2년을 하얗게 불태웠지요.

사실 회사를 그만두기 전까지 처음 2년만큼은 아니지만 거의 비슷한 시간을 보낸 것 같습니다.(1년의 행오버기간 제외)

봇프로그램은 완성된다고 손을 놓아도 수익이 꼬박꼬박 들어올 만큼 만만한 프로그램이 아닙니다.

매매를 위한 API달랑 하나 익히시면 이제 기본기를 때신겁니다.

고속처리를 위한 멀티스레딩, 서버접속 제한을 피하기 위한 기술, 인공지능 등 엄청난 난이도의 학문들이 기다리고 있습니다.

게다가 매매전략도 하나의 큰 학문으로 봐야합니다.

물론 어느정도 선에서 타협할 수도 있으나, 멈추면 수익도 멈춥니다.

이익이 발생하는 지점에는 시간이 지나면 누군가가 또 오고 그들과 이익을 나누게되고, 그 누군가는 계속 늘어납니다.

기술또한 진보합니다. 어마어마한 속도지요.

프로그램 언어들은 계속 나오고, 수많은 기능을 제공하는 새로운 툴들이 등장하고,

이들이 통합되서 그 경계가 사라지기도 하고, 한때는 엄청난 기술을 개발했었던 권위적인 엔지니어가

이제는 c밖에 모르는 구닥다리 병신취급받는 이런 그지같은 세상...음...죄송...흥분했네요.

 

봇프로그램은 대박 아니면 쪽박입니다.

게다가 코인시장은 시세가 오르고 돈을 버는 것보다 더 확실시되는 수익모델도 존재합니다.

공부할 것 많고 힘든 시간을 꽤 보내야하며 성공을 확신할 수도 없습니다.

공개된 기술 혹은 누군가 갔던길을 맨땅에 해딩하며 따라가는 때가 많습니다.

혹 제가 위에 언급했던 대부분이 구현가능하나 아직 큰 수익을 내지 못한 엔지니어가 있다면, 고지가 코앞이라 소리쳐주고 싶습니다.

 

매우 특히나 봇프로그램 제작을 의뢰하거나 사업을 하려는 사업주께서 이글을 보신다면 해주고 싶은 말이 있습니다.

당신이 봇프로그램 제작이 가능하고 투자를 위한 어느정도의 목돈을 가지고 있다면 월급받아가며 남들꺼 개발할겁니까?

앞서 제가 설명한 그 노력을 지불하고 얻은 기술입니다. 또한 그정도 노력으로 매매전술 전략을 공부하고 트레이딩 경험을 쌓는다면,

그들만의 기발한 전략, 전술설계가 불가능할까요? 창의적인 프로그램을 많이 한 사람들은 특히나 패턴같은것을 찾는데 뛰어납니다.

제 경험입니다만, 삼성같은 대기업을 제외한 중소, 중견기업의 연구소는 2~3명의 에이스가 전체를 먹여살립니다.

그 2~3명의 에이스는 회사내에서 빈둥대거나 지각이 잦거나 결근을 밥먹듯이 하기도 합니다.

허나 어떤때는 3일밤을 세면서 프로젝트를 진두지휘하기도 하고 코딩하기도 하고 팀이 싸놓은 똥을 치우기도 합니다.

연구소는 이 2~3명의 개발자와 그 시다바리 엔지니어들로 구성됩니다.

당신이 원하는 결과물을 설계해줄 수 있는 엔지니어는 이런 2~3명의 엔지니어입니다.

봇프로그램을 만들 수 있는 개발자가 다 똑같다고 판단한다면 큰 오산입니다.

전 2일만에 단순한 봇프로그램 만들 수 있습니다. 허나 위 언급했었던 기능을 추가해서 0.01초 싸움을 하는 봇을 만드는데는

몇개월이 걸립니다. 게다가 수익성을 위해 계속적으로 연구하고 업데이트 해나가야 쓸만한 봇을 유지시킬 수 있습니다.

전 선후배 및 지인들을 통해 열정페이에 속아 노력과 시간을 착취당하는 엔지니어 케이스도 보았고,

수백만원의 개발계약금을 날로 뜯기는 사업주도 보았고, 진공청소기 만들어달라는 의뢰에 빗자루 들고오는 엔지니어를 본적도 있습니다.

의뢰자와 개발자의 호가차가 우리나라는 정말 엄청난 갭을 가지는것 같습니다. 그래서 사기꾼이 많다고 하는지도 모릅니다.

천만원 주면서 알파고 하나 만들어달라고 하면 누가 만들겠다고 나서겠습니까?

그 천만원 날로 먹을려는 날파리들만 득달같이 달려들겠죠.

당신이 얼마면 만들어줄 수 있습니까라고 질문했을 때, 터무니없는 금액을 내새운 사람이 아마도 위 언급한 능력자일 가능성이 큽니다.

기반지식이 전무하다면 개발의뢰를 하지 마시기 바랍니다. 보는것만으로도 크게 무시를 당하는 기분이 듭니다.

 

 

* 참고 : 제 코인수익모델 알려달라는 쪽지 오면 걸죽하게 욕할겁니다. ㅋㅋ

* 참고 : 개발의뢰는 안받아요. 저 돈 벌 의욕 별로 없어요.

* 참고 : 오타쿠에요. 글로는 이리 의견피알해도 만나면 병신같아요.

* 참고 : 땡글에 계신 능력자분들은 분명 몸에서 사리가 나올거에요. 너무차케

 

-------------------------------------

꼬리말

* 게시글 내용 삭제레벨 강등

* 질문은 각 주제별 게시판에.

 

비트코인 암호화화폐 커뮤니티 땡글~ 땡글~

-------------------------------------

87
default debug random = 0 / type = READ / detected = READ

Articles

64 65 66 67 68 69 70 71 72 73
default debug random = 0 / type = READ / detected = READ