量化 计算机 金融,金融数据量化分析(上)
1、量化分析基础
1、1 量化分析(量化投资)
利用计算机技术采用一定的数学模型(或者是机器学习模型)去实践投资理念,投资策略的过程。
随着计算机科技的发展,将已有的价值投资/趋势投资和计算机技术相融合,产生量化投资(量化分析)。
优势
(1)纪律性:严格执行投资策略,客户投资情绪的变化,认知偏差等。
(2)系统性:多层次、多角度观察海量数据,拓展更大的投资机会(根据多个特征值来进行相应的筛选相应的数据)。
(3)及时性:快速地跟踪市场的变化,寻找新的交易机会。(看股票的涨跌开多台电脑来进行观察)
(4)准确性:准确客观的评价交易机会,客户情绪偏差等。
(5)分散化:充当分散化投资的工具。挖掘历史规律,依靠筛选出股票组合来进行取得结果,而不是单个股票。
劣势
需要一定的技巧,包括编程能力、数学功底和金融知识等。
1、2 策略
指预先设定的事件或信号发生时,采取相应的交易动作。
1、3 量化策略
使用计算机作为工具,通过一套固定的逻辑来分析判断和决策。
即可以自动执行,也可以人工执行。
组成成分
1、4 机器学习和量化分析/交易
注意:
当用买卖档盘口建模(第一个)时,采用多个因子来进行选数据(多个特征值),还有可以通过买和卖的比例来进行相应的建模操作。
1、5 策略生命周期
回测验证对时间点的选取非常严格
2、量化策略建模流程即回测
2、1 量化策略建模步骤
建立训练集(用来进行跑模型用的)
(1)X:t时刻前的特征/因子
1.价格、价格衍生指标等
2.文本特征
(2)y:t时刻之前对应的标签
1、价格(如果是价格做标签的话,用回归模型来进行相应操作,价格是个连续值)
2、买卖交易(是一个离散值,可以用LR等分类器来进行)
建立验证集(可以有可以无),当选择的模型有超参数的时候,主要是用来调整超参数的。
建立测试集
(1)t时刻之后的特征/因子
建模
利用机器学习模型进行建模
# -*- coding: utf-8 -*-
"""
项目名称: 量化分析 -- 预测涨跌
"""
"""
项目名称: 量化分析 -- 预测涨跌
"""
from __future__ import print_function
import datetime
import numpy as np
import pandas as pd
import tushare as ts
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.svm import SVC
def create_lagged_series(symbol, start_date_str, end_date_str, lags=5):
"""
根据start_data, end_date创建symbol的收盘价的滞后序列
默认滞后期(时间窗口)为5天,symbol是股票代码
"""
date_str_fmt = '%Y-%m-%d'
start_date = datetime.datetime.strptime(start_date_str, date_str_fmt)
one_yr_before_start = start_date - datetime.timedelta(days=365)
one_yr_before_start_str = one_yr_before_start.strftime(date_str_fmt)
# 从TuShare获取数据
hist_data = ts.get_k_data(symbol, one_yr_before_start_str, end_date_str)
hist_data['date'] = pd.to_datetime(hist_data['date'])
hist_data.set_index('date', inplace=True)
# 创建存储滞后序列的DataFrame
hist_lag = pd.DataFrame(index=hist_data.index)
hist_lag['today'] = hist_data['close']#close为收盘价,某个股票的指数价格
hist_lag['volume'] = hist_data['volume']#volume为成交量
# 创建一个滞后序列
for i in range(0, lags):
hist_lag['lag{}'.format(str(i + 1))] = hist_data['close'].shift(i + 1)
# 创建收益率DataFrame
ret_df = pd.DataFrame(index=hist_lag.index)
ret_df['volume'] = hist_lag['volume']
ret_df['today'] = hist_lag['today'].pct_change() * 100.0#pct_change()函数主要是算出变化率(用今天的数据减去昨天的数据,再除以昨天的数据量)
# 如果绝对值小于0.0001,将其设置成0.0001
ret_df['today'] = ret_df['today'].apply(lambda x: 0.0001 if abs(x) < 0.0001 else x)
print(ret_df.head())
# 为收益率DataFrame创建对应的滞后序列
for i in range(0, lags):
ret_df['lag{}'.format(str(i + 1))] = \
hist_lag['lag{}'.format(str(i + 1))].pct_change() * 100.0
# 创建label列,用1, -1 标识涨/跌
ret_df['direction'] = np.sign(ret_df['today'])
ret_df = ret_df[ret_df.index >= start_date]
print(ret_df.head())
return ret_df
if __name__ == "__main__":
# 创建沪深300指数的滞后序列
lag_ret_df = create_lagged_series(
'hs300', '2010-01-01', '2015-12-31', lags=5
)
# 使用前两天的数据作为训练集
X = lag_ret_df[['lag1', 'lag2']]
y = lag_ret_df['direction']
# 测试数据分为两部分,2015-01-01之前和滞后
start_test = datetime.datetime(2015, 1, 1)
# 分割训练集和测试集
X_train = X[X.index < start_test]
X_test = X[X.index >= start_test]
y_train = y[y.index < start_test]
y_test = y[y.index >= start_test]
# 候选模型
print('准确率与混淆矩阵\n')
# 课后作业:请使用交叉验证的方式选择最优超参数以提高性能
models = [('逻辑回归', LogisticRegression()),
('支持向量机', SVC(C=1000000.0, cache_size=200, class_weight=None,
coef0=0.0, degree=3, gamma=0.0001, kernel='rbf',
max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False)),
('随机森林', RandomForestClassifier(n_estimators=1000, criterion='gini',
max_depth=None, min_samples_split=2,
min_samples_leaf=1, max_features='auto',
bootstrap=True, oob_score=False, n_jobs=1,
random_state=None, verbose=0))]
# 遍历所有模型
for model in models:
# 模型训练
model[1].fit(X_train, y_train)
# 预测
pred = model[1].predict(X_test)
print(pred)
# 输出准确率和混淆矩阵
print('{}:{:.2f}'.format(model[0], model[1].score(X_test, y_test)))
print('{}\n'.format(confusion_matrix(pred, y_test, labels=[-1, 1])))#混淆矩阵的行代表预测值(1和-1),列代表真实值(1和-1),列数据的和分别是1和-1的总数据值
2、2 常用的特征(要代码撩我)
2、3 回测
注意:回测是为了保证数据的正确性。
量化 计算机 金融,金融数据量化分析(上)相关推荐
- 计算机书籍-医学图像数据可视化分析与处理
书名:基于深度学习的医学图像数据可视化分析与处理 作者:强彦 出版社:科学出版社 出版时间:2019年01月
- CAMP的Python实现——金融大数据股票分析
B站账号@狼群里的小杨,记得点赞收藏加关注,一键三连哦! 一. 实验目的 掌握CAMP相关概念 掌握量化选股方法 掌握 收益. 收益的计算 二. 实验内容 (1)根据输入数据,使用python 编程, ...
- 美国警方致命枪击案数据可视化分析 上
import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.rea ...
- [计算机毕业设计]大数据疫情分析与可视化系统
前言
- python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书
如今Python语言的学习已经上升到了国家战略的层面上.Python语言是人工智能的基础语言,国家相关教育部门对于"人工智能普及"格外重视,不仅将Python列入到小学.中学和高中 ...
- python股票数据分析_如何使用Python进行股票的金融数据量化分析
Python作为一门高ji语言是很好用的,语法简单,通俗易懂,非chang容易上手,丰富的第三方库支持使得开发速度快,相对于其他编程语言来说,初学者入门并不困难.它只是一门语言工具,zui终还是要将这 ...
- 阿里云Lindorm联合智臾科技发布,金融高频交易数据量化分析与处理方案
简介:面向银行.保险.券商和私募的高频数据高性能一站式解决方案. 金融市场L1/L2的报价和交易数据是量化交易研究非常重要的数据,随着数字业务快速演进,具有时序特征的交易数据激增,对底层数据库和量化分 ...
- 中国量化金融行业 全解 金融工程 计算机 统计学 金融 专业领域 就业指南
中国量化金融行业全解 金融工程 计算机 统计学 金融 专业领域 就业指南 https://blog.csdn.net/myquant/article/details/85683066 国内主要的金融机 ...
- 自己做量化交易软件(44)小白量化实战17--利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计
自己做量化交易软件(44)小白量化实战17–利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计 小白量化平台是由若干小白金融模块构成.其中包含行情接收模块,仿通达信大智慧 ...
- Python金融股票和量化分析三方库汇总
在公众号「python风控模型」里回复关键字:学习资料,免费领取. 这篇文章为定量金融(Quants Finance)收集一份完整的python第三方包列表. 数据源Data Sources yfin ...
最新文章
- java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)
- Android应用开发—TextView的动态创建
- 浅谈协同工作流的分布式应用
- boost的chrono模块单元测试的测试程序
- dm9000AE调试记录
- Express 项目结构最佳实践(上)
- android byte转string_高性能AES256对称加解密,兼容Java、IOS、Android
- vs2008添加注释宏(暂未成功设置)
- Kontakt 6 for Mac(强大的音频采样器软件)
- Xmind 8 Update 8 安装及补丁下载
- 一键拼接所有微信好友头像
- sublime linux 中文 版,Linux 下 Sublime Text 3 中文输入 (Debian 系通用)
- 软件调试高级研习班庐山秀峰站(2017-06)
- 一文说尽NB—IOT和Lora
- 黑猫带你学UFS协议第17篇:全网最全UFS RPMB LU详解(重放保护逻辑单元)
- java 多个PDF合成一个
- 心의 體는 仁禮義知 (韓長庚 易學原理總論)
- 比江小白杜蕾斯还要清新,这些文案,可能这就是青春吧!
- matlab安装及使用
- 笔记本损耗60 计算机提示,无需第三方软件,查看笔记本电脑电池损耗程度的方法...