시뮬레이션2017. 11. 14. 08:35

 

 

2017년 11월 12일 저녁.

 

 

모처럼 시간을 내어 한참을 프로그램 코딩 하고 있는데 한통의 카톡을 받았습니다.

 

 

 


▲ 연락주신분은 본 블로그를 보는 다른 독자분들도 알 수 있는 분이라 알 수 없도록 일부 정보를 삭제 했습니다.


 

전화를 걸어 하는 말씀을 들어보니 언젠가 자동매매 프로그램이라는 것을 구매 했는데 생각보다 성과가 저조하고 답이 보이지 않는다는게 주요 내용이었습니다.

 

 

또 자동매매라는 것, 매매 로직이라는 것, 시뮬레이션이라는 것, 조건식이라는 것에 대해 다양하게 약 30여분간 통화를 했고 간단히 정리된 문답식으로 그 내용을 정리 해보겠습니다.

 

 

독자 질문.

간단한 조건식만으로 자동매매가 가능한가요?

 

필자 답변.

가능할수도 가능하지 않을수도 있습니다만 조건식과 그 세부 조건값에 따라 다를 수 있습니다.

 

 

독자 질문.

간단한 조건식들로는 답이 보이지 않는것 같고 프로그램을 구매했던 @@@ 카페에서 보니 다른 구매자들도 괜찮은 성과를 냈다는 글이 전혀 없는데 무엇이 문제일까요?

 

필자 답변.

자동매매 프로그램에서 선택할 수 있는 조건의 종류와 그 조건들이 가질 수 있는 범위의 한계치 내에서 세밀하게 조절하여 성과를 분석 해볼 수 있는 경우의 수가 워낙 많기 때문에 손으로 일일이 하기에는 어려움이 있기 때문에 현재까지 괜찮은 성과가 나타나지 않았을 수 있으므로 앞으로 무한대의 시간이 주어진다면 언젠가는 찾아낼 수 있으리라 생각합니다.

좋은 성과를 낼 수 있는 조건값을 찾은 사람이 있다 하더라도 굳이 그것을 공개하려고 하지 않을테니 그런 사람이 있어도 보이지 않을뿐입니다.

 

 

독자 질문.

어떻게 해야 주식투자를 통해 좋은 성과를 낼 수 있을까요?

 

필자 답변.

앞서 말씀 드린것처럼 손으로 그리고 수동으로 무언가를 해본다는것에는 물리적인 한계가 있기에 최대한 많은 경우의 수를 대입해보고 찾으면 성공하는 것이고 그렇지 못하면 실패할 수 밖에 없습니다.

어떤 값이 가장 Best의 성과를 낼 수 있는지 시뮬레이션을 해보셔야 합니다.

무언가 사업을 하더라도 머릿속으로 혹은 종이위나 컴퓨터 화면상에서 나름대로 손익 계산을 해보고 성공 가능성을 따져보는데 아무런 대책없이 무작정 실거래로 이렇게도 저렇게도 해본다면 정작 꽤 좋은 성과가 나올 조건값을 찾은 시점에는 운용자금이 바닥난 상태일 수 있습니다.

 

 

독자 질문.

그렇다면 본인이 구매한 프로그램은 쓸모없는 프로그램인가요?

 

필자 답변.

단정적으로 말씀 드릴 수 없지만 수동으로 각 조건값들을 조합하고 세밀한 값 조정을 하며 성과 분석하기 어렵기 때문에 현실적으로는 성과를 내기에 불가능한 수준이 아닐까 생각합니다.

 

 

독자 질문.

앞으로 알고리즘 자동매매 시스템이 대세가 될 것으로 생각되는데 어떻게 준비해야 할까요?

 

필자 답변.

일반적으로 손매매를 하는 투자자라면 각자가 어떤 조건들에 대해 흥미를 느끼고 깊이 연구 해보았는지에 따라 다르겠지만 필자처럼 컴퓨터 프로그램을 이용해서 시뮬레이션을 하고 실거래를 하는 사람들에게는 "흥미"라는 것은 크게 의미를 가지지 않고 다양한 조건값들의 나열 속에서 어떠한 조합들의 결과가 주식투자라는 행위를 영위할 수 있도록 해줄 것인가에 대해 아주 세밀하게 시뮬레이션을 해보는것만이 중요 할 뿐입니다.

최대한의 경우의 수를 입력해서 검토 가능한 모든 상황에 대해 시뮬레이션 해본다면 그중에 충분히 좋은 성과를 보여주는 로직이 나타날 수 있습니다.

때문에 현재 상황에서는 성과가 전혀 나타나지 않고 있는 거래 행위를 모두 멈추고 시뮬레이션 해 볼 수 있는 여건을 직접 구축하여 다양한 상황들을 가정하여 시뮬레이션을 해보고 최적의 조건값을 찾는게 우선이며, 직접 시뮬레이션 시스템을 구축할 수 있는 부분이 아니라면 주변에 실력있는 프로그램 개발자에게 의뢰하여 시뮬레이션 시스템을 구축하는 것이 우선입니다.

최적의 조건값만 찾는다면 그 이후에는 별달리 어려울 점이 없을 수 있습니다.

 

 

제법 긴 시간동안 꽤 많은 내용에 대해 대화 했지만 일부 내용은 반복적인 것도 있기 때문에 대략 위와 같이 정리 할 수 있을 것 같습니다.

 

 

아래에서 필자가 시뮬레이션을 하는 상황들에 대해 조금 더 설명 하고자 합니다.

 

 

 

▲ 시뮬레이션 한 결과 값들이 저장되는 데이터베이스의 모습이며, 거래날짜, 각 조건값들의 조합인 로직명, 거래수량, 거래 종목코드, 진입가격, 진입시각, 진입후고가, 최대 평가손실, 최대 평가수익, 수수료, 손익, 순손익, 청산가격, 청산시각, 거래여부 등을 기록하고 있습니다.

 

 

이런 형태로 저장된 시뮬레이션의 결과가 아주 많지만 가장 끈질기게 물고 늘어졌던 로직에 대해 보여드리면 아래와 같습니다.

 

 

 

▲ 각 조건들에 따라 Tested Version을 달리하여 그 결과들을 저장한 공간들의 집합입니다.

 

 

 

▲ ver1_v1_and_v2 의 경우에는 첫 출발로 간단히 시뮬레이션하여 결과값이 약 132.8만개 저장되어 있습니다.

 

 

 

▲ ver2_v1_and_v2 의 경우에도 비슷한데 약 136.8만개의 결과가 저장되어 있습니다.

 

 

 

▲ ver3_v1_only 의 경우에는 3억 5162.4만개의 결과가 저장되어 있습니다.

 

 

 

▲ ver3_v2_only 의 경우에는 2782만 4160개의 결과가 저장되어 있습니다.

 

 

 

▲ ver4_v2_only 부터는 약간 방향을 달리하여 저장된 갯수가 감소합니다. 약 335만개의 결과.

 

 

▲ ver5_v2_only는 약 596만개의 결과.

 

 

 

▲ ver6_v2_(생략)에는 약 1355만개의 결과

 

 

 

▲ ver7_v2_(생략)에는 약 42.7만개의 결과

 

 

 

▲ ver7_v2_(생략)에는 약 42.7만개의 결과

 

 

(일부는 로직명을 포함하고 있는 내용이 있어서 그림판에서 삭제하였습니다.)

 

 

현재 필자의 사무실에 있는 여러대의 컴퓨터에서는 ver4_v1_only 라는 집합 이름에 대해 약 3주째 시뮬레이션이 진행되고 있으며 결과는 약 8억개 정도 나올 예정입니다.

 

 

또한 앞서 시뮬레이션 카테고리에 포스팅 한대로 AWS (Amazon Web Service = 아마존 클라우드)를 통해 약 일주일째 시뮬레이션이 진행되고 있으며 향후 약 14~16일후 시뮬레이션이 종료 될 것으로 생각하고 결과값으로는 약 15억개를 예상하고 있습니다.

 

 

이처럼 다양한 상황들을 스스로 만들고 구상하여 시뮬레이션을 해보고 그 중 최적의 조건값을 찾는것이 필자의 주된 일입니다.

 

 

물론 필자도 밤을 새워가며 HTS를 붙잡고 손으로 일일이 분석 해보기도 했고 여러 시행착오도 경험 해봤지만 이제는 차트라는 것을 별로 볼 일이 없고 일상 속에서 다양한 경험을 하며 또 다양한 정보들을 접하며 이런것들을 매매에 접목 시켜보면 성과가 어떨까? 라는 생각만 하고 살고 어느정도 범위가 정해지면 시뮬레이션 프로그램을 개발하여 테스트 하는 것만으로도 좋은 수익 로직을 발견해나가고 있습니다.

 

 

위에 공개한 범위 이외에도 다른 카테고리에 대해서 더 많은 결과값을 가지고 있을 정도로 시뮬레이션 해보았고 또 현재도 "보다 더 높이, 보다 더 멀리"를 위해 계속 연구를 하고 있습니다.

 

 

독자분들께서 손으로 한땀 한땀 정성을 들여 1년을 시뮬레이션 해보더라도 컴퓨터의 단 몇분만에 처리하는 정보량을 이길 수 없는 시대에 살고 있습니다.

 

 

좋든 싫든, 선택했든 아니든 상관없이 말입니다.

 

 

이미 좋은 성과를 내고 계시다면 전혀 무관한 얘기일 수 있으나 아직 길이 보이지 않는다면 방향과 방법을 달리해서 시도 해보는것은 어떨까 생각이 듭니다.

 

 

호가창에서 뵙겠습니다.

 

 

 

 

 

Posted by 투자의神
시스템 성과 합산2017. 11. 13. 17:30

 

 

 

며칠째 진폭이 큰 흐름이 이어지고 있습니다만 시스템은 여러 이유로 거래를 하지 않고 있습니다.

 

 

필자가 가동을 중단 시킨것이 아니라 시스템 내에서 거래를 하지 않고 있는 것이고요.

 

 

주로 그 이유들은 옵션 프리미엄이 너무 높아서 매수 진입이 어렵다거나, 그렇다고 매도 진입하기에는 어려운 시장 흐름이 될 가능성이 높다고 보았을 때가 있고, 방향성에 따른 추세 추종 매매이다보니 방향성을 가늠하기 어려울때가 있으며, 원하는 진입점이 나타나지 않았을때도 있고 아주 다양합니다.

 

 

이 모든것을 시스템에 알아서 판단하고 진입하며 청산합니다.

 

 

원더풀하지 않습니까?

 

 

거래가 없던점은 아쉽지만 곧 수익을 한 트럭 안겨줄 것으로 믿고 쉬어 갑니다.

 

 

 

Posted by 투자의神
시스템 03호2017. 11. 13. 17:00

 

 

 

 

 

Posted by 투자의神
시스템 02호2017. 11. 13. 16:30

 

 

 

 

 

Posted by 투자의神
시스템 01호2017. 11. 13. 16:00

 

 

 

 

Posted by 투자의神
아이디어, 알고리즘2017. 11. 13. 15:30

 

 

무엇이 인공지능이고 퀀트이며 시스템인지 개념을 잡기 위해 정리 해봅니다.

 

 

각 용어들은 무엇이 다르고 또 무엇이 같은지 어떻게 구분해야 하는지 설명 들어갑니다.

 

 

 

퀀트 (Quant)

수량을 뜻 하는 영어 단어인 Quantity, 계측을 뜻하는 영어 단어인 Quantiative 와 분석가 Analyst (애널리스트)의 합성어이며 컴퓨터 공학부터 수학, 물리학, 통계학 등의 지식을 바탕으로 주식시장 혹은 종목의 주가를 예측하는 사람을 뜻합니다.

 

 

어떠한 모델에 대해 입력값을 주면 연산을 통해 결과값이 나오게 되는데 입력값으로는 시장종류, 시가총액, 환율, 금리, 경제성장률, ROE, POE, PBR, 당기순이익, 영업이익, 주가, 매출액, 거래량 등 종류가 다양합니다.

 

 

이러한 값들을 넣은뒤 어떤 결과가 나오는지에 따라 투자 여부를 결정하는것이지요.

 

 

인공지능 (Artificial Intelligence)

사람과 같이 지능을 가졌으나 사람의 인체처럼 실제하지 않고 가상의 공간에서 존재하는 것을 뜻하며

최근에는 알파고와 이세돌의 바둑 대결에서 유명해졌지만 퀀트도 인공지능도 금융 시장을 대상으로 연구, 분석, 적용에 있어서 수십년 이상의 역사를 가지고 있습니다.

 

 

 

 

 

 

 

알고리즘 (Algorithm) 이하 위키백과 발췌

어떠한 문제를 해결하기 위한 여러 동작들의 모임이다.

유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다.

수학과 컴퓨터 과학에서 알고리즘이란 작동이 일어나게 내재하는 단계적 집합이다.

알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다.

알고리즘이라는 단어는 페르시아의 수학자이던 알콰리즈미의 이름에서 따온 것이다.

 

 

퀀트든 인공지능이든 어떤 문제를 풀기 위한 각자의 방법이 있을텐데 그 방법들을 알고리즘이라고 표현합니다.

 

 

둘의 공통점은 컴퓨터 하드웨어 이외에는 실물이 존재하지 않는다는 것이며 모든 연산을 컴퓨터나 서버 등을 이용하기 때문에 빠르고 정확하다는 것입니다.

 

또한 컴퓨터를 이용하며 내부적으로 알고리즘이라는 처리 체계를 가지기 때문에 이를 시스템이라는 단어를 붙여 퀀트 시스템, 인공지능 시스템이라고 표현하기도 합니다.

 

 

업계에서 로보 트레이더라던지 로보 어드바이저라고 하는것들도 퀀트나 인공지능의 범위에 포함됩니다.

 

 

필자의 경우에는 퀀트의 방법대로 입력값의 경우의 수와 상황을 달리하여 철저하게 계량 분석한 결과 데이터를 두고 성과가 좋은 것을 사용하는 퀀트라고도 할 수 있고 또 운용중인 여러 시스템중 일부는 각각 계량 분석한 결과에 기반하지만 그것들의 집단을 가지며 때에 따라 가장 최적화의 길을 선택하도록 퀀트와 인공지능의 조합으로 운용하기도 하는데 대표적인것이 본 블로그에 공개하고 있는 V2 로직입니다.

 

 

이렇게 글을 남기지만 필자도 그렇고 독자분들도 그렇고 심지어 제도권에서 근무하는 사람도 대체적으로는 시스템 트레이딩, 알고리즘 시스템 트레이딩, 알고리즘 트레이딩, 인공지능 시스템, 인공지능 알고리즘 시스템 등으로 각기 다른 용어를 혼용해서 사용하는게 일반적일 것입니다.

 

 

아무래도 외래어이고 또 경우에 따라서는 비슷한 영역도 있기 때문인데요.

 

 

사실 용어야 어떻든 사람 대신 알아서 최적의 거래를 하고 성과를 안겨준다면 최고 아닐까요?

 

 

이 부분에 대해 심도있게 연구 관찰하고 논문을 쓴 박사(Ph.D) 급이 아니라면 어떤 용어를 사용하더라도 크게 문제 없을 것 같습니다.

 

 

 

Posted by 투자의神
뉴스 검색기2017. 11. 12. 00:16

 

 

뉴스 검색기를 기다리고 계실분도 많고 또 의견 주는분도 많기에 진행경과에 대해 안내 해드립니다.

 

 

 

▲ 전체 화면이며 앞선 글에서 말씀드린 로그인 화면은 변동사항이 없으므로 그대로 유지됩니다.

 

 

 

 

 

▲ 1. 로그인 버튼이며 클릭시 별도의 데이터를 전송받을 이베스트 투자증권 로그인 화면이 나타나게 됩니다.

 

▲ 2. 키워드를 등록할 수 있는 공간이며 주요 기능으로는 주식 종목과 종목코드를 기본으로 각 사용자들이 사용하는 모든 키워드에 대해 Data Pool 을 구성하여 일부 키워드만 입력하더라도 자동검색 또는 자동완성 될 수 있으며 아래 키워드 등록 버튼을 클릭하지 않고 키워드를 입력한 후 엔터키를 누르더라도 키워드 등록이 되도록 설정할 예정입니다. (일부 기능 미구현)

 

▲ 3. 키워드 등록 버튼을 클릭하여 원하는 키워드를 입력할 수 있습니다.

 

▲ 4. 등록된 키워드의 목록이 출력되며 한번 등록된 키워드는 필자의 서버에 각자의 사용자 파일에 저장되도록 하여 언제라도 프로그램을 실행하면 기존에 사용하던 키워드 목록을 불러오도록 처리 될 예정입니다.

 

▲ 5. 등록된 키워드의 목록중 선택한 항목에 대해 삭제처리 할 수 있는 버튼입니다.

 

 

아래 부분부터 각 독자님들의 의견이 상당히 달라지기 때문에 최대한의 의견을 수용하고자 선택적 수신 또는 제거가 가능하도록 처리 될 예정이며 추가 의견이 있다면 최대한 빨리 의견을 정리하여 본 글에 Comment 해주세요.

 

▲ 6. 수신되는 뉴스 및 공시의 제목, 내용을 선택하여 (중복 선택 가능) 제목, 내용, 제목+내용 중 선택적으로 필터링할 수 있도록 처리 될 예정입니다.

 

▲ 7. 키워드 등록 여부와 상관없이 모든 뉴스를 수신하되 소리 알람으로 사용자에게 알려주는 전체 수신,

키워드에 등록된 뉴스만 수신, 키워드에 등록된 뉴스는 수신하지 않도록 할 부분이며 중복 선택이 불가하며 3개의 옵션중 하나만 선택 할 수 있습니다.

이 부분은 6번 항목과 연동되어 필터링 될 예정입니다.

사용자들의 Needs를 최대한 수용하려다보니 경우의 수 많아지고 작업량이 많아질 수 있는 부분이라 시간을 제법 잡아먹는 부분이기도 합니다.

 

▲ 8. 뉴스 제목과 송고 언론사명이 표기 될 부분입니다.

만약 7번에서 키워드 뉴스 수신 또는 키워드 뉴스 제거를 선택한다면 키워드와 제목의 텍스트 또는 같이 수신되는 종목명, 종목코드와 연동되어 수신 또는 미수신의 기능으로 작동하게 됩니다.

 

▲ 9. 뉴스 본문이 출력되며 역시 8번과 마찬가지로 작동되며 뉴스 본문의 경우

순수 텍스트만 수신 받는 경우, HTML TAG가 포함된 텍스트를 수신 받는 경우, web-page를 수신받는 경우로 나누어지며 순수 텍스트만 수신되는 경우가 아니라면 (이 부분은 사용자가 선택할 수 있는 옵션이 없으며 뉴스를 제공하는 언론사가 어떤 데이터를 보내냐에 따라 결정됨) 키워드에 등록되어 있더라도 원하는 기능으로 동작하지 않을 수 있습니다.

 

▲ 10. 뉴스 검색기 메인 화면 우측의 공간을 펼치거나 접을 수 있도록 하는 버튼이며 휴장일이거나 장중 시간이 아니면 비활성화됩니다.

 

▲ 11. 우측 공간이 펼쳐진 경우에 6번 7번과 연동되어 처리 될 부분이며 종목명, 현재가, 등락율이 출력되고 종목명을 클릭하면 해당 종목의 포털 사이트 페이지가 인터넷 창을 통해 열리게 될 부분입니다.

 

▲ 12. 소리 알람 on/off 기능을 담당하게 될 버튼입니다.

 

▲ 13. 프로그램 종료 여부를 결정할 수 있도록 하며 클릭시 미스 클릭을 방지하고자 종료 여부를 묻는 팝업창이 하나 뜨고 여기에서 "예"를 클릭하면 최종 종료되게 됩니다.

 

 

현재까지 프로그램의 주요 모습과 기능들에 대해 안내 해드렸고 일부 독자분들의 의견이 나뉘는 부분에 대해 중론을 모으는 과정도 필요하고 11월말까지 개인적으로 활용할 수 있는 시간이 많이 없다보니 작업이 지연될 수 있음을 미리 알려드리며 양해를 당부 드립니다.



의견을 모아야 될 부분중 하나가,

매일 7시경 증권사 서버 점검을 실시하는데 이때 프로그램을 재시작할 것인지 아니면 재접속 알림 메시지를 출력하는게 나을지 의견 주시기 바랍니다.

 

 

개진된 의견은 언제나 환영하오니 Comment 바랍니다.

 

 

Posted by 투자의神