딥러닝모델6 (A31) 설계

카테고리 없음 2016. 9. 30. 04:18

Bigdata-trader.com의 31번째 알고리즘(모델번호 A31이며 6번째 딥러닝 모델)을 개발하기 위한 연구 노트

목적
딥러닝 기술을 이용하여 급등주의 사전 조짐을 학습 가능한가 테스트 하기 위함. 여기서 급등주란 일반적인 우상향주가 아닌 장기간 소외되던 종목이 5일간 연속 으로 하루평균 10%이상의 가격 상승을 경험 한 종목으로 정의 하기로 함.

가설
주가의 급변(급 상승)은 새로운 호재 나 수익성 개선에 따른 예측 불가의 시장의 자연스러운 가격 변동이 아닌 특정 매수 세력의 의도된 행위의 결과이고, 매수 세력이 사전에 수년에서 수 개월간 해당 종목에서 준비를 한 후 행한 행위의 결과임을 가정. 이러한 준비 행위는 급등 직전 몇 달간의 거래 데이터를 기계 학습함으로써 포착 할 수 있는 특이한 패턴을 갖음을 가정 함. 

방법
과거 데이터에서 급등주를 필터링 및 수집함. 세력주 지수를 이용하여 20일 눌림목 지수 특정값 이상 종목중 급등주 정의에 해당하는 것만 선택. 급등전 강기간 소외 되었음을 확인 하는 루트 추가 필요. 1차 수집정보는 (종목번호와 급등 시작 날짜). 1차 수집 정보만을 ann_builder를 이용하여 2차 수집 정보를 수집함. 2차 수집 정보(시간, 주가, 국내외 인덱스, 외인 거래량, 외인 포션등)는 시계열 데이터로 생성하며 수집기간을 파라미터 입력으로 받아 디비에서 추출하여 ann_builder 입력 폼으로 변형. 어느정도의 수집 기간이 보장되어야 하므로 신규 종목은 제외되어야함 (수집 시작일에 데이터 시작일보다 이전인 종목 제외). 
네거티브 클래쓰 데이터로 급등주 외의 일반적 우상향주, 우하향주 등도 같이 모아야함.

서비스를 위해서는 트레이닝이 끝난 네트워크를 종목별로 파일로 저장하여 가지고 있어야 하는데 cafe24에서는 그들의 정책상 keras를 수행할 수 없을 듯. 자바만 가능하므로 A26~A30과 같이 A31과 관련된 모든 코드는 dl4j로 작성해야 할 듯.

추가적으로 개발해야 할 툴. 패키지에 util_rapidSoaringANNBuilder.java 추가. 박스권 상향 이탈과 동시에 급등하는 패턴을 찾는 유틸리티. 급등주의 조건이 까다로우므로 퀄리파이하는 루틴필요. 다음과 같은 순서로..

1) 새로운 테이블 추가: 다른 쪽에서도 공유할 수 있도록 패턴 이름으로 분리하여 저장 

mysql>create table patternfound
(
  patternname varchar(30) not null,
  itemcode varchar(8) not null,
  a varchar(10) not null,         // start date of soaring
  b varchar(10),    
  c varchar(10),    
  d varchar(10),
  primary key (patternname, itemcode, a) 
);

2) 매일 자동 업데이트시 세력지수 테이블내 모든 종목 추출 => 후보들

3) 후보들 중 원하는 패턴인가 qualify

4) qualify 리턴 값은 soaring starting date 임. 테이블의 a 에 저장

5) 장기간 수집 후 patternfound 테이블을 이용 디비 재검색하여 2차 데이터 수집

6) 2차 데이터이용 학습 데이터 생성

7) 학습 데이터 생성시 중복 체크 필수. 같은 "종목+startdate" 혹은 같은 종목코드인테 startdate가 근소하게 무의미하게 차이가 나는 레코드가 존재할 수 있으므로 확인 필요

 

 

 

posted by Dr.Deeeep