KR102394096B1 - 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법 - Google Patents

인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법 Download PDF

Info

Publication number
KR102394096B1
KR102394096B1 KR1020210018650A KR20210018650A KR102394096B1 KR 102394096 B1 KR102394096 B1 KR 102394096B1 KR 1020210018650 A KR1020210018650 A KR 1020210018650A KR 20210018650 A KR20210018650 A KR 20210018650A KR 102394096 B1 KR102394096 B1 KR 102394096B1
Authority
KR
South Korea
Prior art keywords
stock
information
main server
price
stocks
Prior art date
Application number
KR1020210018650A
Other languages
English (en)
Inventor
김민규
Original Assignee
김민규
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김민규 filed Critical 김민규
Priority to KR1020210018650A priority Critical patent/KR102394096B1/ko
Application granted granted Critical
Publication of KR102394096B1 publication Critical patent/KR102394096B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis

Abstract

본 개시는 주식 자동매매를 하기 위한 시스템의 동작방법에 관한 것으로써, 메인 서버가 증권사 서버로부터 급등주에 대한 제 1 시간 영역에 포함된 제 1 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 미리 정해진 복수의 제 1 검색식 정보 중 하나에 기초하여 검색된 제 1 종목에 대한 제 1 시간 영역에 포함된 제 2 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 급등주에 대한 제 2 시간 영역에 포함된 제 3 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 제 1 종목에 대한 제 2 시간 영역에 포함된 제 4 주식 정보를 수신하는 단계, 및 메인 서버가 제 1 주식 정보에 대한 제 3 주식 정보의 상관 관계 및 제 2 주식 정보에 대한 제 4 주식 정보의 상관 관계를 기계학습한 제 1 기계학습모델을 획득하는 단계를 포함하고, 제 1 주식 정보 및 제 2 주식 정보는 단위시간에 따른 주가정보를 포함하고, 제 3 주식 정보 및 제 4 주식 정보는 제 2 시간 영역에서의 주가 등락률을 포함하고, 제 1 시간 영역은 제 2 시간 영역의 이전인 것을 특징으로 한다.

Description

인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법{SYSTEM FOR DERIVING OPTIMIZED SEARCH FORMULA USING ARTIFICIAL INTELLIGENCE AND OPERATION METHOD THEREOF}
본 개시는 인공지능을 이용하여 최적 검색식을 도출하는 시스템에 대한 것이다. 보다 구체적으로 본 개시는 복수의 검색식 중 최대의 수익을 창출할 수 있는 종목들을 검색하기 위한 검색식을 도출하기 위한 시스템에 대한 것이다.
일반적인 개인 투자자의 경우에는 주가지표에 대한 정교한 분석에 기반을 두지 않은 채 주식 종목에 투자하며, 또한 투자 보다는 투기에 가까운 매매성향으로 소수의 종목에 집중 투자함으로써 수익의 극대화를 추구한다. 또한, 일반적인 개인투자자들은 전문가들이 추전하는 종목에 투자하는 경우가 있으나, 시장상황은 지속적으로 변화하므로 전문가들이 추천하는 종목에 투자한다고 하여 손실을 방지할 수는 없는 실정이다.
상술한 개인 투자자들의 큰 손실을 막을 수 있는 방법은 다수 종목에 분산 투자하여 변동성에 대한 위험성을 줄이는 포트폴리오 투자를 하는 것이지만, 주식 포트폴리오를 구성하는데 있어서 개별 종목의 주가 데이터를 활용하지 않는 문제점이 있으며, 또한 주가에 영향을 미치는 근본 요인들이 너무나도 다양하고 복잡하여 상술한 주가지표만을 이용하여 변동 가능성이 큰 주가를 예측하는 것은 어려운 문제점이 있다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 증권사 서버로부터 급등주에 대한 제 1 시간 영역에 포함된 제 1 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 미리 정해진 복수의 제 1 검색식 정보 중 하나에 기초하여 검색된 제 1 종목에 대한 제 1 시간 영역에 포함된 제 2 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 급등주에 대한 제 2 시간 영역에 포함된 제 3 주식 정보를 수신하는 단계, 메인 서버가 증권사 서버로부터 제 1 종목에 대한 제 2 시간 영역에 포함된 제 4 주식 정보를 수신하는 단계, 및 메인 서버가 제 1 주식 정보에 대한 제 3 주식 정보의 상관 관계 및 제 2 주식 정보에 대한 제 4 주식 정보의 상관 관계를 기계학습한 제 1 기계학습모델을 획득하는 단계를 포함하고, 제 1 주식 정보 및 제 2 주식 정보는 단위시간에 따른 주가정보를 포함하고, 제 3 주식 정보 및 제 4 주식 정보는 제 2 시간 영역에서의 주가 등락률을 포함하고, 제 1 시간 영역은 제 2 시간 영역의 이전인 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은 메인 서버가 사용자 단말기로부터 투자 모드를 수신하는 단계, 메인 서버가 투자 모드에 기초하여 복수의 제 1 검색식 정보 중 복수의 제 2 검색식 정보를 선택하는 단계, 메인 서버가 증권사 서버로부터 선택된 복수의 제 2 검색식 정보 중 하나에 기초하여 검색된 제 2 종목에 대한 제 3 시간 영역에 포함된 제 5 주식 정보를 수신하는 단계, 메인 서버가 제 5 주식 정보를 제 1 기계학습모델에 적용하여 제 4 시간 영역에 대한 예측 주가 등락률을 획득하는 단계, 메인 서버가 예측 주가 등락률에 기초하여 복수의 제 2 검색식 중 주가 등락률이 가장 높은 제 3 검색식을 선택하는 단계, 메인 서버가 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 정보를 획득하는 단계, 메인 서버가 사용자 단말기에게 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계, 및 사용자 단말기가 제 3 종목들에 대한 정보에 기초하여 제 3 종목들에 대한 주식을 제 1 가격에 매수하는 단계를 포함하고, 제 3 시간 영역은 제 2 시간 영역과 일부 중복되거나 이후이고, 제 4 시간 영역은 제 3 시간 영역의 이후인 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 제 3 종목들 중 제 1 가격에서 미리 정해진 제 1 증가율만큼 주가가 증가한 종목에 대한 정보를 획득하는 단계, 메인 서버가 사용자 단말기에 주가가 증가한 종목에 대한 정보 및 매도를 나타내는 신호를 송신하는 단계, 사용자 단말기가 주가가 증가한 종목에 대한 정보에 기초하여 주가가 증가한 종목에 대한 주식을 매도하는 단계를 포함하는 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 제 3 종목들 중 제 1 가격에서 미리 정해진 제 1 감소율만큼 주가가 감소한 제 1 감소 종목에 대한 정보를 획득하는 단계, 메인 서버가 사용자 단말기에 제 1 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계, 및 사용자 단말기가 제 1 감소 종목에 대한 정보에 기초하여 제 1 감소 종목에 대한 주식을 추가 매수하는 단계를 포함하는 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 제 3 종목들 중 제 1 가격에서 미리 정해진 제 2 감소율만큼 주가가 감소한 제 2 감소 종목에 대한 정보를 획득하는 단계, 메인 서버는 사용자 단말기에 제 2 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계, 및 사용자 단말기가 제 2 감소 종목에 대한 정보에 기초하여 제 2 감소 종목에 대한 주식을 추가 매수하는 단계를 포함하고, 제 1 감소율의 절대값은 제 2 감소율의 절대값보다 작은 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 제 1 종목이 포함된 리스트 중 급등주와 중복되는지 여부를 나타내는 정보를 획득하는 단계, 및 메인 서버가 중복되는지 여부를 나타내는 정보와 제 2 주식 정보의 상관 관계를 기계학습한 제 2 기계학습모델을 획득하는 단계를 포함하는 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법은, 메인 서버가 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 정보를 획득한 후, 증권사 서버로부터 제 3 종목들의 제 3 시간 영역에 포함된 제 6 주식 정보를 수신하는 단계, 제 6 주식 정보를 제 2 기계학습모델에 적용하여 제 3 종목들 중 제 4 시간 영역에서 급등할 제 4 종목을 예측하는 단계, 메인 서버가 사용자 단말기에게 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계, 및 사용자 단말기가 제 4 종목에 대한 정보에 기초하여 제 4 종목에 대한 주식을 제 1 가격에 매수하는 단계를 포함하는 것을 특징으로 한다.
본 개시의 주식 자동매매 시스템의 동작 방법의 제 1 기계학습모델 및 제 2 기계학습모델은 매일 새로 생성되는 것을 특징으로 한다.
또한, 상술한 바와 같은 본 개시의 주식 자동매매 시스템의 동작 방법을 구현하기 위한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.
도 1은 본 개시의 일 실시예에 따른 메인 서버의 블록도이다.
도 2는 본 개시의 일 실시예에 따른 메인 서버를 나타낸 도면이다.
도 3 은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 구성을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작방법을 설명하기 위한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 시간 영역을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따라 복수의 제 1 검색식에 의하여 검색되는 내용을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 제 1 기계학습모델을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 나타내는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 설명하기 위한 도면이다.
도 11을 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 나타낸 흐름도일 수 있다.
도 12는 본 개시의 일 실시예에 따른 제 2 기계학습모델을 설명하기 위한 도면일 수 있다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
본 개시의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서" 는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서" 는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서" 는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.
용어 "메모리" 는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
도 1은 본 개시의 일 실시예에 따른 메인 서버(100)의 블록도이다.
도 1을 참조하면, 일 실시예에 따른 메인 서버(100)는 데이터 학습부(110) 또는 데이터 인식부(120) 중 적어도 하나를 포함할 수 있다. 상술한 바와 같은 메인 서버(100)는 프로세서 및 메모리를 포함할 수 있다.
데이터 학습부(110)는 데이터 세트를 이용하여 타겟 태스크(target task)를 수행하기 위한 기계학습모델을 학습할 수 있다. 데이터 학습부(110)는 데이터 세트 및 타겟 태스크와 관련된 레이블 정보를 수신할 수 있다. 데이터 학습부(110)는 데이터 세트와 레이블 정보의 관계에 대해 기계학습을 수행하여 기계학습모델을 획득할 수 있다. 데이터 학습부(110)가 획득한 기계학습모델은 데이터 세트를 이용하여 레이블 정보를 생성하기 위한 모델일 수 있다.
데이터 인식부(120)는 데이터 학습부(110)의 기계학습모델을 수신하여 저장하고 있을 수 있다. 데이터 인식부(120)는 입력 데이터에 기계학습모델을 적용하여 레이블 정보를 출력할 수 있다. 또한, 데이터 인식부(120)는 입력 데이터, 레이블 정보 및 기계학습모델에 의해 출력된 결과를 기계학습모델을 갱신하는데 이용할 수 있다.
데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 이미 설명한 각종 전자 장치에 탑재될 수도 있다.
또한 데이터 학습부(110) 및 데이터 인식부(120)는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(110) 및 데이터 인식부(120)는 유선 또는 무선으로 통하여, 데이터 학습부(110)가 구축한 기계학습모델 정보를 데이터 인식부(120)로 제공할 수도 있고, 데이터 인식부(120)로 입력된 데이터가 추가 학습 데이터로써 데이터 학습부(110)로 제공될 수도 있다.
한편, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 메모리 또는 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
본 개시의 일 실시예에 따른 데이터 학습부(110)는 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)를 포함할 수 있다.
데이터 획득부(111)는 기계학습에 필요한 데이터를 획득할 수 있다. 학습을 위해서는 많은 데이터가 필요하므로, 데이터 획득부(111)는 복수의 데이터를 포함하는 데이터 세트를 수신할 수 있다.
복수의 데이터 각각에 대하여 레이블 정보가 할당될 수 있다. 레이블 정보는 복수의 데이터의 각각을 설명하는 정보일 수 있다. 레이블 정보는 타겟 태스크(target task)가 도출하고자 하는 정보일 수 있다. 레이블 정보는 사용자 입력으로부터 획득되거나, 메모리로부터 획득되거나, 기계학습모델의 결과로부터 획득될 수 있다. 예를 들어 타겟 태스크가 과거의 주가 정보에 기초하여 미래의 주가 상승률을 예측하기 위한 것이라면, 기계학습에 사용되는 복수의 데이터는 종목 별 과거의 주가 데이터가 될 것이며 레이블 정보는 미래의 주가 상승률이 될 것이다. 또한 타겟 태스크가 과거의 주가 정보에 기초하여 주가가 급등할 종목을 예측하기 위한 것이라면, 기계학습에 사용되는 복수의 데이터는 종목 별 과거의 주가 데이터가 될 것이며 레이블 정보는 종목별 급등 여부가 될 것이다.
전처리부(112)는 수신된 데이터가 기계학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(112)는 후술할 모델 학습부(114)가 이용할 수 있도록, 획득된 데이터 세트를 미리 설정된 포맷으로 가공할 수 있다.
학습 데이터 선택부(113)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(114)에 제공될 수 있다. 학습 데이터 선택부(113)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(113)는 후술할 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
모델 학습부(114)는 데이터 세트에 기초하여 어떤 레이블 정보를 출력할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(114)는 데이터 세트 및 데이터 세트 대한 레이블 정보를 학습 데이터로써 이용하여 기계학습을 수행할 수 있다. 또한 모델 학습부(114)는 기존에 획득된 기계학습모델을 추가적으로 이용하여 기계학습을 수행할 수 있다. 이 경우, 기존에 획득된 기계학습모델은 미리 구축된 모델일 수 있다. 예를 들어, 기계학습모델은 기본 학습 데이터를 입력 받아 미리 구축된 모델일 수 있다.
기계학습모델은, 학습모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 기계학습모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, Deep Neural Network (DNN), Recurrent Neural Network (RNN), Long Short-Term Memory models (LSTM), BRDNN (Bidirectional Recurrent Deep Neural Network), Convolutional Neural Networks (CNN)과 같은 모델이 기계학습모델로써 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시예에 따르면, 모델 학습부(114)는 미리 구축된 기계학습모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 기계학습모델을 학습할 기계학습모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 기계학습모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 장소, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다.
또한, 모델 학습부(114)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 기계학습모델을 학습시킬 수 있다.
또한, 모델 학습부(114)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning)을 통하여, 기계학습모델을 학습할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 별다른 지도없이 타겟 태스크(target task)을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 타겟 태스크를 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 기계학습모델을 획득할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 학습에 따른 타겟 태스크의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 기계학습모델을 학습할 수 있다.
또한, 기계학습모델이 학습되면, 모델 학습부(114)는 학습된 기계학습모델을 저장할 수 있다. 이 경우, 모델 학습부(114)는 학습된 기계학습모델을 데이터 인식부(120)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(114)는 학습된 기계학습모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.
학습된 기계학습모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(115)는 기계학습모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(114)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 기계학습모델을 평가하기 위한 기 설정된 데이터일 수 있다.
예를 들어, 모델 평가부(115)는 평가 데이터에 대한 학습된 기계학습모델의 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 기계학습모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(115)는 학습된 기계학습모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 기계학습모델이 복수 개가 존재하는 경우, 모델 평가부(115)는 각각의 학습된 기계학습모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 기계학습모델로써 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(115)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 기계학습모델로써 결정할 수 있다.
한편, 데이터 학습부(110) 내의 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
본 개시의 일 실시예에 따른 데이터 인식부(120)는 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)를 포함할 수 있다.
데이터 획득부(121)는 입력 데이터를 수신할 수 있다. 전처리부(122)는 획득된 입력 데이터가 인식 데이터 선택부(123) 또는 인식 결과 제공부(124)에서 이용될 수 있도록, 획득된 입력 데이터를 전처리할 수 있다.
인식 데이터 선택부(123)는 전처리된 데이터 중에서 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(124)에게 제공될 수 있다. 인식 데이터 선택부(123)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(123)는 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
인식 결과 제공부(124)는 선택된 데이터를 기계학습모델에 적용하여 결과 데이터를 획득할 수 있다. 기계학습모델은 모델 학습부(114)에 의하여 생성된 기계학습모델일 수 있다. 인식 결과 제공부(124)는 결과 데이터를 출력할 수 있다.
모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 기계학습모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과를 모델 학습부(114)에게 제공함으로써, 모델 학습부(114)가 기계학습모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(120) 내의 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
아래에서는 데이터 학습부(110)의 데이터 획득부(111), 전처리부(112) 및 학습 데이터 선택부(113)가 학습 데이터를 수신하여 처리하는 방법 및 장치에 대하여 보다 자세히 설명한다.
도 2는 본 개시의 일 실시예에 따른 메인 서버를 나타낸 도면이다.
메인 서버(100)는 프로세서(210) 및 메모리(220)를 포함할 수 있다. 프로세서(210)는 메모리(220)에 저장된 명령어들을 수행할 수 있다.
상술한 바와 같이 메인 서버(100)는 데이터 학습부(110) 또는 데이터 인식부(120)를 포함할 수 있다. 데이터 학습부(110) 또는 데이터 인식부(120)는 프로세서(210) 및 메모리(220)에 의하여 구현될 수 있다.
도 1 및 도 2는 메인 서버(100)에 대하여 설명한 것이지만 이에 한정되는 것은 아니다. 이하에서 설명한 사용자 단말기(310) 및 증권사 서버(320)도 메인 서버(100)와 동일한 구성을 포함할 수 있다.
도 3 은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 구성을 설명하기 위한 도면이다.
주식 자동매매 시스템은 메인 서버(100), 사용자 단말기(310) 및 증권사 서버(320)를 포함할 수 있다. 메인 서버(100)는 기계학습모델을 생성할 수 있다. 메인 서버(100)는 기계학습모델을 생성하기 위한 데이터를 축적할 수 있다. 메인 서버(100)는 기계학습모델을 생성하기 위한 데이터를 축적하기 위하여 증권사 서버(320)에 주식 정보를 요청할 수 있다. 메인 서버(100)는 주식 정보를 요청할 종목의 식별정보와 함께 주식 정보를 요청할 수 있다. 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 및 시간별 가격정보 및 등락률(증가/감소률)을 포함할 수 있다.
증권사 서버(320)는 메인 서버(100)의 요청에 대응하여 주식 정보를 메인 서버(100)로 송신할 수 있다. 메인 서버(100)는 수신한 주식 정보를 누적하여 저장할 수 있다. 또한 메인 서버(100)는 누적하여 저장된 주식 정보에 기초하여 기계학습모델을 생성할 수 있다. 기계학습모델을 생성하는 과정에 대해서는 도 4와 함께 더 자세히 설명한다.
메인 서버(100)는 생성된 기계학습모델에 기초하여 매수할 종목을 선택할 수 있다. 메인 서버(100)는 선택된 종목에 대한 정보 및 매수 신호를 사용자 단말기(310)로 송신할 수 있다. 사용자 단말기(310)는 메인 서버(100)로부터 수신한 정보에 기초하여 해당 종목을 매수할 수 있다.
또한 메인 서버(100) 미리 정해진 알고리즘에 따라 매도할 종목에 대한 정보 및 매도 신호를 사용자 단말기(310)로 송신할 수 있다. 사용자 단말기(310)는 메인 서버(100)로부터 수신한 정보에 기초하여 매도를 수행할 수 있다. 하지만 이에 한정되는 것은 아니며, 사용자 단말기(310)는 메인 서버(100)의 도움 없이 자체적으로 미리 정해진 알고리즘에 따라 매도할 종목에 대한 종목를 선택하고, 매도를 자동으로 수행할 수 있다.
도 4는 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 메인 서버(100)는 증권사 서버(320)로부터 급등주에 대한 제 1 시간 영역에 포함된 제 1 주식 정보를 수신하는 단계(410)를 수행할 수 있다. 메인 서버(100)는 급등주에 대한 제 1 시간 영역에 포함된 제 1 주식 정보를 데이터 베이스에 저장할 수 있다. 증권사 서버(320)는 사용자에게 정보 제공차원에서 주가가 급등하고 있는 종목에 대한 정보를 자동으로 생성할 수 있다. 주가는 계속적으로 변화하므로 주가가 급등하고 있는 종목은 시간에 따라 변화할 수 있다. 증권사 서버(320)는 시간 별로 급등주에 대한 정보를 지속적으로 생성할 수 있다. 메인 서버(100)는 적어도 하나의 급등주에 대한 정보를 포함하는 급등주 리스트를 증권사 서버(320)로부터 수신할 수 있다.
제 1 시간 영역은 제 1 시작 시각과 제 1 종료 시각 사이의 시간이다. 제 1 시간 영역은 관리자에 의하여 설정될 수 있다. 제 1 시간 영역의 크기는 1시간 이상 하루 이하일 수 있다. 즉, 제 1 시간 영역은 주식 시장의 개장시각부터 주식 시장의 폐장시각까지의 시간일 수 있다. 제 1 시간 영역은 기계학습모델을 학습하기 위한 데이터를 획득하기 위하여 사용될 수 있다. 본 개시의 기계학습모델은 주기적으로 갱신될 수 있다. 기계학습모델이 갱신될 때마다 제 1 시간 영역의 제 1 시작 시각 내지 제 1 종료 시각은 다를 수 있다. 기계학습모델이 갱신될 때마다 제 2 시간 영역 내지 제 4 시간 영역 역시 달라질 수 있다.
메인 서버(100)는 증권사 서버(320)에 제 1 시간 영역 내에서 급등주로 분류된 종목의 리스트를 요청할 수 있다. 또한 증권사 서버(320)는 메인 서버(100)의 요청에 따라 제 1 시간 영역에 포함된 급등주의 종목의 리스트를 메인 서버(100)로 송신할 수 있다. 급등주의 종목의 리스트는 복수의 종목을 포함할 수 있다. 제 1 주식 정보는 급등주의 종목의 리스트에 포함된 종목의 주식 정보일 수 있다. 제 1 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보 및 등락률 중 적어도 하나를 포함할 수 있다. 제 1 주식 정보는 제 1 시간 영역에 대응될 수 있다. 즉, 제 1 주식 정보는 제 1 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 시간 별 가격정보는 제 1 시간 영역 내의 복수의 단위시간 별 가격 정보일 수 있다. 단위시간은 1분, 10분, 30분 또는 1시간일 수 있다. 이미 설명한 바와 같이 제 1 시간 영역의 크기는 1시간 이상 하루 이하일 수 있다.
메인 서버(100)는 증권사 서버(320)로부터 미리 정해진 복수의 제 1 검색식 정보 중 하나에 기초하여 검색된 제 1 종목에 대한 제 1 시간 영역에 포함된 제 2 주식 정보를 수신하는 단계(415)를 수행할 수 있다. 메인 서버(100)는 제 1 시간 영역에 포함된 제 2 주식 정보를 데이터베이스에 저장할 수 있다.
메인 서버(100)는 미리 정해진 복수의 제 1 검색식 정보를 저장하고 있을 수 있다. 복수의 제 1 검색식 정보는 주식 종목을 검색하기 위한 정보일 수 있다. 복수의 제 1 검색식은 주기적으로 업데이트될 수 있다. 주기는 하루, 일주일 또는 한달일 수 있다. 복수의 제 1 검색식은 메인 서버(100)의 관리자에 의하여 업데이트될 수 있다.
복수의 제 1 검색식은 거래대금의 범위, 주가 등락률의 범위, 전일 동시간대 대비 거래량 비율, 및 매물대 상향돌파 여부를 포함할 수 있다. 거래대금의 범위는 최저 거래대금 이상 최대 거래대금 이하의 범위를 가질 수 있다. 주가 등락률의 범위는 미리 정해진 값(%) 이상 또는 이하의 값을 가질 수 있다. 주가 등락률은 이전 시간의 종가 대비 현재 시간의 시가의 비율 또는 이전 시간의 종가 대비 현재 시간의 종가의 비율로써 주어질 수 있다. 전일 동시간대 대비 거래량 비율은 전일 동시간대 거래량에 대한 오늘 거래량의 비율을 나타낼 수 있다. 매물대는 주식의 매물 차트에서 일정 기간동안 특정 가격대에서 거래된 물량을 막대형 그래프로 도식화한 것을 말한다. 매물대를 상향 돌파했다는 것은 지지 저항선을 돌파했다는 것을 나타낸다. 메인 서버(100)의 관리자는 검색식을 주기적으로 업데이트할 수 있다. 메인 서버(100)는 검색식에 기초하여 증권사 서버(320)에 검색을 요청할 수 있다. 증권사 서버(320)는 요청에 기초하여 검색된 결과를 메인 서버(100)로 송신할 수 있다.
도 6은 본 개시의 일 실시예에 따라 복수의 제 1 검색식에 의하여 검색되는 내용을 설명하기 위한 도면이다.
메인 서버(100)는 증권사 서버(320)를 통하여, 복수의 제 1 검색식(610)에 기초하여 복수의 주식 종목 리스트들을 검색할 수 있다. 복수의 제 1 검색식(610)은 검색식(611), 검색식(612), 또는 검색식(613)을 포함할 수 있다. 메인 서버(100)는 복수의 제 1 검색식 중 하나에 기초하여 주식 종목 리스트를 검색할 수 있다. 검색식은 리스트에 일대일로 대응할 수 있다. 검색된 주식 종목 리스트(620)는 복수의 종목들을 포함할 수 있다. 예를 들어 메인 서버(100)까 검색식(611)을 이용하여 검색을 수행한 경우, 주식 종목 리스트(620)가 도출될 수 있다. 주식 종목 리스트는 적어도 하나의 종목을 포함할 수 있다. 주식 종목 리스트(620)는 종목(621), 종목(622) 또한 종목(623)을 포함할 수 있다. 단계(415)의 제 1 종목은 검색된 복수의 종목들에 포함될 수 있다.
다시 도 4를 참조하면, 메인 서버(100)는 복수의 제 1 검색식에 의하여 검색된 주식 종목 리스트들에 포함된 종목들의 주식 정보를 증권사 서버(320)에 요청할 수 있다. 메인 서버(100)는 제 1 시간 영역에 포함되고 주식 종목 리스트들에 포함된 종목들의 제 2 주식 정보를 요청할 수 있다. 증권사 서버(320)는 메인 서버(100)의 요청에 따라 제 1 시간 영역의 주식 종목 리스트들에 포함된 종목들의 주식 정보를 획득할 수 있다. 제 1 시간 영역의 주식 종목 리스트들에 포함된 종목들의 주식 정보는 제 2 주식 정보를 포함할 수 있다. 또한 메인 서버(100)는 증권사 서버(320)로부터 제 1 종목에 대한 제 1 시간 영역에 포함된 제 2 주식 정보를 수신할 수 있다. 제 2 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 제 2 주식 정보는 제 1 시간 영역에 대응될 수 있다. 즉, 제 2 주식 정보는 제 1 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 시간 별 가격정보는 제 1 시간 영역 내의 복수의 단위시간 별 가격 정보일 수 있다. 단위시간은 1분, 10분, 30분 또는 1시간일 수 있다.
메인 서버(100)는 증권사 서버(320)로부터 급등주에 대한 제 2 시간 영역에 포함된 제 3 주식 정보를 수신하는 단계(420)를 수행할 수 있다. 제 3 주식 정보를 수신하는 단계(420)는 단계(410)와 유사할 수 있다. 다만 단계(410)와 다르게, 제 3 주식 정보는 제 2 시간 영역에 대한 것일 수 있다. 메인 서버(100)는 급등주에 대한 제 2 시간 영역에 포함된 제 3 주식 정보를 데이터베이스에 저장할 수 있다. 제 1 시간 영역 및 제 2 시간 영역에 대하여 도 5와 함께 자세히 설명한다.
도 5는 본 개시의 일 실시예에 따른 시간 영역을 설명하기 위한 도면이다.
제 2 시간 영역(520)은 제 1 시간 영역(510) 이후일 수 있다. 즉, 제 1 시간 영역(510)의 종료 시각(515)은 제 2 시간 영역(520)의 시작 시각(521)의 이전일 수 있다. 하지만 이에 한정되는 것은 아니면 제 1 시간 영역(510)은 제 2 시간 영역(520)과 중복될 수 있다. 즉 제 1 시간 영역(510)의 종료 시각(515)은 제 2 시간 영역(520)의 시작 시각(521)의 이후일 수 있다.
제 1 시간 영역(510)의 크기와 제 2 시간 영역(520)의 크기는 다를 수 있다. 제 1 시간 영역(510)의 크기가 제 2 시간 영역(520)의 크기보다 크거나 같을 수 있다. 제 1 시간 영역(510)은 1 시간이상 하루 이하일 수 있다. 제 2 시간 영역은 1분이상 하루 이하일 수 있다.
다시 도 4를 참조하면, 단계(420)에서 급등주라는 것은 제 1 시간 영역(510)에서의 급등주를 의미할 수 있다. 즉, 단계(420)에서 급등주라는 것은 제 2 시간 영역(520)에서의 급등주가 아니다. 단계(420)는 제 1 시간 영역에서의 급등주에 대한 제 2 시간영역에서의 제 3 주식 정보를 획득하는 것이다.
제 3 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 제 3 주식 정보는 제 2 시간 영역에 대응될 수 있다. 즉, 제 3 주식 정보는 제 2 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 보다 상세하게는 제 3 주식 정보는 제 2 시간 영역 내에서 가격의 등락률을 의미할 수 있다. 종목의 등락률은 제 2 시간 영역에서 시가 대비 종가의 비율을 의미할 수 있다. 즉, 종목의 등략률은 제 2 시간 영역(520)의 시작 시각(521)의 가격 대비 종료 시각(525)의 가격의 비율을 의미할 수 있다.
메인 서버(100)는 증권사 서버(320)로부터 제 1 종목에 대한 제 2 시간 영역에 포함된 제 4 주식 정보를 수신하는 단계(425)를 수행할 수 있다. 제 4 주식 정보를 수신하는 단계(425)는 단계(415)와 유사할 수 있다. 다만 단계(415)와 다르게, 제 4 주식 정보는 제 2 시간 영역에 대한 것일 수 있다. 제 2 시간 영역은 제 1 시간 영역 이후일 수 있다. 메인 서버(100)는 제 1 종목에 대한 제 2 시간 영역에 포함된 제 4 주식 정보를 데이터베이스에 저장할 수 있다.
단계(425)에서 제 1 종목은 단계(415)에서의 제 1 종목과 동일할 수 있다. 단계(425)는 제 1 시간 영역에서의 제 1 종목에 대한 제 2 시간영역에서의 제 4 주식 정보를 획득하는 것이다.
제 4 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 제 4 주식 정보는 제 2 시간 영역에 대응될 수 있다. 즉, 제 4 주식 정보는 제 2 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 보다 상세하게는 제 4 주식 정보는 제 2 시간 영역 내에서 가격의 등락률을 의미할 수 있다. 종목의 등락률은 제 2 시간 영역에서 시가 대비 종가의 비율을 의미할 수 있다. 즉, 종목의 등략률은 제 2 시간 영역(520)의 시작 시각(521)의 가격 대비 종료 시각(525)의 가격의 비율을 의미할 수 있다.
메인 서버(100)는 제 1 주식 정보에 대한 제 3 주식 정보의 상관 관계 및 제 2 주식 정보에 대한 제 4 주식 정보의 상관 관계를 기계학습한 제 1 기계학습모델을 획득하는 단계(430)를 수행할 수 있다. 이미 설명한 바와 같이 제 1 주식 정보 및 제 2 주식 정보는 제 1 시간 영역(510)에서 단위시간에 따른 주가정보를 포함할 수 있다. 즉, 제 1 주식 정보 및 제 2 주식 정보는 제 1 시간 영역(510)에서 종목별 단위시간에 따른 주가정보를 포함할 수 있다. 단위 시간은 1초, 1분, 10분, 30분 또는 60분 중 하나일 수 있다. 하지만 이에 한정되는 것은 아니며 메인 서버(100)의 관리자에 의하여 미리 설정될 수 있다.
또한, 제 3 주식 정보 및 제 4 주식 정보는 제 2 시간 영역(520)에서의 주가 등락률을 포함할 수 있다. 제 3 주식 정보 및 제 4 주식 정보는 제 2 시간 영역(520)에서의 주가의 등락률을 포함할 수 있다.
메인 서버(100)는 제 3 주식 정보 및 제 4 주식 정보에 포함된 주가의 등락률이 미리 정해진 임계 등락률보다 낮은 경우, 해당 종목의 정보를 제 1 기계학습모델을 생성하는데 사용하지 않을 수 있다. 또한 메인 서버(100)는 제 1 주식 정보 및 제 2 주식 정보 중 제 3 주식 정보 및 제 4 주식 정보에 포함된 주가의 등락률이 미리 정해진 임계 등락률보다 낮은 종목에 대응되는 정보를 제 1 기계학습모델을 생성하는데 사용하지 않을 수 있다. 하지만 이에 한정되는 것은 아니다.
제 1 기계학습모델은 일정한 주기로 새로 생성될 수 있다. 예를 들어 제 1 기계학습모델은 매일 새로 생성될 수 있다. 제 1 기계학습모델이 새로 생성될 때마다 다른 데이터를 이용하여 생성될 수 있다. 왜냐하면 제 1 시간 영역 내지 제 4 시간 영역의 시작 시각이, 시간이 지남에 따라 계속 달라지기 때문이다. 메인 서버(100)는 가장 최신의 데이터를 이용하여 제 1 기계학습모델을 생성함으로써, 제 1 기계학습모델에 최근의 상황이 반영될 수 있다. 주식 시장이 마감하면, 메인 서버(100)는 오늘 주식 시장에 대한 데이터를 획득할 수 있다. 제 1 시간 영역은 D-2일의 주식 시장의 시작 시각 및 종료 시각 사이 중 적어도 일부일 수 있다. 제 2 시간 영역은 D-2일의 주식 시장의 시작 시각 및 종료 시각 사이 중 적어도 일부일 수 있다. 또는 제 2 시간 영역은 D-1일의 주식 시장의 시작 시각 및 종료 시각 중 적어도 일부일 수 있다. D-1일에 메인 서버(100)는 제 1 기계학습모델을 생성할 수 있다. 또한 메인 서버는 D-1일 또는 D일에 제 1 기계학습모델을 이용할 수 있다. 또한 메인 서버(100)는 D일의 종목의 주식 정보를 제 1 기계학습모델에 적용하여 종목의 D+1의 예측 주가 등락률을 획득할 수 있다.
제 1 기계학습모델은 이전 시간 영역의 시간별 주가 정보에 기초하여 미래의 주가 등락률을 예측하기 위한 모델일 수 있다. 제 1 주식 정보 및 제 2 주식 정보는 결과 도출을 위해 사용되는 복수의 데이터일 수 있고, 제 1 주식 정보 및 제 2 주식 정보의 레이블 정보는 제 3 주식 정보 및 제 4 주식 정보일 수 있다. 제 3 주식 정보 및 제 4 주식 정보는 사용자가 원하는 판단 결과일 수 있다. 제 3 주식 정보 및 제 4 주식 정보는 실제(ground truth) 정보일 수 있다.
메인 서버(100)가 제 1 기계학습모델을 획득하는 과정에 대하여 도 8과 함께 설명한다.
도 8은 본 개시의 일 실시예에 따른 제 1 기계학습모델을 설명하기 위한 도면이다.
이미 설명한 바와 같이 메인 서버(100)는 제 1 주식 정보 또는 제 2 주식 정보(811)대한 제 3 주식 정보 또는 제 4 주식 정보(812)의 상관 관계를 기계학습한 제 1 기계학습모델(820)을 획득하는 단계를 수행할 수 있다. 제 1 기계학습모델(820)은 단위 시간 별 주식 가격으로부터 등락률을 예측하기 위한 피팅(fitting)된 가중치들을 포함할 수 있다. 메인 서버(100)는 제 1 기계학습모델(820)을 저장하고 있을 수 있다. 또한 메인 서버(100)는 유무선 통신을 이용하여 제 1 기계학습모델(820)을 다른 서버로 전송할 수 있다.
추후 메인 서버(100)는 제 3 시간 영역의 제 5 주식 정보(830)를 제 1 기계학습모델(820)에 적용하여 주가의 등락률을 예측할 수 있다. 제 1 기계학습모델(820)이 사용되는 과정에 대해서는 도 7과 함께 자세히 설명한다.
도 7은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 설명하기 위한 흐름도이다.
사용자 단말기(310)는 사용자로부터 투자 진행과 관련된 정보를 수신할 수 있다. 사용자 단말기(310)가 사용자로부터 수신한 정보가 투자 진행을 나타내는 경우, 사용자 단말기(310)는 메인 서버(100)의 제어에 따라 투자를 진행할 수 있다. 또한 사용자 단말기(310)는 사용자로부터 투자 진행 주기와 관련된 정보를 수신할 수 있다. 사용자 단말기(310)는 수신된 투자 주기에 기초하여 주기적으로 메인 서버(100)에 투자를 진행할 것을 요청할 수 있다. 투자 진행 과정은 이하와 같을 수 있다.
메인 서버(100)는 사용자 단말기(310)로부터 투자 모드를 수신하는 단계(710)를 수행할 수 있다. 사용자 단말기(310)는 사용자로부터 투자 모드에 대한 정보를 수신할 수 있다. 또한 사용자 단말기(310)는 메인 서버(100)에 투자 모드를 송신할 수 있다. 투자 모드는 "단타", "스윙"을 포함할 수 있다. "단타" 모드는 초, 분, 시간 단위로 매매를 수행하는 모드이며, "스윙"모드는 "단타"보다 장기적인 투자를 통하여 수익을 창출하는 모드이다. 또한 투자 모드는 "적극형" 또는 "소극형"을 포함할 수 있다. "적극형" 모드는 위험도가 높은 종목에도 투자를 하는 모드이며 "소극형"은 상대적으로 위험도가 낮은 종목에 투자하는 모드이다.
투자 모드는 "공격형", "안정형", 및 "장투형"를 포함할 수 있다. "공격형"은 위험도가 높은 종목에도 투자를 하여 수익을 내는 모드일 수 있다. 또한 "공격형"은 주로 급등주에 투자를 하며, 주식의 보유기간이 짧은 모드이다. "안정형"은 상대적으로 위험도가 낮은 종목에 투자하는 모드이다. 우량주 위주의 주식을 매수하며, 주식의 보유 기간의 최대값은 5일이상 10일 이하일 수 있다. 또한 "장투형"은 정책 수혜 및 미래 기술 관련 섹터일 수 있다. "장투형"은 주식의 평균 보유기간이 최소 3개월일 수 있다.
메인 서버(100)는 투자 모드에 기초하여 복수의 제 1 검색식 정보 중 복수의 제 2 검색식 정보를 선택하는 단계(715)를 수행할 수 있다. 복수의 제 2 검색식 정보는 복수의 제 1 검색식 정보에 포함될 수 있다. 메인 서버(100)는 투자 모드와 검색식을 대응시키는 테이블을 저장하고 있을 수 있다. 메인 서버(100)는 테이블에 기초하여 복수의 제 1 검색식 정보로부터 제 2 검색식 정보를 선택할 수 있다. 따라서 메인 서버(100)는 사용자의 투자 모드에 따라 다른 검색식을 이용하여 투자 종목을 선택할 수 있다. 본 개시에 따른 주식 자동매매 시스템은 사용자의 성향에 따른 투자를 자동으로 수행하므로 사용자의 만족도를 높일 수 있다.
메인 서버(100)는 증권사 서버로부터 선택된 복수의 제 2 검색식 정보 중 하나에 기초하여 검색된 제 2 종목에 대한 제 3 시간 영역에 포함된 제 5 주식 정보를 수신하는 단계(720)를 수행할 수 있다. 메인 서버(100)는 복수의 제 2 검색식 정보에 기초하여 검색을 요청할 수 있다. 증권사 서버(320)는 사용자의 요청에 기초하여 복수의 종목 리스트를 도출할 수 있다. 제 2 종목은 복수의 종목 리스트에 포함된 종목일 수 있다. 증권사 서버(320)는 제 2 종목을 포함하는 복수의 종목 리스트를 메인 서버(100)로 송신할 수 있다. 또한 메인 서버(100)는 제 3 시간 영역에 포함된 제 5 주식 정보를 요청할 수 있다. 제 5 주식 정보는 제 2 검색식 정보에 기초하여 검색된 종목 리스트 포함된 종목에 대한 것이며, 제 3 시간 영역에 포함된 정보일 수 있다. 메인 서버(100)는 검색된 종목 리스트에 포함된 모든 종목에 대하여 제 3 시간 영역에 포함된 주식 정보를 증권사 서버(320)로부터 수신할 수 있다.
제 5 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 제 5 주식 정보는 제 3 시간 영역에 대응될 수 있다. 즉, 제 5 주식 정보는 제 3 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 보다 구체적으로 제 5 주식 정보는 시간 별 가격정보일 수 있다. 시간 별 가격정보는 제 3 시간 영역 내의 복수의 단위시간 별 가격 정보일 수 있다. 단위시간은 1분, 10분, 30분 또는 1시간일 수 있다. 제 3 시간 영역의 크기는 1시간 이상 하루 이하일 수 있다.
도 5을 잠시 참조하면, 제 3 시간 영역은 제 2 시간 영역과 일부 중복되거나 이후일 수 있다. 제 3 시간 영역이 제 2 시간 영역과 일부 중복된다는 것은, 제 2 시간 영역(520)의 종료 시각(525)이 제 3 시간 영역(530)의 시작 시각(531)의 이후일 수 있다는 것이다. 하지만 이에 한정되는 것은 아니면 제 2 시간 영역(520)은 제 3 시간 영역(530)의 이전일 수 있다. 즉 제 2 시간 영역(520)의 종료 시각(525)은 제 3 시간 영역(530)의 시작 시각(531)의 이전일 수 있다. 또한 제 3 시간 영역은 제 2 시간 영역과 동일할 수 있다.
또한, 제 3 시간 영역의 크기는 제 1 시간 영역의 크기와 같을 수 있다. 하지만 이에 한정되는 것은 아니며 제 3 시간 영역의 크기는 제 1 시간 영역의 크기보다 클 수 있다.
다시 도 7을 참조하면, 메인 서버(100)는 제 5 주식 정보를 제 1 기계학습모델에 적용하여 제 4 시간 영역에 대한 예측 주가 등락률을 획득하는 단계(725)를 수행할 수 있다.
잠시 도 5를 참조하면 제 4 시간 영역(540)은 제 3 시간 영역(530) 이후일 수 있다. 즉, 제 3 시간 영역(530)의 종료 시각(535)은 제 4 시간 영역(540)의 시작 시각(541)의 이전일 수 있다. 하지만 이에 한정되는 것은 아니면 제 3 시간 영역(530)은 제 4 시간 영역(540)과 중복될 수 있다. 즉 제 3 시간 영역(513)의 종료 시각(535)은 제 4 시간 영역(540)의 시작 시각(541)의 이후일 수 있다. 또한 제 4 시간 영역(540)의 크기는 제 2 시간 영역(520)의 크기와 같을 수 있다. 하지만 이에 한정되는 것은 아니며 제 4 시간 영역(540)은 제 2 시간 영역(520)보다 클 수 있다. 제 4 시간 영역(540)은 현재를 포함할 수 있다. 예를 들어 제 4 시간 영역(540)의 시작 시각(541)은 현재일 수 있다. 또한 제 4 시간 영역(540)의 종료 시각(545)은 미래일 수 있다.
예측 주가 등락률은 제 4 시간 영역 내에서 미래의 가격의 등락률의 예측값을 의미할 수 있다. 예측 주가 등락률은 제 4 시간 영역에서 시가 대비 종가의 비율을 의미할 수 있다. 즉, 예측 주가 등락률은 제 4 시간 영역(540)의 시작 시각(541)의 가격 대비 종료 시각(545)의 가격의 비율을 의미할 수 있다. 예측 주가 등락률은 예측 주가 등락률을 의미할 수 있다.
잠시 도 8을 참조하면 메인 서버(100)는 제 1 기계학습모델(820)을 저장하고 있을 수 있다. 메인 서버(100)는 제 5 주식 정보(830)를 획득할 수 있다. 메인 서버(100)는 제 5 주식 정보(830)르 제 1 기계학습모델(820)에 적용하여 예측 주가 등락률(840)을 생성할 수 있다. 예측 주가 등락률(840)은 예측된 값이므로 실제 값과 차이가 있을 수 있다. 하지만 본 개시에 따른 제 1 기계학습모델은 대량의 데이터에 기초하여 생성되므로 예측 주가 등락률(840)은 실제 값과 높은 수준으로 유사할 수 있다.
다시 도 7을 참조하면, 메인 서버(100)는 예측 주가 등락률에 기초하여 복수의 제 2 검색식 중 주가 등락률이 가장 높은 제 3 검색식을 선택하는 단계(730)를 수행할 수 있다.
보다 구체적으로 메인 서버(100)는 복수의 제 2 검색식에 의하여 검색되는 복수의 종목들에 대하여 모두 예측 주가 등락률을 획득할 수 있다. 이미 설명한 바와 같이 메인 서버(100)는 제 1 기계학습모델을 이용하여 복수의 종목들에 대하여 예측 주가 등락률을 획득할 수 있다. 메인 서버(100)는 복수의 종목들의 예측 주가 등락률에 기초하여 총 등락률을 계산할 수 있다. 총 등락률은 복수의 종목들의 예측 주가 등락률의 합 또는 평균일 수 있다. 메인 서버(100)는 복수의 제 2 검색식에 대하여 각각 총 등락률을 계산할 수 있다. 메인 서버(100)는 복수의 제 2 검색식 중 등락률이 가장 높은 검색식을 제 3 검색식으로써 선택할 수 있다.
메인 서버(100)는 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 정보를 획득하는 단계(735)를 수행할 수 있다. 메인 서버(100)는 제 3 종목들에 대한 정보를 데이터 베이스에 저장할 수 있다. 메인 서버(100)는 제 3 검색식에 기초하여 복수의의 종목들을 증권사 서버(320)에 요청할 수 있다. 메인 서버(100)는 제 3 검색식에 대응하는 복수의 종목들에 대한 정보를 메인 서버(100)로 송신할 수 있다. 또는 메인 서버(100)는 제 3 검색식에 대응되는 제 3 종목들에 대한 정보를 단계(720)를 수행할 때, 제 3 검색식에 대응되는 제 3 종목들에 대한 정보를 저장하고 있을 수 있다. 제 3 검색식은 복수의 제 2 검색식들 중 하나이기 때문이다. 메인 서버(100)는 단계(720)에서 이미 획득된 제 3 종목들에 대한 정보를 메모리로부터 획득할 수 있다. 제 3 종목들에 대한 정보는 제 3 종목들 각각에 대한 식별정보 또는 예측 주가 등락률 중 적어도 하나를 포함할 수 있다.
메인 서버(100)는 사용자 단말기(310)에게 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계(740)를 수행할 수 있다.
메인 서버(100)는 제 3 종목들 모두를 사용자 단말기(310)에 송신할 수 있다. 하지만 이에 한정되는 것은 아니며, 메인 서버(100)는 제 3 종목들 중 예측 주가 등락률이 높은 적어도 하나를 선택할 수 있다. 예를 들어 메인 서버(100)는 제 3 종목들 중 예측 주가 등락률이 미리 정해진 임계값보다 높은 종목들을 선택할 수 있다. 여기서 예측 주가 등락률이 높다는 것은 주가 상승률이 높다는 것을 의미할 수 있다. 메인 서버(100)는 선택된 종목들만을 사용자 단말기(310)로 송신할 수 있다. 이와 같이 제 3 종목들 중 예측 주가 등락률이 높은 종목들을 사용자 단말기(310)에 송신함으로써, 사용자가 수익을 낼 확률을 높일 수 있다. 이와 같이 메인 서버(100)가 제 3 종목들 중 일부를 사용자 단말기(310)에 송신한 경우, 사용자 단말기(310)에 의한 단계(745)는 제 3 종목들 중 일부를 이용하여 수행될 수 있다.
또한 메인 서버(100)는 제 3 종목들 중 사용자 별로 임의로 선택된 종목들을 사용자 단말기(310)에 송신할 수 있다. 이와 같이 메인 서버(100)가 제 3 종목들 중 일부를 사용자 단말기(310)에 송신한 경우, 사용자 단말기(310)에 의한 단계(745)는 제 3 종목들 중 일부를 이용하여 수행될 수 있다. 이와 같이 메인 서버(100)가 사용자 단말기(310)에 따라 제 3 종목들 중 일부만 송신함으로써, 주식 자동매매 시스템의 위험 부담을 줄일 수 있다.
또한 메인 서버(100)는 제 3 종목들의 개수가 미리 정해진 임계 개수 이상인 경우, 제 3 종목들 중 일부를 선택하여 임계 개수 미만의 종목들에 대한 정보를 사용자 단말기(310)에 송신할 수 있다. 사용자 단말기(310)는 수신된 정목들에 대한 정보에 기초하여 주식을 매수할 수 있다. 이와 같이 메인 서버(100)까 제 3 종목들 중 일부만 사용자 단말기(310)에 송신함으로써, 사용자의 포트폴리오가 지나치게 분산되는 것을 방지할 수 있다. 메인 서버(100)는 제 3 종목들 중 예측 주가 등락률이 높은 순으로 정렬하고, 예측 주가 등락률이 높은 종목들을 선택하여, 임계 개수 미만의 종목들에 대한 정보를 사용자 단말기(310)에 송신할 수 있다.
사용자 단말기(310)는 제 3 종목들에 대한 정보에 기초하여 제 3 종목들에 대한 주식을 제 1 가격에 매수하는 단계(745)를 수행할 수 있다. 제 1 가격은 현재 가격을 의미할 수 있다. 즉 사용자 단말기(310)는 메인 서버(100)로부터 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 수신한 직후, 제 3 종목들을 현재 가격으로 매수할 수 있다. 사용자 단말기(310)는 증권사 서버(320)에 제 3 종목들에 대한 매수 신호를 보냄으로써, 제 3 종목들을 매수할 수 있다.
또한 사용자 단말기(310)는 메인 서버(100)로부터 메인 서버(100)가 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신한 시간에 대한 정보를 수신할 수 있다. 사용자 단말기(310)는 송신한 시간과 현재의 시간 사이의 차이가 미리 정해진 임계값보다 큰 경우, 제 3 종목들의 매수를 보류할 수 있다. 즉, 사용자 단말기(310) 및 메인 서버(100) 사이의 통신 지연으로 사용자 단말기(310)가 매수 신호를 늦게 받은 경우, 사용자 단말기(310)는 매수를 하지 않음으로써 사용자의 피해를 줄일 수 있다. 이 경우 사용자 단말기(310)는 매수 신호를 재요청할 수 있다. 재요청 신호에 기초하여 메인 서버(100)는 단계(715) 내지 단계(740)를 다시 수행하여 사용자 단말기(310)에 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신할 수 있다.
또한 사용자 단말기(310)는 메인 서버(100)로부터 메인 서버(100)가 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신한 시간의 제 3 종목들의 주가에 대한 정보를 수신할 수 있다. 메인 서버(100)가 송신한 시간의 제 3 종목들의 주가는 제 2 가격일 수 있다. 또한 사용자 단말기(100)가 매수하려고 하는 시각의 제 3 종목들의 주가는 제 1 가격일 수 있다. 제 1 가격과 제 2 가격은 다를 수 있다. 송신한 시간의 제 3 종목들의 주가에 대한 정보 및 현재의 시간의 제 3 종목들의 주가에 대한 정보 사이의 차이의 절대값이 미리 정해진 임계값보다 큰 경우, 사용자 단말기(310)는 제 3 종목들의 매수를 보류할 수 있다. 즉, 사용자 단말기(310)의 매수 시점에 주가에 큰 폭의 변동이 있는 경우, 사용자 단말기(310)는 매수를 하지 않음으로써 사용자의 피해를 줄일 수 있다. 이 경우 사용자 단말기(310)는 매수 신호를 재요청할 수 있다. 재요청 신호에 기초하여 메인 서버(100)는 단계(715) 내지 단계(740)를 다시 수행하여 사용자 단말기(310)에 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신할 수 있다.
사용자 단말기(310)는 사용자 계정의 현금을 이용하여 제 3 종목들을 매수할 수 있다. 예를 들어 사용자 단말기(310)는 사용자 계정의 현금을 제 3 종목들의 수로 나누어 균등하게 구매할 수 있다. 하지만 이에 한정되는 것은 아니다. 사용자 단말기(310)는 사용자 계정의 현금을 제 3 종목들의 예측 주가 등락률에 정비례하여 구매할 수 있다. 예를 들어 사용자 단말기(310)는 예측 주가 등락률이 높을수록 많은 현금을 투자하도록 할 수 있다.
예를 들어 제 3 종목들 중 해당 종목의 구매 금액은 다음과 같이 결정될 수 있다.
T = r/R * C
여기서 T는 해당 종목의 구매 금액이고, r은 해당 종목의 예측 주가 등락률이고, R은 제 3 종목들의 예측 주가 등락률의 합이고, C는 사용자 계정의 현금일 수 있다.
사용자 단말기(310)는 사용자 계정의 현금을 제 3 종목들의 예측 주가 등락률에 반비례하여 구매할 수 있다. 예를 들어 사용자 단말기(310)는 예측 주가 등락률이 높을수록 적은 현금을 투자하도록 할 수 있다.
사용자 단말기(310)는 사용자 계정의 현금을 모두 이용하지 않고 일정 비율만큼 남겨둘 수 있다. 예를 들어 사용자 단말기(310)는 사용자 계정의 현금 중 1/n만을 이용하여 제 3 종목들을 매수할 수 있다. n은 미리 정해진 자연수 일 수 있다. 예를 들어 n은 3일 수 있다. 이와 같이 함으로써, 사용자 단말기(310)는 추후 종목들을 추가 매수할 수 있는 기회를 가질 수 있다. 예를 들어 제 3 종목들 중 해당 종목의 구매 금액은 다음과 같이 결정될 수 있다.
T = r/R * C/n
여기서 T는 해당 종목의 구매 금액이고, r은 해당 종목의 예측 주가 등락률이고, R은 제 3 종목들의 예측 주가 등락률의 합이고, n은 미리 정해진 자연수이고, C는 사용자 계정의 현금일 수 있다. 예를 들어 n은 3일 수 있다.
위와 같이 본 개시의 사용자 단말기(310)는 하나의 종목을 사는 것이 아니고 제 3 종목들에 포함된 복수의 종목을 매수하므로 위험이 분산될 수 있다.
이제까지 메인 서버(100)의 신호에 기초하여 사용자 단말기(310)가 주식을 매수하는 과정을 설명하였다. 메인 서버(100)는 매도 시점을 결정할 수 있으며, 사용자 단말기(310)에 매도 신호를 보냄으로써, 사용자 단말기(310)는 보유한 주식 중 일부를 매도할 수 있다.
보다 구체적으로, 메인 서버(100)는 제 3 종목들 중 제 1 가격에서 미리 정해진 제 1 증가율만큼 주가가 증가한 종목에 대한 정보를 획득하는 단계를 수행할 수 있다. 제 1 증가율은 3%이하일 수 있다. 제 1 증가율은 예를 들어 1%일 수 있다. 제 1 가격은 단계(745)에서 이미 설명한 바 있으므로 중복되는 설명은 생략한다.
메인 서버(100)는 사용자 단말기(310)에 주가가 증가한 종목에 대한 정보 및 매도를 나타내는 신호를 송신하는 단계를 수행할 수 있다. 사용자 단말기(310)는 주가가 증가한 종목에 대한 정보에 기초하여 주가가 증가한 종목에 대한 주식을 매도하는 단계를 수행할 수 있다. 사용자 단말기(310)는 증권사 서버(320)에 매도를 요청하여 매도가 수행될 수 있다.
위 단계에서 매도 수량은 전체 보유 수량일 수 있다. 하지만 이에 한정되는 것은 아니며, 매도 수량은 전체 보유 수량의 1/n일 수 있다. 여기서 n은 자연수일 수 있다. n은 미리 결정된 수일 수 있다. 메인 서버(100)는 남은 수량 중 적어도 일부를 제 1 가격에서 미리 정해진 제 2 증가율만큼 주가가 증가하였을 때 매도하도록 제어할 수 있다. 제 2 증가율은 제 1 증가율 보다 클 수 있다. 사용자 단말기(310)는 메인 서버(100)의 제어에 기초하여 나머지 수량을 매도할 수 있다.
메인 서버(100)는 주가가 급락하는 경우, 보유 수량을 매도할 수 있다. 메인 서버(100)는 급락을 다음과 같이 판단할 수 있다. 예를 들어, (P2-P1)/(t2-t1)가 음수이고 임계값보다 작은 경우, 메인 서버(100)는 해당 종목의 주가가 급락하고 있음을 결정할 수 있다. 여기서 t2는 t1보다 미래의 시각일 수 있다. t2-t1은 미리 결정된 임계시간보다 작을 수 있다. P2는 t2 시각의 주가이고 P1은 t1 시각의 주가일 수 있다. 매도 수량은 전체 보유 수량일 수 있다. 하지만 이에 한정되는 것은 아니며, 매도 수량은 전체 보유 수량의 1/m일 수 있다. 여기서 m은 자연수일 수 있다.
메인 서버(100)는 제 3 종목들 중 적어도 하나의 종목을 추가 매수할 수 있다. 추가 매수하는 과정에 대해서는 이하와 같은 과정에 따를 수 있다.
메인 서버(100)는 제 3 종목들 중 제 1 가격에서 미리 정해진 제 1 감소율만큼 주가가 감소한 제 1 감소 종목에 대한 정보를 획득하는 단계를 수행할 수 있다. 여기서 제 1 감소율은 -5% 이상일 수 있다. 예를 들어 제 1 감소율은 -3%일 수 있다. 메인 서버(100)는 사용자 단말기(310)에 제 1 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계를 수행할 수 있다. 제 1 감소 종목은 제 3 종목들에 포함될 수 있다.
사용자 단말기(310)는 제 1 감소 종목에 대한 정보에 기초하여 제 1 감소 종목에 대한 주식을 추가 매수하는 단계를 수행할 수 있다. 사용자 단말기(310)는 증권사 서버(320)에 제 1 감소 종목의 매수를 요청하는 신호를 송신하여 제 1 감소 종목을 매수할 수 있다. 이를 제 1 추가 매수라고 할 수 있다.
추가 매수 금액은 사용자의 남은 자산을 제 3 종목들의 수로 나눈 금액일 수 있다. 하지만 이에 한정되는 것은 아니다. 예를 들어 제 3 종목들 중 해당 종목의 구매 금액은 다음과 같이 결정될 수 있다.
T = r/R * c/(n-1)
여기서 T는 해당 종목의 구매 금액이고, r은 해당 종목의 예측 주가 등락률이고, R은 제 3 종목들의 예측 주가 등락률의 합이고, n은 미리 정해진 자연수이고, c는 단계(745)의 최초 매수 후 사용자 계정에 남은 현금일 수 있다. 예를 들어 n은 3일 수 있다.
메인 서버(100)는 제 3 종목들 중 제 1 가격에서 미리 정해진 제 2 감소율만큼 주가가 감소한 제 2 감소 종목에 대한 정보를 획득하는 단계를 수행할 수 있다. 여기서 제 2 감소율은 -10% 이상일 수 있다. 예를 들어 제 2 감소율은 -6%일 수 있다. 제 2 감소율은 제 1 감소율보다 작을 수 있다. 즉, 제 1 감소율의 절대값은 제 2 감소율의 절대값보다 작을 수 있다. 메인 서버(100)는 사용자 단말기(310)에 제 2 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계를 수행할 수 있다. 제 2 감소 종목은 제 3 종목들에 포함될 수 있다.
사용자 단말기(310)는 제 2 감소 종목에 대한 정보에 기초하여 제 2 감소 종목에 대한 주식을 추가 매수하는 단계를 수행할 수 있다. 이를 제 2 추가 매수라고 할 수 있다.
추가 매수 금액은 사용자의 남은 자산을 제 3 종목들의 수로 나눈 금액일 수 있다. 하지만 이에 한정되는 것은 아니다. 예를 들어 제 3 종목들 중 해당 종목의 구매 금액은 다음과 같이 결정될 수 있다.
T = r/R * c'/(n-2)
여기서 T는 해당 종목의 구매 금액이고, r은 해당 종목의 예측 주가 등락률이고, R은 제 3 종목들의 예측 주가 등락률의 합이고, n은 미리 정해진 자연수이고, c'는 제 1 추가 매수 후 사용자 계정에 남은 현금일 수 있다. 예를 들어 n은 3일 수 있다.
도 9는 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 나타내는 흐름도이다.
메인 서버(100)는 제 1 종목이 포함된 리스트 중 급등주와 중복되는지 여부를 나타내는 정보를 획득하는 단계(910)를 수행할 수 있다. 이에 대해서는 도 10과 함께 자세히 설명한다.
도 10은 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 설명하기 위한 도면이다.
메인 서버(100)는 제 1 종목이 포함된 리스트(620)를 획득할 수 있다. 이미 설명한 바와 같이 검색된 주식 종목 리스트(620)는 종목(621), 종목(622) 또한 종목(623)을 포함할 수 있다. 주식 종목 리스트(620)는 복수의 제 1 검색식 중 하나에 기초하여 검색된 주식 종목의 리스트일 수 있다.
메인 서버(100)는 급등주 리스트(1010)를 증권사 서버(320)로부터 수신할 수 있다. 메인 서버(100)는 단계(410)에서 급등주 리스트(1010)를 수신할 수 있다. 급등주 리스트(1010)는 제 1 급등주(1011), 제 2 급등주(1012) 및 제 3 급등주(1013) 등을 포함할 수 있다.
메인 서버(100)는 급등주 리스트(1010) 및 주식 종목 리스트(620)를 비교할 수 있다. 메인 서버(100)는 제 1 종목이 포함된 리스트 중 급등주와 중복되는지 여부를 나타내는 정보를 획득하는 단계(910)를 수행할 수 있다. 예를 들어, 중복되는지 여부를 나타내는 정보는 "O" 또는 "X"로 나타낼 수 있다. 하지만 이에 한정되는 것은 아니다. 메인 서버(100)는 주식 종목 리스트(620) 중 급등주 리스트(1010)에 있는지 여부를 결정하여 테이블(1020)을 생성할 수 있다. 메인 서버(100)는 주식 종목 리스트(620)에 포함된 종목이 급등주 리스트(1010)에 포함되면 "O"를 표시하고, 주식 종목 리스트(620)에 포함된 종목이 급등주 리스트(1010)에 포함되지 않으면 "X"를 표시할 수 있다.
이상에서는 복수의 제 1 검색식 중 하나에 기초한 주식 종목 리스트(620)를 중심으로 설명하였으나 이에 한정되는 것은 아니다. 메인 서버는 복수의 제 1 검색식 모두에 대하여 복수의 주식 종목 리스트를 획득할 수 있고, 복수의 주식 종목 리스트에 포함된 종목들에 대하여 급등주와 중복되는지 여부를 나타내는 정보를 획득하는 단계(910)를 수행할 수 있다.
다시 도 9를 참조하면, 메인 서버(100)는 중복되는지 여부를 나타내는 정보와 제 2 주식 정보의 상관 관계를 기계학습한 제 2 기계학습모델을 획득하는 단계(915)를 수행할 수 있다. 제 2 주식 정보는 복수의 주식 종목 리스트에 포함된 종목에 대한 주식 정보에 포함될 수 있다. 제 2 주식 정보는 시간에 따른 주가를 포함할 수 있다. 시간에 따른 주가는 제 1 시간 영역 내의 복수의 단위시간 별 가격 정보일 수 있다. 단위시간은 1분, 10분, 30분 또는 1시간일 수 있다. 이상에서는 제 2 주식 정보를 기준으로 설명하였으나, 이에 한정되는 것은 아니며, 복수의 주식 종목 리스트에 포함된 모든 종목에 대한 주식 정보를 이용하여 제 2 기계학습모델이 생성될 수 있다.
제 2 기계학습모델은 일정한 주기로 새로 생성될 수 있다. 예를 들어 제 2 기계학습모델은 매일 새로 생성될 수 있다. 제 2 기계학습모델이 새로 생성될 때는 다른 데이터를 이용하여 생성될 수 있다. 왜냐하면 제 1 시간 영역 내지 제 4 시간 영역이 시간이 지남에 따라 계속 달라지기 때문이다. 메인 서버(100)는 가장 최신의 데이터를 이용하여 제 2 기계학습모델을 생성함으로써, 제 2 기계학습모델에 최근의 상황이 반영될 수 있다. 주식 시장이 마감하면, 메인 서버(100)는 오늘 주식 시장에 대한 데이터를 획득할 수 있다. 제 1 시간 영역은 D-2일의 주식 시장의 시작 시각 및 종료 시각 사이 중 적어도 일부일 수 있다. 제 2 시간 영역은 D-2일의 주식 시장의 시작 시각 및 종료 시각 사이 중 적어도 일부일 수 있다. 또는 제 2 시간 영역은 D-1일의 주식 시장의 시작 시각 및 종료 시각 중 적어도 일부일 수 있다. D-1일에 메인 서버(100)는 제 2 기계학습모델을 생성할 수 있다. 또한 메인 서버는 D-1일 또는 D일에 제 2 기계학습모델을 이용할 수 있다.
제 2 기계학습모델은 해당 종목의 시간에 따른 주가 정보에 기초하여 해당 종목이 급등주가 될지 여부를 예측하는 모델일 수 있다. 제 2 기계학습모델을 생성하기 위하여 중복되는지 여부를 나타내는 정보와 제 2 주식 정보가 이용될 수 있다. 제 2 주식 정보가 결과 도출을 위해 사용되는 복수의 데이터가 될 수 있다. 또한 중복되는지 여부를 나타내는 정보가 제 2 주식 정보에 대한 레이블 정보가 될 수 있다. 중복되는지 여부를 나타내는 정보가 사용자가 원하는 판단 결과인 실제(ground truth) 정보일 수 있다. 제 2 기계학습모델에 대하여 도 12와 함께 설명한다.
도 12는 본 개시의 일 실시예에 따른 제 2 기계학습모델을 설명하기 위한 도면일 수 있다.
이미 설명한 바와 같이 메인 서버(100)는 제 1 종목이 포함된 종목 리스트(620)를 획득할 수 있다. 주식 종목 리스트(620)는 복수의 제 1 검색식 중 하나에 기초하여 검색된 주식 종목의 리스트일 수 있다. 주식 종목 리스트(620)는 복수의 종목들을 포함할 수 있다.
또한 메인 서버(100)는 증권사 서버(320)로부터 급등주 리스트(1010)를 획득할 수 있다. 메인 서버(100)는 주식 종목 리스트(620)와 급등주 리스트(1010)를 비교하여, 주식 종목 리스트(620)에 포함된 종목들이 급등주 리스트(1010)에 포함된 종목과 중복되는지 여부를 나타내는 정보를 획득할 수 있다.
메인 서버(100)는 종목 리스트(620)에 포함된 종목들 각각에 대한 주식 정보를 획득할 수 있다. 메인 서버(100)는 주식 정보를 증권사 서버(320)로부터 수신할 수 있다. 주식 정보는 해당 종목의 단위 시간 별 주식 가격을 포함할 수 있다.
메인 서버(100)는 중복되는지 여부를 나타내는 정보와 종목 리스트(620)에 포함된 종목들 각각에 대한 주식 정보의 상관 관계를 기계학습하여 제 2 기계학습모델(1220)을 획득할 수 있다. 제 2 기계학습모델(1220)은 해당 종목의 단위 시간 별 주식 가격으로부터 해당 종목이 급등주가 될 것인지를 예측하기 위한 피팅(fitting)된 가중치들을 포함할 수 있다. 메인 서버(100)는 제 2 기계학습모델(1220)을 저장하고 있을 수 있다. 또한 메인 서버(100)는 유무선 통신을 이용하여 제 2 기계학습모델(1220)을 다른 서버로 전송할 수 있다.
메인 서버(100)가 제 2 기계학습모델(1220)을 이용하는 과정에 대해서는 도 11과 함께 설명한다.
도 11을 본 개시의 일 실시예에 따른 주식 자동매매 시스템의 동작 방법을 나타낸 흐름도일 수 있다.
도 11의 단계(1110) 내지 단계(1120)는 도 7의 단계(735) 및 단계(740) 사이에 수행될 수 있다. 또한 단계(1130)는 단계(740)를 대체하고 단계(1140)는 단계(745)를 대체할 수 있다.
메인 서버(100)는 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 정보를 획득한 후, 증권사 서버(320)로부터 제 3 종목들의 제 3 시간 영역에 포함된 제 6 주식 정보를 수신하는 단계(1110)를 수행할 수 있다. 단계(1110)는 단계(720)와 유사할 수 있다. 단계(720)에서는 복수의 제 2 검색식 중 하나에 의한 종목들에 대한 주식 정보를 수신하고 단계(1110)에서는 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 주식 정보를 수신할 수 있다.
메인 서버(100)는 증권사 서버(320)에 제 3 종목들에 대하여 제 3 시간 영역에 포함된 제 6 주식 정보를 요청할 수 있다. 증권사 서버(320)는 제 3 종목들에 대하여 제 3 시간 영역에 포함된 제 6 주식 정보를 데이터베이스로부터 획득할 수 있다. 메인 서버(100)는 증권사 서버(320)로부터 제 6 주식 정보를 수신할 수 있다. 제 6 주식 정보는 종목의 식별정보, 시가, 종가, 고가, 저가, 시간별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 제 6 주식 정보는 제 3 시간 영역에 대응될 수 있다. 즉, 제 6 주식 정보는 제 3 시간 영역 내에서 시가, 종가, 고가, 저가, 시간 별 가격정보, 및 등락률 중 적어도 하나를 포함할 수 있다. 보다 구체적으로 제 6 주식 정보는 시간 별 가격정보일 수 있다. 시간 별 가격정보는 제 3 시간 영역 내의 복수의 단위시간 별 가격 정보일 수 있다. 단위시간은 1분, 10분, 30분 또는 1시간일 수 있다. 제 3 시간 영역의 크기는 1시간 이상 하루 이하일 수 있다.
메인 서버(100)는 제 6 주식 정보를 제 2 기계학습모델에 적용하여 제 3 종목들 중 제 4 시간 영역에서 급등할 제 4 종목을 예측하는 단계(1120)를 수행할 수 있다. 메인 서버(100)는 제 2 기계학습모델을 이용하고, 제 6 주식 정보에 포함된 시간 별 가격정보에 기초하여 제 3 종목들 각각이 급등할지 여부를 결정할 수 있다.
잠시 도 12를 참조하면, 메인 서버(100)는 제 6 주식 정보(1230)를 제 2 기계학습모델(1220)에 적용하여 제 4 종목(1240)을 예측할 수 있다. 제 2 기계학습모델에 의하여 결과는 확률로 나타날 수 있다. 메인 서버(100)는 제 3 종목들 중 하나에 대한 제 2 기계학습모델의 확률이 미리 결정된 임계값 이상인 경우, 해당 종목이 급등할 것이라고 결정할 수 있다. 반대로 메인 서버(100)는 제 3 종목들 중 하나에 대한 제 2 기계학습모델의 확률이 미리 결정된 임계값 미만인 경우, 해당 종목이 급등하지 않을 것이라고 결정할 수 있다.
메인 서버(100)는 제 3 종목들로부터 적어도 하나의 급등 종목을 예측할 수 있다. 제 2 기계학습모델(1220)에 의하여 예측된 급등 종목이 제 4 종목(1240)일 수 있다. 제 3 종목들에 포함된 제 4 종목은 적어도 하나일 수 있다. 예측된 급등 종목은 예측된 값이므로 실제 급등 종목과 차이가 있을 수 있다. 하지만 본 개시에 따른 제 2 기계학습모델은 대량의 데이터에 기초하여 생성되므로 예측된 급등 종목은 실제 급등 종목과 높은 수준으로 유사할 수 있다.
메인 서버(100)는 제 1 기계학습모델(820)에 의하여 선택된 제 3 검색식을 이용하여 제 3 종목들을 획득할 수 있다. 제 3 종목들은 주가가 상승할 것으로 예측되는 종목들이다. 메인 서버(100)는 단계(730) 내지 단계(740)와 같이 제 3 종목들을 모두 매수하도록 제어하는 것이 아니고 제 3 종목들 중 일부만 매수하도록 제어할 수 있다. 예를 들어 메인 서버(100)는 단순히 주가가 상승할 것으로 예측할 뿐만 아니라 급등할 것으로 예측되는 제 4 종목을 매수하도록 제어할 수 있다.
다시 도 11을 참조하면 메인 서버(100)는 사용자 단말기(310)에게 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계(1130)를 수행할 수 있다. 사용자 단말기(310)는 제 4 종목에 대한 정보에 기초하여 제 4 종목에 대한 주식을 제 1 가격에 매수하는 단계(1140)를 수행할 수 있다. 제 1 가격은 매수 당시의 현재 가격을 의미할 수 있다. 즉 사용자 단말기(310)는 메인 서버(100)로부터 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 수신한 직후, 제 4 종목을 현재 가격으로 매수할 수 있다. 사용자 단말기(310)는 증권사 서버(320)에 제 4 종목에 대한 매수 신호를 보냄으로써, 제 4 종목을 매수할 수 있다.
또한 사용자 단말기(310)는 메인 서버(100)로부터 메인 서버(100)가 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신한 시간에 대한 정보를 수신할 수 있다. 사용자 단말기(310)는 송신한 시간과 현재의 시간 사이의 차이가 미리 정해진 임계값보다 큰 경우, 제 4 종목의 매수를 보류할 수 있다. 즉, 사용자 단말기(310) 및 메인 서버(100) 사이의 통신 지연으로 사용자 단말기(310)가 매수 신호를 늦게 받은 경우, 사용자 단말기(310)는 매수를 하지 않음으로써 사용자의 피해를 줄일 수 있다. 이 경우 사용자 단말기(310)는 매수 신호를 재요청할 수 있다. 재요청 신호에 기초하여 메인 서버(100)는 단계(715) 내지 단계(740) 또는 단계(1110) 내지 단계(1130)를 다시 수행하여 사용자 단말기(310)에 제 3 종목들에 대한 정보 및 매수를 나타내는 신호를 송신할 수 있다.
또한 사용자 단말기(310)는 메인 서버(100)로부터 메인 서버(100)가 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신한 시간의 제 4 종목의 주가에 대한 정보를 수신할 수 있다. 메인 서버(100)가 송신한 시간의 제 4 종목의 주가는 제 3 가격일 수 있다. 또한 사용자 단말기(100)가 매수하려고 하는 시각의 제 4 종목의 주가는 제 1 가격일 수 있다. 제 1 가격과 제 3 가격은 다를 수 있다. 송신한 시간의 제 4 종목의 주가에 대한 정보 및 현재의 시간의 제 4 종목의 주가에 대한 정보 사이의 차이의 절대값이 미리 정해진 임계값보다 큰 경우, 사용자 단말기(310)는 제 4 종목의 매수를 보류할 수 있다. 즉, 사용자 단말기(310)의 매수 시점에 주가에 큰 폭의 변동이 있는 경우, 사용자 단말기(310)는 매수를 하지 않음으로써 사용자의 피해를 줄일 수 있다. 이 경우 사용자 단말기(310)는 매수 신호를 재요청할 수 있다. 재요청 신호에 기초하여 메인 서버(100)는 단계(715) 내지 단계(740) 또는 단계(1110) 내지 단계(1130)를 다시 수행하여 사용자 단말기(310)에 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신할 수 있다.
사용자 단말기(310)는 위와 같은 주식 자동매매 시스템을 이용하여 주식 매매를 진행할 결과, 누적 이익률을 계산할 수 있다. 누적 이익률은 (F-O)/O*100 일 수 있다. 여기서 F는 주식의 현재 가격에 의한 사용자의 현재 총자산을 나타낼 수 있다. 또한 O는 사용자가 사용자의 계정에 입금한 금액을 의미할 수 있다.
사용자 단말기(310)는 누적 이익률이 임계값 이상인 경우, 메인 서버(100)에 누적 이익률을 송신할 수 있다. 사용자 단말기(310)는 메인 서버(100)에 사용자의 아이디를 더 송신할 수 있다. 메인 서버(100)는 SNS를 통해 사용자의 아이디와 함께, 누적 이익률을 공개할 수 있다. 즉, 사용자들의 누적 이익률이 실시간으로 공개될 수 있다. 아이디를 제외한 사용자의 개인 정보는 공개되지 않을 수 있다. 메인 서버(100)는 이익률을 공개한 사용자에게 시스템 이용 비용을 차감할 수 있다. 사용자는 이익률 공개를 허용함으로써, 주식 자동매매 시스템울 이용하기 위한 비용을 절감할 수 있다.
이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.

Claims (8)

  1. 주식 자동매매를 하기 위한 시스템의 동작방법에 있어서,
    메인 서버가 증권사 서버로부터 급등주에 대한 제 1 시간 영역에 포함된 제 1 주식 정보를 수신하는 단계;
    상기 메인 서버가 상기 증권사 서버로부터 미리 정해진 복수의 제 1 검색식 정보 중 하나에 기초하여 검색된 제 1 종목에 대한 상기 제 1 시간 영역에 포함된 제 2 주식 정보를 수신하는 단계;
    상기 메인 서버가 상기 증권사 서버로부터 상기 급등주에 대한 제 2 시간 영역에 포함된 제 3 주식 정보를 수신하는 단계;
    상기 메인 서버가 상기 증권사 서버로부터 상기 제 1 종목에 대한 상기 제 2 시간 영역에 포함된 제 4 주식 정보를 수신하는 단계;
    상기 메인 서버가 상기 제 1 주식 정보에 대한 제 3 주식 정보의 상관 관계 및 상기 제 2 주식 정보에 대한 상기 제 4 주식 정보의 상관 관계를 기계학습한 제 1 기계학습모델을 획득하는 단계;
    상기 메인 서버는 사용자 단말기로부터 투자 모드를 수신하는 단계;
    상기 메인 서버는 상기 투자 모드에 기초하여 상기 복수의 제 1 검색식 정보 중 복수의 제 2 검색식 정보를 선택하는 단계;
    상기 메인 서버는 상기 증권사 서버로부터 상기 선택된 복수의 제 2 검색식 정보 중 하나에 기초하여 검색된 제 2 종목에 대한 제 3 시간 영역에 포함된 제 5 주식 정보를 수신하는 단계;
    상기 메인 서버는 상기 제 5 주식 정보를 상기 제 1 기계학습모델에 적용하여 제 4 시간 영역에 대한 예측 주가 등락률을 획득하는 단계;
    상기 메인 서버가 상기 예측 주가 등락률에 기초하여 상기 복수의 제 2 검색식 중 주가 등락률이 가장 높은 제 3 검색식을 선택하는 단계;
    상기 메인 서버가 상기 제 3 검색식에 의하여 검색된 제 3 종목들에 대한 정보를 획득하는 단계;
    상기 메인 서버가 상기 사용자 단말기에게 상기 제 3 종목들에 대한 정보, 매수를 나타내는 신호, 상기 매수를 나타내는 신호를 송신한 시간, 및 상기 송신한 시간의 제 3 종목들의 주가를 송신하는 단계; 및
    상기 사용자 단말기가 상기 제 3 종목들에 대한 정보에 기초하여 상기 제 3 종목들에 대한 주식을 제 1 가격에 매수하는 단계를 포함하고,
    상기 제 3 종목들에 대한 주식을 제 1 가격에 매수하는 단계는,
    상기 매수를 나타내는 신호를 송신한 시간과 현재의 시간 사이의 차이가 미리 정해진 임계시간보다 큰 경우, 상기 사용자 단말기는 상기 제 3 종목들의 매수를 보류하는 단계;
    상기 송신한 시간의 제 3 종목들의 주가 및 현재의 시간의 제 3 종목들의 주가의 사이의 차이의 절대값이 미리 정해진 임계주가보다 큰 경우, 상기 사용자 단말기는 상기 제 3 종목들의 매수를 보류하는 단계;
    상기 제 3 종목들의 매수가 보류된 경우, 상기 사용자 단말기는 상기 메인 서버에 상기 매수를 나타내는 신호를 재요청하는 단계;
    상기 메인 서버는 상기 재요청에 기초하여 상기 사용자 단말기에 수정된 제 3 종목들에 대한 정보 및 수정된 매수를 나타내는 신호를 송신하는 단계; 및
    상기 사용자 단말기가 상기 수정된 제 3 종목들에 대한 정보에 기초하여 상기 수정된 제 3 종목들에 대한 주식을 매수하는 단계;를 포함하고,
    상기 제 1 주식 정보 및 상기 제 2 주식 정보는 단위시간에 따른 주가정보를 포함하고, 상기 제 3 주식 정보 및 상기 제 4 주식 정보는 상기 제 2 시간 영역에서의 주가 등락률을 포함하고,
    상기 제 1 시간 영역은 상기 제 2 시간 영역의 이전이고,
    상기 제 3 시간 영역은 상기 제 2 시간 영역과 일부 중복되거나 이후이고,
    상기 제 4 시간 영역은 상기 제 3 시간 영역의 이후이며,
    상기 제 1 가격은 상기 제 3 종목들에 포함된 종목들 각각의 현재의 주가를 의미하고,
    상기 제 3 종목들에 대한 주식을 제 1 가격에 매수하는 단계는,
    상기 사용자 단말기는, 상기 제 3 종목들에 포함된 하나의 종목의 구매 금액을 다음의 식에 기초하여 결정하는 단계를 포함하고,
    T=r/R * C
    상기 T는 상기 제 3 종목들에 포함된 하나의 종목의 구매 금액이고, 상기 r은 상기 제 3 종목들에 포함된 하나의 종목의 예측 주가 등락률이며, 상기 R은 상기 제 3 종목들의 예측 주가 등락률의 합이고, 상기 C는 사용자 계정의 현금인 것을 특징으로 하는, 주식 자동매매 시스템의 동작 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 메인 서버는 상기 제 3 종목들 중 상기 제 1 가격에서 미리 정해진 제 1 증가율만큼 주가가 증가한 종목에 대한 정보를 획득하는 단계;
    상기 메인 서버는 상기 사용자 단말기에 상기 주가가 증가한 종목에 대한 정보 및 매도를 나타내는 신호를 송신하는 단계;
    상기 사용자 단말기가 상기 주가가 증가한 종목에 대한 정보에 기초하여 상기 주가가 증가한 종목에 대한 주식을 매도하는 단계를 포함하는 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법.
  4. 제 3 항에 있어서,
    상기 메인 서버는 상기 제 3 종목들 중 상기 제 1 가격에서 미리 정해진 제 1 감소율만큼 주가가 감소한 제 1 감소 종목에 대한 정보를 획득하는 단계;
    상기 메인 서버는 상기 사용자 단말기에 상기 제 1 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계; 및
    상기 사용자 단말기가 상기 제 1 감소 종목에 대한 정보에 기초하여 상기 제 1 감소 종목에 대한 주식을 추가 매수하는 단계를 포함하는 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법.
  5. 제 4 항에 있어서,
    상기 메인 서버는 상기 제 3 종목들 중 상기 제 1 가격에서 미리 정해진 제 2 감소율만큼 주가가 감소한 제 2 감소 종목에 대한 정보를 획득하는 단계;
    상기 메인 서버는 상기 사용자 단말기에 상기 제 2 감소 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계; 및
    상기 사용자 단말기가 상기 제 2 감소 종목에 대한 정보에 기초하여 상기 제 2 감소 종목에 대한 주식을 추가 매수하는 단계를 포함하고,
    상기 제 1 감소율의 절대값은 상기 제 2 감소율의 절대값보다 작은 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법.
  6. 제 5 항에 있어서,
    상기 메인 서버가 상기 제 1 종목이 포함된 리스트 중 상기 급등주와 중복되는지 여부를 나타내는 정보를 획득하는 단계;
    상기 메인 서버가 상기 중복되는지 여부를 나타내는 정보와 상기 제 2 주식 정보의 상관 관계를 기계학습한 제 2 기계학습모델을 획득하는 단계를 포함하는 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법
  7. 제 6 항에 있어서,
    상기 메인 서버가 상기 제 3 검색식에 의하여 검색된 상기 제 3 종목들에 대한 정보를 획득한 후, 상기 증권사 서버로부터 상기 제 3 종목들의 상기 제 3 시간 영역에 포함된 제 6 주식 정보를 수신하는 단계;
    상기 제 6 주식 정보를 상기 제 2 기계학습모델에 적용하여 상기 제 3 종목들 중 상기 제 4 시간 영역에서 급등할 제 4 종목을 예측하는 단계;
    상기 메인 서버가 상기 사용자 단말기에게 상기 제 4 종목에 대한 정보 및 매수를 나타내는 신호를 송신하는 단계; 및
    상기 사용자 단말기가 상기 제 4 종목에 대한 정보에 기초하여 상기 제 4 종목에 대한 주식을 제 1 가격에 매수하는 단계를 포함하는 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법.
  8. 제 7 항에 있어서,
    상기 제 1 기계학습모델 및 상기 제 2 기계학습모델은 매일 새로 생성되는 것을 특징으로 하는 주식 자동매매 시스템의 동작 방법.
KR1020210018650A 2021-02-09 2021-02-09 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법 KR102394096B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210018650A KR102394096B1 (ko) 2021-02-09 2021-02-09 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210018650A KR102394096B1 (ko) 2021-02-09 2021-02-09 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR102394096B1 true KR102394096B1 (ko) 2022-05-04

Family

ID=81584125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210018650A KR102394096B1 (ko) 2021-02-09 2021-02-09 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법

Country Status (1)

Country Link
KR (1) KR102394096B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170017704A (ko) * 2015-08-05 2017-02-15 강동춘 주식 매매 방법 및 그를 이용한 주식 매매 시스템
KR20190104919A (ko) * 2019-07-11 2019-09-11 주식회사 리더스트레이딩 주식 자동 매매 시스템 및 방법
KR20200061144A (ko) * 2018-11-23 2020-06-02 광운대학교 산학협력단 주식 포트폴리오 구성을 위한 주식 종목 선택 장치 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170017704A (ko) * 2015-08-05 2017-02-15 강동춘 주식 매매 방법 및 그를 이용한 주식 매매 시스템
KR20200061144A (ko) * 2018-11-23 2020-06-02 광운대학교 산학협력단 주식 포트폴리오 구성을 위한 주식 종목 선택 장치 및 그 방법
KR20190104919A (ko) * 2019-07-11 2019-09-11 주식회사 리더스트레이딩 주식 자동 매매 시스템 및 방법

Similar Documents

Publication Publication Date Title
CN102968670A (zh) 预测数据的方法和装置
Cumming et al. An investigation into the use of reinforcement learning techniques within the algorithmic trading domain
US20220027993A1 (en) System and method for facilitating social trading
CA3150696A1 (en) SYSTEM AND METHOD FOR AN AUTONOMOUS, INTELLIGENT AND ADJUSTABLE COMPARTMENTATION OF MONETARY TRANSACTIONS
CN110766510A (zh) 推荐方法、装置、电子设备及可读存储介质
WO2019019346A1 (zh) 资产配置策略获取方法、装置、计算机设备和存储介质
KR20210058171A (ko) 주식 예측 딥러닝 모델 생성 및 파라미터 최적화를 위한 Automated Deep Learning Studio
KR102120297B1 (ko) 공격거래량 증감 비율에 따른 매매신호 제공 장치 및 방법
Krishnamurthy et al. Sequential detection of market shocks with risk-averse CVaR social sensors
KR102394096B1 (ko) 인공지능을 이용하여 최적 검색식 도출하는 시스템 및 시스템의 동작 방법
US20200193486A1 (en) System and method for determining bid vector transformed predictive click-through rate
KR102340867B1 (ko) 수산물의 판매량을 추정하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
WO2020023763A1 (en) System and method for predicting stock on hand with predefined markdown plans
CN108345941B (zh) 一种参数调整方法和装置
KR20200020264A (ko) 고객 유사도를 이용한 종목 추천 시스템 및 방법
JP6861437B2 (ja) 取引市場予測システム、取引市場予測方法、および取引市場予測プログラム
Asaduzzaman et al. Real time decision making forecasting using data mining and decision tree
Tzur et al. Equity crowdfunding
Kochliaridis et al. Tradernet-cr: cryptocurrency trading with deep reinforcement learning
KR102478703B1 (ko) 가상 자산 교환비율 결정 방법 및 시스템
WO2019017032A1 (ja) 時間の経過につれて価値が変動するアセットを積み立てるためのコンピュータシステム、方法、および、プログラム
US20230306507A1 (en) Computer-Implemented Method for Visualising a Performance of at least One Trader
WO2024098372A1 (en) System and method for selecting automated financial product trading module
Meisel et al. Dynamic decision making in energy systems with storage and renewable energy sources
Hayes et al. Action-based feature representation for reverse engineering trading strategies

Legal Events

Date Code Title Description
GRNT Written decision to grant