반응형

전체 글 2432

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

알고리즘 트레이딩은 무엇일까요? 알고리즘 트레이딩은 수학적 계산과 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

주식, 비트 코인 예측 : 랜덤 과정이란? : 개념, 분석

랜덤과정이란? 확률변수가 시간의 흐름에 따라 변화한 값들을 의미합니다. 그렇다면 확률 변수는 무엇일까요? 확률변수는 특정한 값이나 일정한 Pattern이 나타나지 않습니다. 즉, 랜덤 과정을 시간의 흐름에 따르는 확률 분포라고 생각할 수 있습니다. 랜덤 과정의 반대말은 무엇일까요?바로 결정적 과정입니다. 단어가 뜻하는 것은 모든 것이 결정되어 있다는 것입니다. 결정적 과정은 시간의 흐름에 따라 일정한 값을 갖습니다. 그러나 랜덤 과정은 무작위로 결정되는 것입니다. 시간의 흐름에 따라 값의 변화가 일정하지 않다는 것입니다. 랜덤 과정은 결국 임의과정이라도 표현합니다. 결국, 일정한 패턴이 없이 움직이는 것들을 뜻합니다. 대표적으로, 주가, 환율, 비트코인 등이 대표적인 사례라고도 할 수 있습니다. 따라서,..

SW/주가 예측 2019.06.29

시계열 데이터 : 특성, 특징, 개념, 중요한 점

시계열 데이터의 특성 핸들링 하려는 데이터가 어떤 시계열적 특성이 있는지를 아는 것은 매우 중요합니다. 이미 많은 모델이 연구되어 있습니다. 그리고, 끊임없이 연구가 되고 있으므로, 시계열 데이터의 특성을 명확히 알 수 있다면, 좋은 모델을 적용해 좋은 성과를 얻을 수 있습니다. 주요 특성들 Abrupt Change : 데이터가 가파른 변동을 보이는지 Outliers : 다른 값들과 동떨어진 Outlier가 관측되는지 Trend : 측정 값이 시간의 흐름 에 따라 증감, 반복을 하는 일정한 Pattern, 경향이 있는지 Seasonality : 일, 월, 년, 계절 등 일정 시간에 따라 지속해서 반복되는 Pattern이 있는지 Constant Variance : 측정값이 일정한 수준 이내로 변동되는지, ..

SW/주가 예측 2019.06.28

주식, 비트코인 예측 프로그램 : 필요 기능, 구현 계획, 개발 방향

구현 시스템 개요 평균 회귀 모델로 구현을 하는 경우 평균 회귀 모델은 여러 종목 중 정상과정의 특성이 있는 종목을 찾아야 합니다. 그리고 이 종목들에 평균회귀 모델을 적용하는 것이 중요합니다. 따라서 정상과정의 특성이 있는 주식 종목을 찾는 기술이 핵심입니다. 머신 러닝 모델로 구현을 하는 경우머신러닝 학습 후에 학습의 품질 정도를 나나태는 점수를 이용해야 합니다. 일정한 기준점을 가지고 판별하는 방식을 사용해야 합니다. 추가 기능기본적으로 주가 관련 데이터가 있어야 구현 가능합니다. 따라서 추가적으로 필요한 주가 데이터를 다운로드하고 데이터베이스에 저장하는 기능이 필요합니다. 기존 데이터로 알고리즘 트레이딩에 사용할 주식을 선정해야 합니다. 그리고 과거 데이터에 적용해 어느 정도의 성능을 보여주는 판..

SW/주가 예측 2019.06.28

주식, 비트 코인 예측 : 알고리즘 트레이딩 시스템 SW 구성

일반적인 알고리즘 트레이딩 시스템 구성 수익 창출을 목적으로 사용하는 알고리즘 트레이딩의 실제 구성은 어떨까요?일반적으로 많이 사용하는 알고리즘 트레이딩 시스템의 기능과 구성도를 알아보겠습니다. 알파 모델 |리스크 모델 - 포트폴리오 모델 - 실행 |거래비용 모델 이 구성도는 알고리즘 트레이딩에 직접적으로 연관된 것들만 표현된 것입니다. 따라서 백테스터나 데이터 저장을 위한 부분들은 생략되었습니다. 알파 모델 : 주가나 주가 방향등을 예측하기 위한 모델입니다. 여러개의 모델이 사용될 수 도 있습니다. 리스크 모델 : 거래 했을 때 예측이 틀린 경우, 손실을 보는지, 손실 발생 확률은 어떤지 등, 위험도를 측정하는 모델입니다. 거래 비용 모델 : 실제 거래하면 그에 따른 수수ㅛㄹ나 세금 등의 비용이 발생합..

SW/주가 예측 2019.06.27

주식, 비트 코인 예측 : 시계열 데이터 분석 : 개념, 목표, 정의

시계열 데이터 분석이란?시계열 데이터의 패턴을 파악하거나 패턴에 영향을 미치는 요소를 찾는 것을 뜻합니다. 주식 예측이 목표인 알고리즘 트레이딩도 그 중 하나라고 할 수 있습니다. 앞으로 구현해 나갈 프로젝트인 알고리즘 트레이딩도 이 시계열 데이터 모델이 적용될 것 입니다. 시계열 데이터 분석의 대표적인 목표는 아래와 같습니다. - 시게열 데이터 패턴에 영향을 미치는 요소를 찾기- 과거의 데이터가 어떻게 미래의 데이터에 영향을 미치는지 분석- 미래의 데이터를 예측 결국 최종 목표는 미래의 데이터를 예측해서 맞추는 것이라고 할 수 있습니다. 과연 미래 데이터를 예측하려면 어떻게 해야할까요? 바로 시계열 데이터가 변화하는 패턴을 찾아야 합니다. 그리고, 발견된 패턴에 영향을 주는 피쳐를 추출해야 합니다. 또..

SW/주가 예측 2019.06.27

인공지능 : CNN(Convolutional Neural Networks) 개념, 예제, 분석

이 글에서는 CNN(Convolutional Neural Networks)을 탐구하고, 높은 수준에서 그것들이 어떻게 두뇌의 구조에서 영감을 얻는지 살펴보기로 하겠습니다. The Brain우리는 끊임없이 주변의 세계를 분석합니다. 의식적인 노력 없이, 우리는 우리가 보는 모든 것에 대해 예측을 하고, 그것에 따라 행동합니다. 우리가 어떤 것을 볼 때, 과거에 배운 것을 바탕으로 모든 대상에 라벨을 붙입니다. 여러분은 아마 "저 아이는 의자 위에 서 있는 행복한 소년이다."라고 생각할 수 있습니다. 아니면 비명을 지른다고 생각할 수 있습니다. 또는 케이크를 망치려는 것으로 볼 수 있습니다. 이것이 우리가 하루 종일 아낌없이 하는 것입니다. 우리는 패턴을 보고, 라벨을 붙이고, 예측하고, 인지합니다. 하지만..

SW/인공지능 2019.06.26

python, 통계 : 공분산 개념, 예제

공분산이란? 공분산은 2개 변수의 상관 정도를 나타내는 값입니다.보통 Cov(x,y) 로 표기를 합니다.2개 변수의 방향성을 파악할 때, 보통 사용합니다. 공분산 값이 0보다 크다면, x가 커지면, y도 커집니다.반대로 0보다 작다면, x가 커지면, y는 작아집니다.0에 가깝다면, 선형 관계가 없다고 할 수 있습니다. panas를 이용해 만도의 종가와 모비스 종가의 공분산 값을 구해보겠습니다. import pandas as pdimport pandas_datareader.data as webimport datetimeimport matplotlib.pyplot as pltfrom pandas.plotting import scatter_matrix # file_name 다운로드한 주가 데이터를 저장할 파일..

SW/주가 예측 2019.06.26

주식 예측 프로그램 : 시계열 데이터 개념, 뜻

시계열 데이터란? 시계열 데이터는 순서를 갖는 데이터를 의미합니다. 즉, 일정한 시간 간격을 측정되거나, 순서가 존재하는 데이터인 것입니다. 이것은 결국, 시간의 흐름에 따라 값이 변하는 데이터라 할 수 있습니다. 예를 들면 어떤 것이 있을까요? 온도 정보, 주가 정보, 환율 정보 등등이 그 예라 할 수 있습니다. 시계열 데이터는 시간의 흐름이 존재합니다. 그리고 그 흐름에 따라 변수가 변화합니다. 이 변화를 보여주는 것을 통해, 데이터에 순서가 있고, 그 값이 끊임없이 변해갑니다. 즉, 시계열 데이터가 시간이라는 독립 변수에 의해 영향을 받고, 종속변수와의 관계를 나타내는 것이라 할 수 있습니다. 시계열 데이터가 아닌 데이터를 처리하는 경우를 생각해 봅시다. 이경우에는 데이터의 순서를 변형하거나 필요에..

SW/주가 예측 2019.06.25

python : 주식 데이터 파싱, 저장, 받아오기 : 예제

주식데이터를 받아오는 방법은 다양합니다. 그 중에 파이썬을 활용하여 해당 종목에 데이터를 받아오고, 저장하는 방법에 대해 알아보겠습니다. import pandas as pdimport pandas_datareader.data as webimport datetimeimport matplotlib.pyplot as pltfrom pandas.plotting import scatter_matrix # file_name 다운로드한 주가 데이터를 저장할 파일 이름# company_code 종목 코드# year1/month1/date1 데이터를 다운로드할 시작일# year2/month2/date2 데이터를 다운로드할 마감일def download_stock_data(file_name, company_code, yea..

SW/주가 예측 2019.06.25

python : 텐서플로우 : feedfoward, node, optimizer 변경 결과 비교

MNIST 숫자 인식 - hidden layer 수: 3 - 각 hidden layer의 node 수: 64, 64, 64- activation: ReLU- optimizer: SGD (learning rate=0.001)- weight initialization: Xavier- batch size: 200(가) (10점) Tensorflow를 사용하여 위에 주어진 feed-forward 네트워크 구조를 구현하여 50 epoch 동 안 학습한 후, training data와 validation data의 training curve를 그리시오. (Hint: 수업 자료 마지 막 실험) (나) (10점) 모든 hidden layer의 node 수를 512로 변환한 후, (가)와 동일한 실험을 진행하고 그 결과..

SW/Python 2019.06.24

파이썬 : wav 파일 읽고 재생, 그래프, 샘플레이트, 시간 구하기

음성 처리 기본 (가) (5점) Scipy.io 에 포함된 wavfile 함수를 사용해서 주어진 ‘q2.wav’ 음성 파일을 읽고, 이를 스피 커로 출력, 그리고 MatplotLib를 사용하여 화면에 파형을 그리는 python code를 작성하시오. (나) (10점) 음성 신호의 샘플링 주파수를 구하고, 그 의미에 대해 간단히 설명하시오. (다) (10점) 음성 신호의 전체 샘플 수로부터 물리적인 총 시간 (sec)이 얼마인지 구하시오 import numpy as npimport scipy.io as sioimport scipy.io.wavfileimport matplotlib.pyplot as plt import sounddevice as sd # 3-가samplerate, data = sio.wavf..

SW/Python 2019.06.24

파이썬 : 영상 처리 : 이미지 읽기, RGB 최대값, 평균값, 교환

영상 처리 기본(가) (5점) MatplotLib에 포함된 imread 함수를 사용하여 주어진 ‘q1.png’ 영상 파일을 읽고, 이를 화 면에 display하는 python code를 작성하시오.(나) (10점) 영상 파일은 Red, Green, Blue의 세 가지 색으로 구성되어 있다. (가)에서 읽은 데이터로 부터 R, G, B 값의 최댓값 (R_max, G_max, B_max)과 평균값 (R_avg, G_avg, B_avg)을 구하시 오.(다) (10점) (가)에서 읽은 영상 데이터의 각 픽셀 값의 컬러를 다음과 같이 바꾸어 화면에 display 하시오. (R → G, G → B, B → R) import matplotlib.pyplot as pltimport matplotlib.image as ..

SW/Python 2019.06.23

파이썬 : 포커 카드 게임 구현 개발

카드 포커 게임 (가) (10점) 다음 python code를 실행하고, 각 function에 대해 자세히 설명하시오.(나) (15점) 포커 랭킹 (Royal Flush, Straight Flush, Four of a Kind, Full House, Flush, Straight, Three of a Kind, Two Pair, One Pair, High Card)을 참조해서 주어진 5장의 카드가 어떤 랭킹인지 구분하는 함수 ‘ranking()’ 코드를 추가하시오. (단, 모든 랭킹을 구분할 필요는 없 고, 위에 주어진 랭킹 중, 최소 3개에 대해서 구현해도 됨.) import random # ranking을 알려주고 리턴함def ranking(Player): if isFlush(Player.hand) i..

SW/Python 2019.06.23

C++ : 프로그래머스 : 짝수와 홀수 : 풀이

문제 풀이 #include #include using namespace std; string solution(int num) { string answer = ""; if( num%2 == 0 ) answer += "Even"; else answer += "Odd"; return answer;} 실행 결과정확성 테스트테스트 1 〉통과 (0.00ms, 3.72MB)테스트 2 〉통과 (0.00ms, 3.69MB)테스트 3 〉통과 (0.01ms, 3.76MB)테스트 4 〉통과 (0.00ms, 3.88MB)테스트 5 〉통과 (0.00ms, 3.8MB)테스트 6 〉통과 (0.00ms, 3.8MB)테스트 7 〉통과 (0.01ms, 3.74MB)테스트 8 〉통과 (0.00ms, 3.81MB)테스트 9 〉통과 (0.00..

SW/알고리즘 2019.06.22

Nvidia : 보다 개방적인 미래로 나아가다

강력한 연구개발(R&A) 역사는 독일 프랑크푸르트에서 열린 국제 슈퍼컴퓨팅 콘퍼런스에서 발표된 엔비디아 이사회의 중요성을 강조하고 있습니다. 이 회사는 ARM 방식의 고성능 컴퓨터에 사용할 수 있는 슈퍼컴퓨팅 하드웨어와 소프트웨어를 모두 갖추고 있으며, 2019년 말까지 이 프로젝트를 완료할 수 있을 것으로 기대하고 있습니다. 로이터 통신과의 인터뷰에서 이안 벅 가속 컴퓨팅의 Nvidia 부사장은 이러한 움직임을 기술적으로 유럽과 일본의 HPC 연구원들이 요청한 "Heavy Lift"라고 설명했습니다. 대부분의 사람들은 ARM을 스마트폰, 태블릿, 라즈베리 파이와 같은 새로운 장치에 사용되는 기존의 x86-64 빌드에 비해 상대적으로 낮은 성능의 전력 효율의 ARM을 가장 잘 알고 있습니다. 처음에, 이..

일상/IT 2019.06.22
반응형