导入模块
import pandas as pd
import numpy as np
import time
import talib
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
import joblib
1.加载数据
data=pd.read_csv('..\\DT\\BTCUSDT-1577836800000.csv')
1.特征计算
data['ema'] = talib.EMA(data['close'].values, timeperiod=20)
data['stddev']= talib.STDDEV(data['close'].values, timeperiod=20, nbdev=1)
data['slope'] = talib.LINEARREG_SLOPE(data['close'].values, timeperiod=5)
data['rsi'] = talib.RSI(data['close'].values, timeperiod = 14)
data['wr'] = talib.WILLR(data['high'].values, data['low'].values, data['close'].values, timeperiod=7)
data['pct'] = data['close'].shift(-1) / data['close'] - 1.0
data['rise'] = data['pct'].apply(lambda x: 1 if x>0 else 0)
data = data.dropna()
3.协方差求解
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(16,16),dpi=1500)
yc=yc[['count','ema', 'stddev', 'slope',
'rsi', 'wr', 'pct', 'rise']]
x=yc.corr()
x[x<=0.7]=0.01
sns.heatmap(x)
4.数据集拆分
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
5.创建模型
classifier = SVC(C=1.0, kernel='rbf')
classifier.fit(X_train, y_train)
6.模型预测
y_train_pred = loaded_model .predict(feature_standardization)
7.模型评估
accuracy = accuracy_score(result, y_train_pred)