도메인/금융공학 23

첫번째 시뮬레이션 - 골드크로스의 실제 타당성 여부 검사

제대로된 자동매매프로그램을 만들기 전에, 실제 금융에 대한 논문을 쓰면서 주식시장이 실제로 어떻게 돌아가고 있나 살펴보기로 한다. 일단 계속해서 언급했던 것처럼 파이썬과 장고 프레이임워크 이용해서 프로그래밍을 했다. 파이썬을 이용한 이유는, 추후에 자동매매 프로그램을 개발할때 DLL혹은 COM 객체가 필요하며, 파이썬은 상당히 여러가지를 쫌맬수 있는 강점이 존재하기 때문이다. 개인적으로 스칼라로 프로그램을 구축하고 싶었으나, google이나 yahoo finance 정보를 쉽게 따올수 있는 걸 제공하는 파이썬의 학문관련 패키지가 굉장히 좋아보였기 때문이다. 전체적으로 파이썬의 강점은 쉽고 평범한 문법과 동적타입, 그리고 패키지 기능이 아닌가 싶다.그렇지만, 객체를 만드는 과정이 살짝은 지저분하기도 하고 ..

이동평균 데이터 분석하기

우리나라의 2000여개가 되는 데이터를 분석하기 위해서는 일단,Pyyhton + Django 에 DataFrame 자료형으로 데이터를 뽑아 보고, 그래픽으로 나타내보도록 하겠다. 여기서 분석할것은 과연 이동평균이 과연 설득력이 있고 통계적으로 적당한가? 이다. 예상으로는 40~60 %의 움직임을 보인다면 오차범위내에서 아무런 의미가 없다고 본다. 그리고, 코스피가 상승장이였나 하락장이였나에는 별개로 한가지의 통일성을 가져야 하는데, 위의 움직임을 보인다면 이 전략은 아무짝에도 쓸모가 없는것이다. 무슨 보조지표와 함께 써야한다는 비겁한 변명을 해대는데, 사실 이동평균선이 그다지 쓸모가 없음이 드러나면 보조지표고 뭐고 이걸로 전략을 결정하는것은 카지노에 가서 홀짝 게임을 하는것과 하나도 다름이 없다. 일단은..

Python Data 다루기

일단 주식을 긁어온다. 삼성전자 주식이다. import pandas.io.data as web import datetime beg = datetime.datetime(2014,1,1) end = datetime.datetime(2014,12,31) data = web.DataReader("005930.KS","yahoo",beg,end) import pandas as panda data['mean5'] = panda.stats.moments.rolling_mean(data['Adj Close'], 5) data['mean20'] = panda.stats.moments.rolling_mean(data['Adj Close'], 20) 5일단기와 20일단기의 차이를 구하는 공식이다. data['diff'] =..

파이썬 시작, Xing API 이용하기 (7) - Xing API

자 이제 지금까지 달려오는데 약 두세시간이 걸렸다. 생각해보면 주말동안 꼬박하기는 했는데 약속이고 봉사활동이고 뭐고 할게 많아서 어쩔수 없이 이렇게 되었던것 같다. 다른 기타 활동을 하지만 않으면 분명히 많은 일을 할수있는것을 사실이다. 어쨌든 주말을 장식할 마지막 기술적인 연구를 해보고, 인형이나 만들러 가야겠다. 일단 개발을 시작하기 위한 모든 코드는 아래와 같다. 조심해야 할것은 다음과 같다.저 import가 잘 안되는 경우가 생기는데, 이는 파이썬 버전이 여러개일 경우 문제가 생긴다. 특히 일반 파이썬을 가지고 IDEL을 가지고 놀다가 아나콘다와 같은 툴을 또 깔았을 경우 이용가능한 파이썬 버전이 두개가 되는데, 이러한 경우, Properties에서 사용가능한 파이썬을 조정해줘야한다. 아나콘다가 ..

파이썬 시작, Xing API 이용하기 (6) - matplotlib

시간을 쪼개서 연구를 해야할 토요일을 봉사활동이란 걸로 알차게(?) 보냈기 때문에 일요일에는 약 한시간정도의 여유시간이 생겼다. 이정도의 여유시간밖에 나지 않았다는것에 슬픔을 느끼며, 마지막 한시간을 알차게 보내고 싶다.이러한 맥락에서 주식전략과 나머지 API에 대해 짚어보는 시간을 보내고 싶다.일단, IPython을 틀어서 판다를 import해야겠다. 아나콘다를 설치해놨으므로 아주 쉽다. import pandas as pdimport datetimeimport pandas.io.data as web 자 실제로 데이터를 그릴때는 plot을 이용한다고 한다. import matplotlib.pyplot as pltplt.plot([1,2,3,4], [1,2,3,4], 'bo', [1,2,3,4], [1, ..

파이썬 시작, Xing API 이용하기 (5) - 데이터 리드

이것을 실행해보기 전에 나는 신이 났다. 왜냐면, 주식가격을 그냥 냅다 가져올수 있기 때문이다. 네이버 금융에서 몰래 퍼다쓰는 주식가격같은 짓은 하지 않아도 된다. 나는 지금 이것을 해보지 않았지만 이게 된다면.. 지연시세인지는 모르겠지만 어쨌든 해본다. 일단은 주식가격등을 웹에서 바로 연동해서 가져올수 있는 기능이라고 한다. 한국 KOSPI도 되느냐? 그냥 다 된다고 말하고 있다. 그렇다면 orakgarak.co.kr 여기를 구축하기 위해 했던 수많은 파싱작업들은 뭐지.. 헛수고라는 것이다. 일단 다음과 같이 모듈을 가져온다. import pandas.io.data as webimport datetime 와 너무 쉽다. 이제 주식가격을 긁어올수 있는건가? beg = datetime.datetime(20..

파이썬 시작, Xing API 이용하기 (4) - 판다스 콜렉션

아침에 일어나서 약 한시간동안 시간이 생겼다. 일단 어제 하던 파이썬을 조금더 진행할까보다. 일단 두시간 째 일단 이름부터 요상한 아나콘다를 깔아야 한다고 한다. 아나콘다는 여러가지 프로그램을 동시에 제공해주기 때문에 굳이 의존성관리를 해주지 않아도 되는 큰 장점이 있다고 배웠다. 좋다. 그렇다면 이제 제대로 데이터를 받아보고 실행시켜보자. 앞에서 잠시 언급했던 QtConsole로 여러가지 데이터를 마치 리눅스처럼 제어할수 있다고 했다. 그렇다. 위와같은 화면이 보인다. 일단 뭔가 깔끔해 보이기는 한다. 이제, 판다스의 자료구조, 즉 콜렉션 API가 또 있나보다. 이건 주식을 분석할때 쉽게 쓸수가 있으므로 상당히 유용할듯한 느낌이다. from pandas import Series, DataFrame 자 ..

파이썬 시작, Xing API 이용하기 (3)

이제 파이썬을 시작한지 1시간 남짓이 되었다. 대충 어떤 개념인지, 어떠한 철학을 가지고 있는지는 익혔다. 제일 특이한것은 들여쓰기가 괄호와 같이 작동한다는것이고 ..(어떻게 보면 신박하고 어떻게 보면 위험할지도) self가 존재해서 객체 만들기에 좀 귀찮다는 것이다. 이제 shell을 통해 한줄한줄 실행해 보는것에는 조금 한계가 있다. 사실 shell은 결과를 바로 보기에는 좋지만, 프로그래밍은 불가능하다. 같은 맥락에서 IDLE편집기도 사실 컴파일에러를 잡아주거나 자동완성을 이용할수 없기 때문에 패스한다. 이제 갈림길에 온듯하다. IDE를 선택하는 것이다. 비쥬얼 스튜디오를 이용할수 있는듯 하고, PyCharm이라는 오픈소스 개발툴도 있는듯하다. 스크린샷을 보아하니 이클립스를 변형시킨듯 보이기도 하고..

파이썬 시작, Xing API 이용하기 (2)

일단 여기서부터는 이것저것 하면서 한시간이 걸렸다. 11시까지는 아마 Xing API 를 구동하고 로그인을 해볼수 있을 듯하다. 이번에 봐볼 기능은 함수와 클래스이다. 뭐 별거 있겠나 함수 >>> def function() : print('this is a function') >>> function() this is a function >>> 어려울것 없어 보인다. >>> def function(n) : print('this' + n) >>> function(2) Traceback (most recent call last): File "", line 1, in function(2) File "", line 2, in function print('this' + n) TypeError: Can't conve..

파이썬 시작, Xing API 이용하기 (1)

음 일단, COM객체가 자바계열 언어에서 사용하기 어렵기 때문에, 할수없이 한글로 친절하게 설명이 되어있는 파이썬을 이용해서 프로그래밍을 빠르게 해보기로 했다. 워낙 루비나 파이썬은 접근성과 속성교육이 가능한 언어라고 다가오기 때문에 어쨌든 일단은 파이썬을 이용해서 필요한 부분을 익히고, 속도 면에서 불리할 경우 C++ 를 이용해보고 이도저도 코딩이 재미가 없으면 스칼라를 이용해서 구축해 보기로 한다. 물론 파이썬도 굉장히 좋은 언어라고 느껴지고, Django만큼 쉽게 설치가 가능했던 프레임워크도 없던것으로 기억한다. https://wikidocs.net/762 일단 요기서 파이썬설치는 쉽게 할수 있다. 나의 블로그를 보는 사람은 별로 없지만 어쨌든 본인의 주종은 자바다. 파이썬이 굉장히 쉽고 직관적이라..