程序猿怎么利用技术挣钱?——python量化实践
时间:2022-07-26
本文章向大家介绍程序猿怎么利用技术挣钱?——python量化实践,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
阅前提醒:本文仅作技术交流,不做投资建议,投资有风险,入市须谨慎
1.什么是量化交易?
我们利用计算机技术,通过建模分析、优化参数等手段,从历史金融数据中挖掘出影响投资的指标,使用程序进行自动交易来获得“超额”的收益,这种投资方法就叫做量化交易。
现在,很多量化机构将人工智能和机器学习与量化策略相结合。国内的一些顶尖私募,比如:九坤、幻方、朱雀等都在使用AI量化策略,从各大公司的招聘公告上也可以看出这点。
2.分析展示
3.逻辑解读
4.代码展示
数据来源:Tushare金融大数据开放社区 运行准备:点击上方官网,注册tushare账户,获取token
获取数据
#导入库
import tushare as ts
import pandas as pd
import numpy as np
import time,random
pro = ts.pro_api(token='你自己的token')
# L上市 D退市 P暂停上市
# ts_code 股票代码 exchange 交易所 SSE上交所 SZSE 深交所
# list_date 上市日期 delist_date 退市日期
stock_L = pro.stock_basic(exchange='', list_status='L', fields='ts_code,exchange,list_date,delist_date')
stock_D = pro.stock_basic(exchange='', list_status='D', fields='ts_code,exchange,list_date,delist_date')
stock_P = pro.stock_basic(exchange='', list_status='P', fields='ts_code,exchange,list_date,delist_date')
#整合所有股票
data=pd.concat([stock_L,stock_D,stock_P],axis=0).reset_index(drop=True)
result = pd.DataFrame()
count=0
for ts_code in data.ts_code.tolist():
start_time=time.time()
df = pro.daily_basic(ts_code=ts_code, trade_date='', start_date='20060101',fields='ts_code,trade_date,pe')
result=pd.concat([result,df],axis=0).reset_index(drop=True)
count+=1
if count%200:
pass
else:
end_time=time.time()
tm=end_time-start_time
#限制60秒内最多请求200次
while tm<=60 :
time.sleep(60-tm+1)
end_time=time.time()
tm=end_time-start_time
print(count,"耗时 %s 秒"%tm)
#获取到的数据保存到本地,也可以存到数据库里持续更新
result.to_csv("PE监控.csv",index=False)
注意:做这个图的时候还是沿用原来的指数规则,2020/7/22上证指数进行了修正
可视化绘图
#导入库
import warnings
warnings.filterwarnings("ignore")
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
%matplotlib inline
#导入之前获取的数据
result=pd.read_csv("PE监控.csv")
#等权重处理
data=pd.pivot_table(result,values='pe',index='trade_date',aggfunc='mean')
#绘图
data.plot(figsize=(15,6),subplots=True)
- 用VSCode开发一个asp.net core 2.0+angular 5项目(4): Angular5全局错误处理
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(3)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- element-ui el-input只显示下划线
- 怎样去阅读源码,这篇文章值的你一读
- HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
- Mybatis 3 配置 Log4j
- 基于Three.js的360度全景--photo-sphere-viewer--简介
- MyBatis3-配置使用log4j输出日志
- nginx支持跨域访问
- nginx静态资源文件无法访问,403 forbidden错误
- vue.js如何在标签属性中插入变量参数
- SpringBoot解决ajax跨域问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法