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 回测

注意:回测是为了保证数据的正确性。

量化 计算机 金融,金融数据量化分析(上)相关推荐

  1. 计算机书籍-医学图像数据可视化分析与处理

    书名:基于深度学习的医学图像数据可视化分析与处理 作者:强彦 出版社:科学出版社 出版时间:2019年01月

  2. CAMP的Python实现——金融大数据股票分析

    B站账号@狼群里的小杨,记得点赞收藏加关注,一键三连哦! 一. 实验目的 掌握CAMP相关概念 掌握量化选股方法 掌握 收益. 收益的计算 二. 实验内容 (1)根据输入数据,使用python 编程, ...

  3. 美国警方致命枪击案数据可视化分析 上

    import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.rea ...

  4. [计算机毕业设计]大数据疫情分析与可视化系统

    前言

  5. python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书

    如今Python语言的学习已经上升到了国家战略的层面上.Python语言是人工智能的基础语言,国家相关教育部门对于"人工智能普及"格外重视,不仅将Python列入到小学.中学和高中 ...

  6. python股票数据分析_如何使用Python进行股票的金融数据量化分析

    Python作为一门高ji语言是很好用的,语法简单,通俗易懂,非chang容易上手,丰富的第三方库支持使得开发速度快,相对于其他编程语言来说,初学者入门并不困难.它只是一门语言工具,zui终还是要将这 ...

  7. 阿里云Lindorm联合智臾科技发布,金融高频交易数据量化分析与处理方案

    简介:面向银行.保险.券商和私募的高频数据高性能一站式解决方案. 金融市场L1/L2的报价和交易数据是量化交易研究非常重要的数据,随着数字业务快速演进,具有时序特征的交易数据激增,对底层数据库和量化分 ...

  8. 中国量化金融行业 全解 金融工程 计算机 统计学 金融 专业领域 就业指南

    中国量化金融行业全解 金融工程 计算机 统计学 金融 专业领域 就业指南 https://blog.csdn.net/myquant/article/details/85683066 国内主要的金融机 ...

  9. 自己做量化交易软件(44)小白量化实战17--利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计

    自己做量化交易软件(44)小白量化实战17–利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计 小白量化平台是由若干小白金融模块构成.其中包含行情接收模块,仿通达信大智慧 ...

  10. Python金融股票和量化分析三方库汇总

    在公众号「python风控模型」里回复关键字:学习资料,免费领取. 这篇文章为定量金融(Quants Finance)收集一份完整的python第三方包列表. 数据源Data Sources yfin ...

最新文章

  1. java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)
  2. Android应用开发—TextView的动态创建
  3. 浅谈协同工作流的分布式应用
  4. boost的chrono模块单元测试的测试程序
  5. dm9000AE调试记录
  6. Express 项目结构最佳实践(上)
  7. android byte转string_高性能AES256对称加解密,兼容Java、IOS、Android
  8. vs2008添加注释宏(暂未成功设置)
  9. Kontakt 6 for Mac(强大的音频采样器软件)
  10. Xmind 8 Update 8 安装及补丁下载
  11. 一键拼接所有微信好友头像
  12. sublime linux 中文 版,Linux 下 Sublime Text 3 中文输入 (Debian 系通用)
  13. 软件调试高级研习班庐山秀峰站(2017-06)
  14. 一文说尽NB—IOT和Lora
  15. 黑猫带你学UFS协议第17篇:全网最全UFS RPMB LU详解(重放保护逻辑单元)
  16. java 多个PDF合成一个
  17. 心의 體는 仁禮義知 (韓長庚 易學原理總論)
  18. 比江小白杜蕾斯还要清新,这些文案,可能这就是青春吧!
  19. matlab安装及使用
  20. 笔记本损耗60 计算机提示,无需第三方软件,查看笔记本电脑电池损耗程度的方法...

热门文章

  1. LeetCode-SQL(八)
  2. 电大计算机应用基础word排版,电大计算机应用基础考试全部操作100题
  3. 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
  4. AppStore内收费软件和游戏破解方法--证实可行
  5. Go开发微信小程序第三方SDK
  6. 微信小程序使用nginx跳转第三方url
  7. “黑洞事件”持续发酵,视频版权保护又有哪些门道?
  8. nginx的安装和html部署问题
  9. Spark中如何使用矩阵运算间接实现i2i
  10. c语言字符串去重用指针,用几条shell命令快速去重10G数据