2022년 1월 15일 토요일

TA-lib 설치하기 간단 사용기, python, talib, ta-lib

TA-Lib

TA-Lib은 금융 시장 데이터의 기술적 분석을 수행하는데 필요한 멀티플랫폼 라이브러리 입니다.


1. 공식 홈페이지

http://ta-lib.org/

https://mrjbq7.github.io/ta-lib/ Python wrapper


2. 설치 방법

python의 경우 pip로 설치가 되지 않습니다.


2.2 다른사람이 컴파일된 파일 사용

https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

자신의 python 버전과 같은 파일을 다운로드 해줍니다. 64bit는 amd64, 32bit는 win32

이것은 python을 실행시키면 어떤 python인지 나옵니다.

제가 사용하는 python은 64bit 3.8 입니다.

1
2
3
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^C

그래서 다음 파일을 다운로드 받았습니다. 

TA_Lib‑0.4.24‑cp38‑cp38‑win_amd64.whl

그리고 pip install <다운로드한 whl 파일> 을 적어줍니다.

pip install C:\Users\USER\Downloads\TA_Lib-0.4.24-cp38-cp38-win_amd64.whl
Processing c:\users\user\downloads\ta_lib-0.4.24-cp38-cp38-win_amd64.whl
Requirement already satisfied: numpy in c:\users\user\appdata\local\programs\python\python38\lib\site-packages (from TA-Lib==0.4.24) (1.19.5)
Installing collected packages: TA-Lib
Successfully installed TA-Lib-0.4.24



2.1 직접 컴파일하는 방법

2.1.1 컴파일러 설치

Windows라면 Visual Studio 를 설치해야합니다. 

링크가 새버전이 나오면 변경되는 경우가 많습니다. 무료 버전을 설치합니다.

https://visualstudio.microsoft.com/ko/downloads/ 여기에서 VC 설치합니다.

리눅스라면 g++ 컴파일러를 설치하면 됩니다.


2.1.2 소스 받기

소스는 https://ta-lib.org/hdr_dw.html 여기에서 받습니다.

Windows

Download ta-lib-0.4.0-msvc.zip and unzip to C:\ta-lib


Linux

Download ta-lib-0.4.0-src.tar.gz and:

$ untar and cd

$ ./configure --prefix=/usr

$ make

$ sudo make install

If you build TA-Lib using make -jX it will fail but that's OK! Simply rerun make -jX followed by [sudo] make install.


2.1.3 설치

pip install ta-lib


만약 2.1.2가 제대로 설치 안된 경우 오류 문구가 이렇습니다.

... 생략 ...

  _ta_lib.c

  talib/_ta_lib.c(680): fatal error C1083: Cannot open include file: 'ta_libc.h': No such file or directory

  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

  ----------------------------------------

  ERROR: Failed building wheel for ta-lib



3. 간단 테스트

이동 평균을 구하는 간단한 테스트 입니다.

1
2
3
4
5
6
import numpy
import talib

close = numpy.random.random(100)
output = talib.SMA(close)
print(output)

random이라 수치는 변하지만 앞쪽에 데이터가 nan 으로 나오는것으로 보아 정상적으로 출력되었습니다.

[       nan        nan        nan        nan        nan        nan
        nan        nan        nan        nan        nan        nan
        nan        nan        nan        nan        nan        nan
        nan        nan        nan        nan        nan        nan
        nan        nan        nan        nan        nan 0.54678791
 0.57007161 0.58258517 0.60569491 0.59433131 0.58889661 0.58745031
 0.60175934 0.60535614 0.63403022 0.60845597 0.60211001 0.57738737
 0.55490891 0.536957   0.54230833 0.52856405 0.52749476 0.50920791
 0.52008813 0.50787048 0.49562483 0.47569089 0.49272626 0.49750908
 0.49134292 0.50854827 0.51223004 0.50155896 0.48841843 0.50848775
 0.50470717 0.49691073 0.49896802 0.5006335  0.4930974  0.47837944
 0.47318858 0.477317   0.45739367 0.47636315 0.47304526 0.50062967
 0.51889451 0.52806633 0.5283228  0.55600092 0.55185113 0.55855475
 0.55284348 0.56611087 0.57569171 0.57796734 0.5687871  0.579755
 0.56692988 0.55129066 0.53231503 0.5189919  0.51302749 0.49365671
 0.49553806 0.47400186 0.45729707 0.44564002 0.44066557 0.43706963
 0.42651171 0.42860744 0.43217339 0.42055159]

만약 제대로 설치되지 않았다면 import 시 오류가 발생합니다.


4. 사용하기+

어떤 함수가 존재하는지와 어떤 인자를 넘겨야할지 모를때에는 https://mrjbq7.github.io/ta-lib/ 여기의 function groups 링크를 이용합니다.

Function Groups


MACD의 경우

https://mrjbq7.github.io/ta-lib/func_groups/momentum_indicators.html 여기에서 찾을 수 있습니다.

MACD - Moving Average Convergence/Divergence

macd, macdsignal, macdhist = MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)




댓글 없음:

댓글 쓰기