나만의 로보 어드바이저(robo-advisor) 만들기 [1]

상념 2016. 8. 30. 15:06

로보 어드바이저란? 

 

 

 

 

 

새로운 용어는 아니지만 요즘 뜨고 있는 로보 어드바이저 (robo-advisor)라는 기술. 쉽게 말해 인공지능 기술을 이용하여 자신이 원하는 알고리즘으로 컴퓨터가 주식 거래를 자동으로 수행하도록 하는 기술이다. 물론 이것은 내 나름의 좁은 해석이고 원래는 더 넓고 좋은 의미가 있을것이다. 그런 글은 위키페디아를 참조.

 

빅데이터, 딥러닝, 머신러닝 등등 신조어를 만들기 좋아하는 요즘시대에 로보 어드바이저는 인공지능과 금융이라는 인간의 흥미와 욕망에 부합하여 차세대 대세어로 부족함이 없다. 

 

나는 로보 어드바이저라는 말은 처음 들어본것이 한달 정도 된 듯하다. 처음에는 무슨 신조어인가 했지만 뜻을 알고 나서는.. 흠. 이런 기술은 이미 금융 공학을 공부하거나 데이터 분석을 하는 사람들에게는 오래전부터 있었던 개념이다. 단지 "인공지능"과 "빅데이터"와 같이 현시대 최첨단을 걷는 기술들이 결합되면서 그동안의 데이터 분석에만 집중하던 금융기술이 이제 분석과 기계학습을 이용한 좀더 지능적인 의미로 떠오른 것이다. 

 

로보 어드바이저라는 개념이 원래는 더 넓은 개념의 더 좋은 뜻도 많이 있겠지만, 좁은 의미인 "빅데이터에 기반한 인공 지능 트레이딩 로봇"을 만드는 방법에 대해 연재해보도록 하겠다. 나는 이러한 로봇은 이미 수년전에 개발하여 사용하고 있다. 한때는 실전에 적용하여 트레이딩을 해보기도 했지만 튜닝없이 바로 운영을 하려니 성공률이 낮아 현재는 일단 시뮬레이션만 수행하며 실제 거래는 로봇이 만드는 리포트를 보고 수동으로 수행하고 있다.

 

나만의 로보어드바이저의 개발에 필요한 준비물을 알아보자.

 

Python 

자바

VC++ 6.0 이상

CybosPlus (대신증권계좌필요)

MySQL

 

 

 

CybosPlus 는 대신증권에서 제공하는 개발자를 위한 트레이딩용 API로 자바, python, c++ 등에서 사용할 수 있다. 빠르게는 초당 10회 정도 트레이딩을 할 수 있다. 무엇보다도 실시간 가격을 가져온다든가 처음 수년간의 데이터(빅데이터)를 구축하기 위해 필요하다.

 

일단 여기 까지...

 

 

 

posted by Dr.Deeeep

ECCB 2016 app

상념 2016. 8. 28. 12:09

 
 
다음주에 출장갈 ECCB 2016 학회의 스맛폰 앱.
 
학회 앱이 이런식으로 출시되는 것은 처음보는데 상당히 혁신적인 아이디어이다. 다른때 같으면 출장 준비로 학회 프로그램이나 학회 정보등 출력해 놓느라 분주할때인데 이번에는 그럴필요가 없다. 앱으로 모든 정보를 찾을 수 있으니 편리하다.
 
좀더 생각해 보니, 이런 학회 앱을 더 발전 시켜서 앱에서 학회 등록도 하고 (in app purchase 방식으로 등록비 지불), 논문이나 키노트 자료등도 받고 프로시딩도 팔고, 참가자간 서로 챗도 할 수 있게 하면 더 좋을 듯. 숙소나 교통 예약도 하고.
 
암튼. 이 학회에서 발표할 딥러닝 실험을 해야 하는데...
뇌파 데이터에서 생성한 뇌파 이미지들을 딥러닝(cNN)으로 학습을 해서 분류 능력을 테스트 하는 실험이다. computationgraph를 써서 아키텍춰를 좀더 복잡하고 LSTM와 DBN을 합해서 Bashivan et. al. 2016 같은 그럴듯한 모델을 시도해 볼 수도 있지만 이번 학회는 좀 급하게 준비하느라 그냥 cNN으로 가기로 했다. 문제는, DL4J에 당연히 그 흔한 이미지 클레시피케이션 예제가 있을거라고 생각하고 느긋이 딴 일 하고 있었는데.. 오늘 찾아 보니 없다. 어딜 봐도 제대로 된 자바 소스가 없는 거다. ㅠㅠ
 
할 수 없이 지금 이 나이에 황금같은 주말에 쌩으로 코딩을하고 있다. 아토피 걸린 Yona를 옆에서 재우고 긁나 안긁나 감시하면서.
하지만 지금 무엇보다 힘든 건 코어 2개뿐인 열악한 뉴맥북에서 인텔리제이로 이미지 처리 관련 코딩을 해야 한다는 거다...
 
 

posted by Dr.Deeeep

딥러닝 for 트레이딩

금융 2016. 8. 18. 02:38

트래이딩분야에 적용된 딥러닝 기술

 

그 동안 개인적으로 테스트해 본 트래이딩에서의 딥러닝 알고리즘은 그닥 효과가 좋지 못하다. 트래이딩 알고리즘의 시뮬레이션을 위해 구축한 웹페이지 (http://www.bigdata-trader.com/simulation_preview.jsp?month=00000000)에서 확인할 수도 있는데, 딥러닝 모델(현재 A26부터 A30까지 5개 모델이 딥러닝 모델, 나머지는 전통적 트레이딩 알고리즘)의 단타 매매 성공율은 겨우 60퍼센트 정도에 미치고 있다. 물론 딥러닝 모델은 아직 2개월 정도밖에 운영하지 않았지만 몇 년을 돌려도 크게 바뀔거 같지는 않다. 이 정도의 performance는 전통적 방법의 트래이딩 알고리즘(예를 들면 A14나 A4)보다도 훨씬 뒤쳐지는 성적이다.

 

 

 

참고로 각 알고리즘은 DBN을 이용하여 72개월간 다음 데이터를 학습한며, 매일 10거래일 전 발행한 추천 종목의 성적을 평가한다.

A26: 주가

A27: 주가+인덱스

A28: 주가변동률+인덱스변동률

A29: 주가변동률+거래량+외인거래량

A30: 주가변동률+거래량+외인거래량+외인보유portion

 

다양한 딥러닝 아키텍춰를 추가해서 LSTM 등을 이용할 계획이긴 하지만 크게 향상될것 같지는 않다. 아키텍춰보다는 데이터나 모델을 바꿔야 할듯.

 

USC의 Greg Harris 가 트래이딩 분야에 적용된 딥러닝 기술을 잘 정리를 해둔것을 발견하여 정리해본다. 원문은 http://gregharris.info/a-survey-of-deep-learning-techniques-applied-to-trading/

 

(요약 할것)

1. Limit order book modeling

 

2. price-based classification models

 

3. Text-based Classification models

 

4. Volatility Prediction

 

5. Portfolio Optimization

 

각 모델별로 아키텍춰를 달리한 논문들을 소개하고 있는데 내 시스템에 적용 가능한것부터 하나하나 테스트 해볼 생각이다.

 

========== continued..

 

일단 위에 열거된 다른 연구자들의 결과를 보고 놀라운 점은 수익 성공률이 53% 정도 밖에 안된다는 것. 내가 구현한 딥러닝 모델보다도 조금 더 나쁘고 A4나 A14보다도 훨씬 안좋다. 하지만 위 요약을 읽으면서 몇가지 새로운 모델에 대한 구상이 떠올라서 구현해보기로 한다.

 

1. 먼저 리턴(closing price - opening price)이라는 개념. 나의 예측 모델들은 모두 regression problem에 집중한데 반해 리턴이란 개념으로 접근한다면 classification 문제가 된다. + 일것이냐 - 일것이냐의 classification. 사실 class 수를 더 늘려서 regression 처럼 학습할 수 있지만. 어쩄든. 그게 중한게 아니고. return을 계산하기 위해서는 opening price 를 알아야 하는데. 이런식으로 하려면 실시간 시스템이어야 한다. 종가 확인 후 하루 한번 예측을 수행하는 일(daily) 베이스의 bigdata trader 시스템에서는 적용할 수 없다. opening price를 무시한다면 성공률이 50%로 수렴할 것이 뻔하다. 서비스 용도말고 관리자창에 테스트 용도로 장중 opening price를 입력 받아 return을 얻어내는 실험 모듈을 추가해야겠다.

  - 조금 더 생각해보니 "종목 상세 보기"에서는 사용자 입력 후 해당 종목에 한 해 실시간 장중가를 가져 올 수 있으니 그날의 리턴을 계산할 수도 있겠다.

 

2. Text 기반 classification

경제면 headline 들과 개별 종목 등락을 학습한다는 개념. 말그대로 bigdata trader의 기본 개념인데... sns 대신 경제면 headline 을 학습한다는 것.

 

3. moving box learning

DBN 을 써서 oscillating box를 학습 한다는 것인데. 학습이고 뭐고를 떠나 이 전략은 전략 자체의 validation 이 필요하다고 본다. 박스 바닥 뚫고 진입시 매수, 박스 바닥 뚫고 진출수 매도. 그러나 박스권의 설정 자체가 이미 후행적이고 결과론 적이다. oscillating box 이론이 잘 맞는 종목도 있을테니 선택적으로 적용한다면 시도해볼만 하다. 각 종목이 얼마나 oscillating box 이론에 일치하는가 평가하는 모듈이 먼저 필요하다.

 

(임시저장)

 

 

 

 

 

 

 

posted by Dr.Deeeep

세부과제 2
Deep learning for Early Detection of Dementia
and a pilot study

운영회의

20160524_치매조기예측_딥러닝_김선호.pdf
다운로드

 

2016.05.24

 

 

 

 

목차

인공지능(기계학습)을 이용한 질병 진단

Why Deep Learning?

기존 기계학습

Deep Learning

Deep Learning을 이용한 EEG 분석 Pilot Study

 

 

Why Deep Learning (Neural Network)?
Integrated Learning

 

 

기존 데이터 분석을 통한 질병 진단

기존 기계학습을 이용한 학습

기존 기계학습을 이용한 진단

딥러닝을 이용한 진단

 

 

딥러닝을 이용한 학습

사람의 인지 과정과 유사

추상화: 저수준표현è고수준 표현

 

 

 

기존 기계학습 기법 대비 Deep Learning 장점

자동화된 Feature selection

학습 데이터 제작 비용 ↓ 시간 ↓

대용량 원시 데이터 학습 (sensor, raw,…)

월등한 성능!!

 

 

 

현재 딥러닝 기술 수준

Playing Game

Object Recognition

Semantic Segmentation

Image Completion

Hand Writing by Machine

Music Composition

Image Caption Generation

Visual Question Answering

Word Analogy

Neural Machine Translation

 

Playing Game

Object Recognition

Semantic Segmentation

Image Completion

Hand Writing by Machine

Music Composition

Painting

Image Caption Generation

Visual Question Answering

Word Analogy

Neural Machine Translation

 

 

Deep Learning을 이용한 EEG 분석 Pilot Study

UCI EEG Data

Two groups: alcoholic and nc

122 subjects x about 120 trials (different stimuli); total 11057 cases

Each case:  64 electrodes x 256 hz

 

 

 

 

700mb

Stimulus: object S1, or S1 and S2 (matched or non-matched)

Electrode position: Zhang et al. 1995

 

 

Alcoholic EEG vs NC EEG

Pilot Study

Pilot Study

Deep Belief Network을 이용한 EEG 데이터 학습

EEG 최대값 465.63, 최소값 -158.96, 평균 -1.86

대부분 -30~+100에 집중

Z-score normalization

 

 

 

 

 

 

 

 

 

 

Pilot Study

전체 데이터의 90% 학습, 10%는 평가에 이용 10 fold cross-validation

 

 

실험결과

Accuracy(=(TP+TN)/(P+N)): 0.77

Precision(=TP/(TP+FP)): 0.78

Sensitivity(=Recall=TP/(TP+FN)): 0.78

F1 score(=2TP/(2TP+FP+FN)): 0.78

 

 

 

 

 

 

 

 

 

 

Further Study

Further study

뇌파 패턴 분석

Normalization 최적화 (z-score, linear min-max, 3depth linear, Bezier,...)

Activation function 최적화

 

 

                                                      

Network type 최적화

DBN, CNN, RNN, LSTM, RBM, DeepQ,..

 

 

 

 

Question? Comment?

posted by Dr.Deeeep