호호조

cdc wiki
호호조 (토론 | 기여)님의 2019년 6월 19일 (수) 21:22 판
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 광물시장에서 강화학습을 이용한 트레이딩 봇

영문 : Trading-bot using Reinforcement Learning in a mineral market

과제 팀명

호호

지도교수

이동희 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 2014920044 이홍석(팀장)

서울시립대학교 컴퓨터과학부 2014920037 이정한

서론

개발 과제의 개요

개발 과제 요약

  • 이전부터 사용자들이 많이 사용하던 시계열 분석 알고리즘과 다양한 지표들을 활용하여 강화학습을 이용하여 광물 가격을 예측한다.
  • 광물시장에서 시가에 영향을 미치는 다양한 요인이 존재한다.
  • 이미 밝혀진 다양한 요인들과 우리들이 생각한 요인들을 정리한다.
  • 이러한 요인들을 강화학습을 통해서 상관관계가 있는지 확인하고 실제로 수익을 낼 수 있는 모델과 학습을 진행한다.
  • 여러 가지 요인(차트 및 시장표준지수)들과 전략들을 가지고 하나의 광물을 대상으로 수익률이 높을 것으로 예상되는 매수, 매도 타이밍을 찾아낼 수 있는 것을 목표로 한다.
  • 다양한 강화학습 알고리즘 중 PPO(Proximal Policy Optimization), DQN(Deep Q Network)을 사용하여 구현해보고 어떤 방식이 더 잘 맞는지 분석해본다.

개발 과제의 배경

  • 광물 시장은 매 시간마다 변동함
  • 광물 시장의 변동은 어떠한 요인들에 의해 값어치가 올라가기도 하고 내려가기도 함
  • 다양한 논문 Research 및 분석을 통해 값에 변화를 주는 요인들을 선별
  • 해당 요인들을 강화학습 모델의 환경에 넣어서 학습을 시킴

개발 과제의 목표 및 내용

  • 강화학습을 이용하여 트레이딩을 자동으로 하는 봇을 만든다.
  • 광물 가격에 영향을 주는 요인들을 찾아보고 어느 정도 연관관계가 있는지 확인한다.
  • 연관관계가 있는 요인들을 모아서 강화학습모델에 적용시켜보고 실제로 효과가 있는지 확인해본다.
  • 효과가 컸던 요인들을 모아서 모의 투자 상황에서 수익률 분석을 해본다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
    • 자동 거래 시스템(ATS;Automated Trading System)은 1949년 Richard Donchian이 funds를 사고 파는 일련의 규칙을 사용하여 처음 소개되었다. 1980년대에는 John Henry와 같은 유명한 Trader들이 전략을 사용하기 시작하여, 규칙 기반 거래(Rule Based Trading)라는 개념이 대중화되었다. 현재는 미국 증권 거래소 주식 거래의 75% 이상이 자동 거래 시스템으로 이루어진다.
    • 최근에는 AI의 등장으로, 수많은 은행이나 투자자들이 AI를 활용하여 규칙 기반 거래나 직접 거래보다 훨씬 수익률이 높은 모델을 개발중이다. 딥러닝, 머신러닝 등의 기술을 활용하여 Trading Bot을 개발하고 있으며, 강화학습의 등장이후, 다양한 Trading Bot Project에서 강화학습을 도입하려는 움직임을 보이고 있다.
  • 특허조사 및 특허 전략 분석
    • 거절 : 알고리즘 자동 매매 봇, [1]
      • 알고리즘 트레이딩 봇들을 모아서 관리할 수 있는 시스템
      • 통상적인 기술자가 충분히 만들 수 있는 것으로 판단하여 특허 거절
    • 등록 : 소셜트레이딩 방법, [2]
      • 리더를 설정하여 해당 리더의 매매를 확인하고 추종하는 알고리즘
  • 기술 로드맵
    • 자동으로 거래를 할 수 있는 봇의 형태를 만들어야 하고, 모의투자를 통해 테스트할 수 있는 환경을 만들어야하기 때문에 투자, 증권사 API 및 모의투자 서버가 필요하다. 따라서, 키움증권, 대신증권, 이베스트투자증권 등의 회사의 API를 활용하고, 이 회사들의 모의투자 서버를 통해 수익률을 분석할 수 있다.
    • 강화학습은 환경이 주어지고, 해당 환경에 액션을 취하면 그에 따른 보상을 주면서 학습을 시킨다. 일반적인 딥 러닝은 어떤 요인들의 상호관계를 표현하지 못한다. 하지만 강화학습은 환경을 통해 어떤 요인들의 상호관계를 표현할 수 있다. 주식들은 서로 상호관계를 가지고 있으므로 강화학습을 이용하는 것이 유리한 방법이라 할 수 있다.
    • 현재에는 차트분석만으로 주식이나 광물시장에서의 매도, 매수타이밍을 잡아서 수익을 낼 수 있는 다양한 방법이 연구되고 있다. 이를 기술적 매매라고 부른다. 이러한 방법을 이용하여 알고리즘으로 구현하면 보다 안정적이고 수익률이 검증된 매매방법을 사용할 수 있다.

시장상황에 대한 분석

  • 경쟁제품 조사 비교
    • 이러한 제품들은 시장에 공개적으로 나와있는 것을 쉽게 찾을 수 없다. 이러한 트레이딩봇 자체가 실제 주식시장에서 수익을 낼 수 있기 때문이다. 이윤을 창출하는 기업의 입장에서는 이 트레이딩 봇을 직접적으로 사용하지 않을 이유가 없다.
    • 또한 많은 사용자가 트레이딩 봇을 사용한다고 가정했을 때 모두가 이익을 볼 수 있는 것은 아니다. 같은 알고리즘을 사용하는 트레이딩 봇이 많으면 수익률이 줄어 들기 때문에 이러한 트레이딩 봇을 상용화하지 않은 것으로 보인다.
알고리즘 증권사 API 비고
브레인듀드의 듀드303, 듀드프로 사용자의 조건검색식 사용 키움증권 API
키움증권의 로보마켓 다양한 알고리즘 전략 제시 키움증권 API
주식몰 오토핫키 해당하는 설명이 없음 해당하는 설명이 없음 마켓팅 위주의 사업 진행
    • 위와 같이 알고리즘 트레이딩 봇을 만드는 회사 이외에도 증권사나 펀드회사 같은 경우에도 가치투자를 위한 분석자료를 제공하는 서비스를 제공할 수 있다.
    • 한국거래소에서는 종목마다 투자가치를 판단할 수 있는 자료를 제공한다. 이에 따라서 우리의 트레이딩봇과 경쟁해야 하는 부분을 가지고 있다.
  • 마케팅 전략 제시
    • 위와 같이 여러가지 요인을 연구, 분석함에 따라서 트레이딩 봇을 만들 수 있다. 이 요인들의 적당한 조합으로 여러가지 특성을 띠는 트레이딩 봇을 개발할 수 있다.
    • 사용자들에게 원하는 이익구조를 선택할 수 있게 한다. 예를 들어 수익률이 크게 높지 않더라도 안정적인 투자를 원하는 사용자가 있고, 위험을 감수하더라도 높은 수익률을 원하는 사용자가 있다. 요인분석에 따라서 얻을 수 있는 특징들을 찾아내고 이러한 요인들로 주식트레이딩의 위험, 최고 수익률등이 결정될 것이다.

개발과제의 기대효과

기술적 기대효과

  • 기존의 주식 트레이딩봇들은 우리가 직접 알고리즘을 구현하고 설계함에 따라서 작동했다. 사람의 직관을 이용해서 장기투자를 하는 것이 아니라 짧은 시간의 시장변동을 감지해서 조금씩 수익을 올리는 등의 알고리즘이 만들어져 왔다. 하지만 강화학습과 딥러닝을 사용해서 좀 더 효과적인 방향을 찾을 수 있다.
  • 딥러닝에서 사용하는 뉴럴 네트워크는 학습이 완료되었을 때 예측속도가 매우 빠르다는 특징을 갖고 있다. 해당 요인을 성공적으로 학습한 네트워크를 얻은 후에 봇을 사용할 때는 컴퓨팅의 성능을 크게 사용하지 않고 빠른 속도의 트레이딩이 가능하다.

경제적, 사회적 기대 및 파급효과

  • 위에서 서술한 대로 만일 강화학습을 이용해서 주식 트레이딩봇이 성공적으로 수익을 낼 수 있는 구조라면, 이와 유사한 트레이딩봇이 많이 등장할 것이다. 더불어서 강화학습에 딥러닝을 적용시키면서 구성할 수 있는 선택의 여지가 많아졌다. 각기 학습하는 방법에 따라서 각기 다른 여러가지 전략이 등장할 수 있는 것이다. 따라서 기존에 알고리즘을 이용해서 매매를 진행하던 투자자들이 새롭게 등장하는 트레이딩봇의 투자전략에 영향을 받을 것이며, 시장의 특성은 더 다양하고 복잡해질 것이다.

기술개발 일정 및 추진체계

개발 일정

단계별 세부개발 내용 담당자 개발기간 비고
강화학습 환경 설계 이홍석 3~4
모의투자 환경구성 및 트레이딩 봇 구현 이정한 4~5
학습진행 및 정확도 개선 이홍석 4~6
기존의 트레이딩 봇과의 성능 비교 이정한 6
요인 연구 및 분석 이홍석, 이정한 3~6

구성원 및 추진체계

내용

설계

설계사양

제품의 요구사항

번호 요 구 사 항 D or W 중요도
1 기존 시계열 분석 논문에 있는 전략(요소, Factor)들을 모듈로 개발 D
2 시계열 데이터 분석 모듈을 적용할 수 있는 강화학습 모델을 개발 D
3 모델을 학습시킬 수 있는 환경(Env, DB) 개발 D
4 PPO와 DQN 강화학습 알고리즘을 구현하고 분석 W

설계 사양

  • 목적계통도

Hoho7.png

개념설계안

  • 기존에 연구되어진 시계열 분석 알고리즘을 이용한 결과물들은 제각기 집중하는 부분이 다르기 때문에, 그 정확도가 서로 배타적 일 것이다. 즉 어느 한 알고리즘이 우위의 정확도를 가질 경우 다른 알고리즘은 상대적으로 낮은 정확도를 가질 것이다.
    • 서로 정확성에 있어 배타적일 정도로 다른 시계열 분석 알고리즘을 찾아야한다.
    • 배타적인 TA 알고리즘 a0~an을 찾고, 구현한다.
  • 강화학습 예측 모델

Hoho8.png

    • 강화학습을 이용한 시계열 데이터의 학습을 통해 예측 모델을 생성한다.
    • 예측 모델은 다음과 같이 크게 두가지 단계로 구성된다.
      • 직접 시계열 데이터를 분석 / 예측하는 전략적 알고리즘
        • 네이밍: a0, a1, … , an
        • input: {시계열 데이터}
        • output: {예측된 다음 시계열 데이터=o0, o1, …, on}
      • 인공신경망을 응용하는, 적절한 전략적 알고리즘에 가중치를 부여하는 알고리즘
        • 네이밍: M
        • input: {시계열 데이터}
        • output: {w0, w1, …, wn}
        • 어느 하나의 전략적 알고리즘을 선택하는 방식(hard decision)이 아니라, 여러 전략적 알고리즘의 정확도를 연판정(soft decision)하여 그 비중을 출력한다.
    • a의 결과인 O와 b의 결과인 W를 곱하여 최종 예측치를 계산한다. (가중평균)
      • Predict = OW
    • 이 Agent의 결과에 따라서 전략을 어떤 비율로 선택하게 된다. 이를 조합한 값으로 특정 광물에 대한 매수 혹은 매도할 값을 선택하게 된다.
  • 강화학습 환경 구성 요소
    • 에이전트
      • state값들을 DNN을 사용하여 전략을 선택할 수 있는 값으로 추출한다.
      • 전략개수 의존적
    • 환경
      • 한 거래소의 해당 광물의 일봉csv데이터를 시간에 따라서 사용
      • USD, EUR (KRW 기준) 지수 데이터
    • 리워드 공식
      • 해당 광물의 가치와 잔금을 합산한 값을 리워드로 사용한다.
    • 액션 리스트
      • 양수는 매수, 음수는 매도의 의미로 하나의 출력값을 사용한다.
        • 광물 거래는 1주 단위의 이산적인 값을 사용한다.
        • 최대, 최소값을 설정한다.
  • 학습 시나리오
    • 매 학습에서 어떤 기간을 랜덤으로 설정한다.
    • 이 시간동안의 광물시장 데이터를 사용해서 하루 단위로 액션을 진행한다.
    • 시계열 분석 부분에서 각각의 전략이 매수/매도값을 도출한다.
    • 강화학습 부분에서 가중치를 도출한다.
    • 가중치값과 매수/매도값을 각각 곱하고 누적한다.
    • 해당 값을 통해 매수/매도/유지를 진행한다.매도가 될 때까지 진행하고 매도시 수익률을 구한다.
    • 수익률이 증가하는 방향으로 학습을 한다.

이론적 계산 및 시뮬레이션

  • 강화학습 오픈소스) DQN을 이용한 트레이딩 학습 테스트
    • 학습개요
      • 아래는 국내 3개 IT기업의 일봉데이터를 대상으로 학습을 진행한 결과이다.
      • 구현에서는 가능한 만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.
      • 아래의 그래프에서는 초기 투자금을 가지고 시간에 따라서 자산 가치가 어떻게 변하는지 보여준다.
    • 트레이닝 데이터로 학습 진행 중 자산가치변화

Hoho1.png

      • 빨간선은 초기 투자 금액이다.
      • 초반에는 매우 가치가 크지만 불안정한 트레이딩을 하다가 후에 안정적인 수익률을 보여주는 것을 알 수 있다.
    • 테스트 데이터에서 거래중 자산가치 변화

Hoho2.png

      • 빨간 선은 초기 투자 금액이다.
      • 테스트 데이터로 트레이딩 했을 때 투자금액 보다 평균 12%의 수익을 올릴 수 있었다.
      • 단순 시가만으로 학습을 하는 경우, 위와 같이 매우 불안정하므로 다양한 전략을 통해 개선이 필요하다.
  • 전략 오픈소스) 10일, 30일 이동평균선 교차점 검출을 이용한 매수 매도 알고리즘 트레이딩
    • 방법
      • 현재까지 크롤링한 일봉데이터에서 단기 이동평균선과 장기 이동평균선의 교차점은 중요한 매도, 매수타이밍의 후보가 될 수 있다. 장기적인 추세를 따라가는 것이 미래에 대체로 좋은 방향이 되므로 장기평균선이 상승할 떄 매수, 하락 할 때 매도를 하는 것이 좋다.
      • 구현에서는 가능한만큼 모두 매수, 매도, 대기하는 액션만 사용하였다.
    • Ta-lib
      • Technical Analysis LIbrary
      • 시장분석과 같은 시계열 데이터 알고리즘을 분석하는데 사용하는 라이브러리
      • 내부에서는 기본 시장지표를 받으면 이에 따라서 새로운 보조지표를 만들어주거나 패턴을 검출하는 함수 제공
      • 구현에서 이동평균선 지표를 얻을 때 사용.
    • 가상트레이딩에 따른 자산가치 변화

Hoho3.png

      • 빨간선은 초기 투자 금액이다.
      • 위와 같이 장기간 트레이딩을 진행하는데 있어서 이동평균선 교차점을 이용한 트레이딩이 좋은 효과를 보이는 것을 알 수 있다.
  • 광물시장 시가데이터 크롤링
    • 한국거래소([3])
    • 거래소홈페이지에서 1년단위의 데이터를 csv로 내려받을 수 있다.
    • 아래는 2014년 - 2019년의 종가를 그래프로 나타낸 것이다.

Hoho4.png

  • DQN 소스코드를 사용한 광물시장 가상 트레이딩
    • 위에서 사용한 DQN방법을 금시장을 대상으로 트레이딩을 진행했다.
    • 구현방식은 위의 DQN을 이용한 트레이딩 테스트와 같다.
    • 2000회 트레이닝을 진행하여서 매회 트레이닝마다 다음과 같은 결과를 얻을 수 있었다.

Hoho5.png

    • 초기투자금액 10,000,000원으로 학습을 진행했다.
    • 위에서 트레이닝한 결과를 바탕으로 테스트를 진행했다.

Hoho6.png

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용