机器学习与量化交易

本文介绍了如何使用Python的pandas,numpy,talib等库对BTC/USDT历史数据进行预处理,包括计算EMA,STDDEV,SLOPE等技术指标,然后利用Scikit-learn的SVC模型进行训练和预测,最后评估模型性能。
摘要由CSDN通过智能技术生成

导入模块

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)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值