반응형

SW/주가 예측 29

주가, 비트코인 예측 : 머신러닝 모델 : 구현, 개발, 코드, 방법

머신러닝 모델 구현 파이썬과 Scikit-learn 라이브러리를 이용해 주가방향을 예측할 수 있는 간단한 주가 방향 예측변수를 구현합니다. 핵심 아이디어는 전날의 종가 또는 거래량 데이터를 이용해 다음날의 주가 방향을 예측하는 것입니다. 사용자는 입력 변수로 종가나 거래량 중 하나를 사용할 수 있습니다. 또는 2개를 모두 사용할 수 있습니다. 또한, 하루 전의 데이터를 기준으로 예측할지, 며칠 전의 데이터를 기준으로 예측할지 선택할 수 있습니다. 데이터셋하나의 데이터 셋을 만들고, 만들어진 데이터 셋을 일정 비율로 나누어 학습과 테스트에 사용합니다. 학습용 데이터셋은 주가방향 예측변수를 학습시키기 위해 사용하는 것으로, 이 데이터를 이용해 각 주가방향 예측변수 모델을 완성합니다. 테스트용 데이터셋은 학습..

SW/주가 예측 2019.07.10

주가. 비트코인 예측 : 머신러닝 기반 알고리즘 트레이딩 시스템 : 후기, 느낀점

알고리즘 트레이딩을 개발하기 위해서 다양한 분야의 지식이 필요합니다. 머신 러닝을 이용한 알고리즘 트레이딩 시스템 개발 이라는 책을 활용해 핵심 개념과 코드를 공부해보았습니다. 머신러닝이라는 하나의 주제만으로도 많은 분량이 나올 수 있다는 것을 알았습니다. 또한, 알고리즘 트레이딩 역시 마찬가지입니다. 머신 러닝이 잘할 수 있는 일과 그 한계가 있다고 생각하였습니다. 하지만 생각보다 훨씬 더 다양한 문제에 머신러닝을 적용할 수 있다는 것을 알게 되었습니다. 또한, 기술 수준이 많이 발전했다는 것을 알게 되었습니다. 소프트웨어가 기능 중심으로 꾸준히 발전해왔습니다. 하지만 이제 소프트웨어는 지능 중심으로 눈부신 발전을 할 것입니다. 이제는 지능이라는 큰 목표가 확고히 세워졌습니다. 다시 과거로 회귀하기는 ..

SW/주가 예측 2019.07.09

주가 비트코인 예측 : 블랙스완 : 개념, 특징, 중요성

블랙 스완은 나심 니콜라스 탈레브가 제시한 이론입니다. 있을 수 없는 일이라고 생각한 일이 실제로 발생했습니다. 예측하기 힘든 큰 충격이 발생한다는 내용입니다. 블랙 스완 이론은 서브프라임 사태와 같은 금융 위기를 설명할 수 있습니다. 알고리즘 트레이딩에서도 블랙 스완 이론은 해당됩니다. 바로 변동성과 확률성이 있습니다. 상승과 하락 같은 주가의 방향이든 주가 자체이든 간에 무엇인가를 예측하고, 그결과에 따라 매수 매도를 합니다. 알고리즘 트레이딩에서 특히 머신러닝 모델을 이용한 예측이라는 것은 어떤 일이 미래에 일어날 확률을 의미합니다. 알고리즘 트레이딩 시스템에서 거래라는 것은 미래에 대한 예측을 바탕으로 100% 확실한 것은 아닙니다. 즉, 거래에 대한 위험과 보상이 공존하는 상황에서 결정해야 합니..

SW/주가 예측 2019.07.09

주식, 비트코인 예측 : 파라미터 최적화 : 개념, 특성, 중요성

파라미터 최적화는 알파 모델에서 필요한 파라미터들을 가장 좋은 성능을 낼 수 있도록 최적화하는 것입니다. 파라미터 최적화는 알고리즘 트레이딩 시스템의 성능에 결정적인 영향을 미칩니다. 아무리 좋은 모델을 개발했더라도, 적절한 파라미터가 설정되지 않으면 결코 좋은 결과를 기대할 수 없습니다. 동일한 모델이라도 파라미터에 따라 매우 다른 수익의 양상을 보여줍니다. 알고리즘 트레이딩 시스템의 성능 역시 이 파라미터를 어떻게 최적의 값으로 채워 넣느냐에 따라 알고리즘 트레이딩 시스템의 설계 및 수준에서 차이가 나게 됩니다. 최근 알고리즘 트레이딩 시스템은 그때 그때 시장 상황에 맞는 빠른 대처가 중요해지고 있습니다. 빨리 시장 변화에 대처하려면 복잡한 모델은 적합하지 않으므로 단순하고 이해하기 쉬운 모델의 사용..

SW/주가 예측 2019.07.08

주가, 비트코인 예측 : 하이퍼파라미터 최적화 : 개념, 특징, 방법

하이퍼파라미터 최적화 머신러닝 모델 파라미터의 최적화를 보통 하이퍼 파라미터 최적화라고 합니다. 모델 파라미터 최적화와 하이퍼 파라미터 최적화로 크게 2가지 종류가 있습니다. 하이퍼 파라미터에서 설정한 값에 따라 모델 파라미터를 최적화합니다. 따라서 하이퍼파라미터 최적화는 머신러닝 모델의 성능에 큰 영향을 미치게 됩니다. 모델 파라미터 최적화는 하이퍼 파라미터로 설정된 범위 내에서만 최적화를 시도하기 때문에 올바르게 설정되지 않은 하이퍼 파라미터에서는 좋은 성능을 보여주기 힘듭니다. 따라서, 모델 파라미터 최적화보다 중요한 것은 하이퍼파라미터 최적화라고 할 수 있습니다. 하이퍼 파라미터 최적화에는 크게 2가지 종류가 있습니다. 바로 격자 탐색과 랜덤 탐색의 개념입니다. 격자 탐색주어진 범위 내의 모든 값..

SW/주가 예측 2019.07.08

주가, 암호화폐 예측 : 라이브 트레이딩 모니터링 : 개념, 방법

라이브 트레이닝 모니터링실시간으로 알고리즘 트레이딩 시스템의 매수 매도를 모니터링 하는 것입니다. 시스템 운영에서 빠질 수없는 중요한 기능입니다. 시스템의 성능과 특성을 철저하게 파악해 선별한 시스템이 있습니다. 하지만 이 시스템이 수익을 안겨 줄지, 손실을 줄지는 아무도 모릅니다. 이제는 누구나 전 세계 금융 정보를 수집할 수 있습니다. 인터넷으로 접속해 해외 주식을 사고 팔 수 있는 시대가 된 것입니다. 기술의 발달로 전 세계 금융 시장에 대한 접근이 가능해졌습니다. 하지만, 그만큼 변동성은 심화되었습니다. 우리나라가 아닌 다른 나라에서 발생한 사건 하나가 국내 주식시장의 폭락을 가져올 수 있습니다. 반대로 급상승을 가져올 수 있습니다. 국내 회사의 성장성을 예측하는 부분에 있어, 해외 경제 상황을 ..

SW/주가 예측 2019.07.07 (2)

주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징

머신 러닝 모델 성능 측정머신 러닝 모델의 성능을 측정하는 방법은 문제의 성격에 따라 달라집니다. 머신러닝 모델은 주가의 방향을 예측하는 분류자입니다. 상승과 하락 중 어느 쪽을 잘 맞추는 지 정확도와 재현율은 얼마나 되는지 알 수 있습니다. 그렇다면, 모델이나 전략을 수정해 더 높은 수익률을 기대할 수 있기 때문입니다. 또한, 앞서 포스팅한 모델들은 각 머신러닝 알고리즘에 별도의 파라미터를 지정하지 않고 기본값을 사용했습니다. 그러나 더 좋은 성능을 올리기 휘해서는 적절한 파라미터를 설정해줘야 합니다. 혼동 행렬혼동 행렬은 항목별 분류 결과를 테이블 형태로 표혀한 것입니다. 분할표라고도 합니다. 혼동 행렬은 예측 정확도만으로 알 수 없는 머신러닝 모델의 예측 특성과 데이터 편향 등의 추가적인 정보를 알..

SW/주가 예측 2019.07.06

주식, 비트코인 예측 : 백테스팅 : 방법, 특징, 종류

백테스팅특정 기간의 과거 데이터로 알고리즘 트레이딩 시스템의 성능을 평가하는 것을 백테스팅이라 합니다. 백테스팅은 알고리즘 시스템을 파악하기 위해 시행하는 것으로 매우 중요한 부분입니다. 백테스팅은 다양한 종류와 방법이 있습니다. 대표적인 방법에 대해 알아보겠습니다. Profit/Loss개발한 시스템에 특정 기간의 데이터를 입력해 트레이딩을 실시합니다. 그 때, 발생하는 이익과 손실을 평가합니다. Hit RatioHit Ratio는 모델을 이용해, 예측한 결과의 정확도를 의미합니다. 모델에 따라 의미가 다를 수 있습니다. Hit Ratio는 과거 데이터를 이용합니다. 그러므로, 특히 머신러닝 모델의 경우 학습에 사용했던 데이터와 테스트에 사용한 데이터가 중복되지 않도록 합니다. def getHitRati..

SW/주가 예측 2019.07.05

주식, 비트코인 예측 : 성능 측정 : 방법, 분석, 특징

알고리즘 트레이딩 시스템의 성능 측정뛰어난 모델도 적절한 성능 측정없이는 결코 알고리즘 트레이딩에 사용할 수 없습니다. 과연 어떻게 성능을 측정하는 것이 알고리즘 트레이딩 시스템의 성능을 적절히 측정하는 것인지는 아무도 명확하게 이야기 할 수 없습니다. 과거 데이터 만을 사용해 평가한 결과가 좋다면 테스트한 알고리즘 트레이딩 시스템은 미래에 높은 수익을 가져온다고 할 수 없습니다. 반대로 평가 결과가 좋지 않다 하더라도, 미래에 손실을 초래할 것이라고 할 수도 없습니다. 과연 성능 평가는 어떠한 식으로 해야할까요? 구현 시스템의 수익성 평가가장 기본적인 것입니다. 어느 정도 수익률을 기록할 수 있을 지 알아보아야 합니다. 구현 모델별 비교시스템에 적용된 모델별 수익성 비교와 특성을 파악하기 위함입니다. ..

SW/주가 예측 2019.07.05

주식, 비트코인 예측 : 시간 가치 감소 효과 : 개념, 원인, 이유, 상황

시간 가치 감소 효과 최근 알고리즘 트레이딩의 추세는 복잡한 고도의 수학적 모델보다는 비교적 단순한 모델을 많이 사용하고 있습니다. 왜 그럴까요? 바로 시간가치 감소 효과 때문입니다. 전 세계 누구도 하나의 알파 모델로 오랫동안 지속해서 수익을 낼 수 없습니다. 알파 모델을 만들어 일정 시간 동안 수익을 내기 시작합니다. 하지만, 수익성은 서서히 떨어집니다. 이처럼 시간이 지날 수록 처음에 가졌던 우위가 떨어져가는 것을 시간가치 감소효과라고 합니다. 시간 가치 감소효과는 왜 발생하게 되는 것일까요?그 이유는 알고리즘 트레이딩의 범람이라고 할 수 있습니다. 많은 사람들이 알고리즘 트레이딩을 통해 거래를 하고 있습니다. 이들이 사용하는 알고리즘 트레이딩은 그렇게 다양하지 않습니다. 수학적 이론과 모델들을 사..

SW/주가 예측 2019.07.04

주식, 비트코인 예측 : 머신러닝 분류 모델 : 개념, 종류, 특징

분류 모델분류는 회귀와 마찬가지로 입력 변수간의 상관 관계를 분석해 예측합니다. 결과값이 연속이 아닌 이산 값을 가진다는 것이 차이점입니다. 이에 따라 회귀와는 다른 방식으로 예측합니다. 분류에 사용되는 대표적인 알고리즘에 대해 알아보겠습니다. 로지스틱 회귀로지스틱 회귀는 이산변수 간의 상관관계를 나타내는 모델입니다. 0 또는 1의 이분형 결과를 가집니다. 로지스틱 회귀는 조건부 확률로부터 출발합니다. 입력 변수 값에 따른 출력 변수의 조건부 분포를 만듭니다. 그리고, 아웃풋은 정확도에 대한 확률로 생각할 수 있습니다. 그래프에서 알 수 있듯이, 아웃풋은 0부터 1사이입니다. 따라서 로지스틱 회귀에 필요한 함수는 확률 함수입니다. 그러므로 로지스틱 함수를 아웃풋 함수로 사용하면 값이 0부터 1사이에 위치..

SW/주가 예측 2019.07.04

주식, 비트코인 예측 : 머신러닝 모델 : 개념, 종류, 특징

머신러닝 모델머신 러닝 모델은 평균회귀 모델과 다르게 데이터로부터 시작합니다. 머신러닝은 데이터를 통해 무엇인가를 찾아야 합니다. 어느 경우에는 목표가 무엇인지 모르는 상태에서 진행해야 합니다. 그렇다면 어떻게 시작해야 할지 모호한 경우도 많습니다. 머신 러닝에 대한 잘못된 이해는 데이터만 넣어주면 알아서 산출물을 만들어줄 것이라는 믿음입니다. 어떤 데이터를 머신러닝에 제공하느냐에 따라 머신러닝의 결과는 매우 달라집니다. 머신 러닝에 사용할 데이터를 준비하는 것은 사용자가 직접 개입하는 분야입니다. 입력변수를 선택하고 이상치를 배제하고 빠진 데이터를 채워넣고 가공할 수 있기 떄문입니다. 머신러닝 모델을 만들 때 원시 데이터를 수집 한 후, 입력 데이터들을 살펴보아야 합니다. 적절한 입력 변수를 선택하면 ..

SW/주가 예측 2019.07.03

주식, 비트코인 예측 : 평균회귀 모델 : 구현 방법, 핵심 개념, 슈도코드

평균회귀 모델 구현 ADF 테스트, 허스트 지수, Half-life를 모두 통과한 종목을 찾으셨나요? 그렇다면 이제 평균 회귀 모델을 구현할 기본 조건은 충족한 것입니다. 평균회귀 모델의 핵심 개념은 무엇일까요? 바로 주가가 평균보다 낮으면 주식을 매입하고, 반대로 평균보다 높으면 주식을 매도해 수익을 만드는 것입니다. 평균 회귀 모델을 구현을 위해 필요한 3가지 사항 평균 정의 : 주가 매도, 매수의 비교치로 사용될 편균을 어떻게 구할 것인지 정의해야 합니다. 과거 특정 기간의 주가로 구할 수 있습니다. 또 이동 평균을 이용해 계산할 수 있습니다. 또 이동평균의 기간을 몇 일 단위로 할지도 결정해야 합니다. 이러한 평균은 매도, 매수를 알려주는 일종의 신호 역할을 하게 됩니다. 매도, 매수 기준 : 평..

SW/주가 예측 2019.07.03

주식, 비트코인 예측 : 평균회귀 모델 : 개념, 종류, 예제

평균회귀 모델 이 모델의 기본 가정 - 시계열 데이터는 과거의 평균값으로 회귀하려는 경향이 있습니다.- 어떤 변수가 정규 분포를 따른다고 가정합니다. 이러한 경우, 평균에 가까이 갈 확률이 높고, 반대로 멀어질수록, 확률이 낮아진다고 할 수 있습니다. 주가로 생각해보겠습니다. 만약 평균 주가보다 낮으면 다시 올라올 것이고, 평균 주가보다 높으면 다시 내려올 것이라고 가정하는 것이 평균회귀 모델의 특징입니다. 이러한 평균회귀 모델은 이해하기 쉬우며, 우리 주변에서도 어렵지 않게 활용하는 경우를 볼 수 있습니다. 하지만 실제 주가에 적용하기에는 주가 데이터는 랜덤워크로 무작위로 움직이는 경향이 있습니다. 따라서 단순하게 평균회귀 모델을 적용하기에는 큰 어려움이 있습니다. 평균 회귀 테스트평균 회귀 모델을 적..

SW/주가 예측 2019.07.02 (2)

주식, 비트코인 예측 : 알고리즘 트레이딩 : 모델 : 개념, 종류, 방식

알고리즘 트레이딩 모델 알고리즘 토이딩 모델은 주식의 가치를 평가합니다. 평가에 따라, 매수, 매도, 보유를 결정합니다. 그러므로 위험관리, 거래비용 관리, 포트폴리오 구성, 검증 등 알고리즘 트레이딩 시스템의 영역 중에서 주요한 위치를 차지하고 있습니다. 사실상 위험 관리, 포트폴리오 구성은 모델을 기반으로 전략을 형성합니다. 따라서, 알고리즘 트레이딩의 틀을 만드는 역할을 한다고 할 수 있습니다. 알고리즘 트레이딩에 사용되는 모델은 무엇이 있을까요?평균회귀, 일간 모멘텀, 추세추종, 인덱스 펀든 재분배 등 매우 다양하게 있습니다. 그리고 끊임없이 새로운 모델들이 개발되고 있습니다. 월등한 수익을 창출하는 모델을 보통 알파모델이라고 합니다. 시장 평균이나 비슷한 정도를 베타 모델이라고 합니다. 따라서 ..

SW/주가 예측 2019.07.02

주식, 비트 코인 예측 : 알고리즘 트레이딩 시스템 : 개념, 분석

알고리즘 트레이딩은 무엇일까요? 알고리즘 트레이딩은 수학적 계산과 IT 시스템을 활용해 금융 상품을 거래하는 것을 뜻합니다. 많은 금융회사에서 사용하고 있습니다. 심지어 개인들도 IT와 수학 지식을 활용해 사용하고 있습니다. 이제 미국의 경우 거래의 85%가 알고리즘 트레이딩에 의한 것이라는 통계가 있습니다. 그만큼 알고리즘 트레이딩의 사용은 빠르게 증가하였습니다. 새로운 이익 창출과 비용절감, 인건비를 줄이기 위해 IT 기술을 적극적으로 활용하고 있습니다. 그 중 대표가 바로 알고리즘 트레이딩입니다. 그 효과는 이익을 30% 정도 증가시킨다고 합니다. 따라서 앞으로 알고리즘 트레이딩과 IT 기술들은 더욱 확고한 입지를 다질 것이라 생각합니다. 수학적 모델이 사람이랑 비슷하거나 사람보다 좋은 결과를 가져..

SW/주가 예측 2019.07.01

시계열 데이터 : 자기상관, 상관도표 : 개념, 예제, 그리기

자기공분산공분산을 지난 포스팅에서 알아보았습니다. 공분산은 동일한 시간에서 2개 변수의 상관관계를 분석하는 것입니다. 그렇다면 자기 공분산은 무엇일까요? 자기공분산은 서로 다른 2개의 시간에 대한 변수 값의 공분산을 계산합니다. 자기 공분산 함수는 왜 구하는 것일까요? 자기공분산 함수는 시간에 따른 값들의 상관 관계가 어떻게 되는지 파악할 수 있습니다. 현재의 상관 관계가 증가 추세인지, 하향추세인지, 중립 상태인지 알 수 있습니다. 또한, 상관관계의 변화 폭이 얼마나 되는지도 알 수 있습니다. 따라서 자기공분산 함수는 시계열 데이터의 추세와 크기를 파악하는 데에 용이하게 활용할 수 있습니다. 자기상관상관은 지난 포스팅에서 알아 보았습니다. 자기상관은 무엇일까요? 자기상관은 시계열 변수의 시간에 따른 자..

SW/주가 예측 2019.07.01

시계열 데이터 : 랜덤워크란? : 개념, 분석

랜덤워크는 무엇일까요? 이전 행보와 독립적인 무작위 행보가 임의 방향으로 진행되는 경우를 뜻합니다. 이 개념은 이산 변수, 연속 변수에 모두 활용되는 개념입니다. 분자 운동, 주가의 움직임, 동전 던지기 등이 랜덤워크의 사례라고 할 수 있습니다. 이 랜덤워크의 개념은 다양한 분야에서 폭넓게 사용하고 있습니다. 또한, 랜덤워크를 금융 시계열 데이터 모델로 제안을 하였습니다. 그 뒤로, 많이 사용되기 시작하였고, 알고리즘 트레이딩 분야에서도 중요한 개념으로 자리를 잡았습니다. 따라서 파생된 다양한 이론과 방법이 생겨났습니다. 랜덤워크는 한 지점에서 다음 지점까지의 거리가 일정해 평균은 일정합니다. 그러나 방향성은 무작위로 결정됩니다. 따라서, 분산은 시간이 흐르면, 증가하는 모습을 보이는 특징이 있습니다. ..

SW/주가 예측 2019.06.30

시계열 데이터 : 상관 계수란? : 개념, 분석

상관은 2개 변수간에 어떤 선형적인 관계가 있는지를 분석하는 방법입니다. 2개 변수의 공분산을 정규화한 것으로, 변수 간의 상관관계의 정도를 상관계수로 나타냅니다. 상관관계는 다음과 같이 정의할 수 있습니다. 공분산과 달리 상관관계 값은 방향성과 함께 상관관계의 정도를 나타냅니다. 값이 1에 가까울수록 양의 강한 상관관계라 할 수 있습니다. -1에 가까울수록 음의 강한 상관관계를 의미합니다. 0인 경우에는 선형적으로 상관관계가 없다는 것입니다. 상관관계를 나타내는 상관 계수는 어떤 계수들이 있을까요? 대표적으로는 Kendal, Spearman, Pearson 등이 있습니다. 가장 많이 사용하는 계수는 바로 Pearson 상관 계수입니다. pandas 라이브러리를 사용하면 쉽게 상관 계수를 구할 수 있습니..

SW/주가 예측 2019.06.30

시계열 데이터 : 정상성이란? : 개념, 분석

정상 시계열 데이터란? 우선 정상성은 무엇일까요?평균과 분산 같은 통계적 특성이 시간에 대해 일정한 성질을 정상성이라고 합니다. 따라서 전에 포스팅 했던 랜덤과정을 기억하시나요? 정상성이 있는 랜덤 과정을 정상과정이라고 합니다. 정상 과정은 상당히 중요한 개념입니다. 우리가 살고 있는 세상을 이러한 데이터로 풀어낼 수 있어서 중요합니다. 정상 과정 시계열 데이터와 비정상과정 시계열 데이터를 알아보겠습니다. 우선 두 그래프 모두 증감을 반복합니다. 하지만 첫번째 그래프는 평균을 기준으로 움직이는 PATTERN이 보이시나요? DATA의 움직임 또한 일정 수준을 넘어가지 않고 있습니다. 두번째 그래프는 어떤가요? 평균값 중심이 아닌 것이 보이시나요? 변동 폭 역시 다양합니다. 연구할 데이터가 정상 시계열이라면..

SW/주가 예측 2019.06.29
반응형