Ta-lib 这个库好多同学可能接触不多,Ta-lib 广泛用于交易软件,和金融市场数据进行技术分析,包含了炒股150+的数据指标:ADX, MACD, RSI, Stochastic, Bollinger Bands, etc,K线趋势识别,完全开源,支持 C/C++, Java, Perl, Python。
简单的说,这个库可以自动根据价格生成pattern与indicator。下面的代码是用Ta-lib生成的indicator去作为input放进naive-bayes中。为什么这里用naive-bayes模型而不是其他模型呢?第一、根据paper总结,naive-bayes在预测时间序列数据方面有莫名的优势,这优势背后逻辑目前还并不是很能解释。第二、数据量大,如果用SVM模型可能会直接会跑不动。这里用的数据是从wind下载的AUDUSD 日交易数据。
另外下载这个库的时候一般都会遇到报错,可以搜下其他博主发的解决方法,也很好解决的。
import pandas as pd
import talib
import sklearn
import numpy as n
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
data = pd.read_excel('audusd.xlsx')
def count(pattern,name):
b = []
for i in pattern:
if i == 100:
b.append(i)
print(name,':',len(b))
def count_patterns(data_A):
CDLHARAMI = talib.CDLHARAMI(data_A[:,1],data_A[:,2],data_A[:,3],data_A[:,0])
count(CDLHARAMI,'CDLHARAMI')