怎么用python股票计算股票

http://tushare.waditu.com/index.html
为什么是Python?
就跟javascript在web领域无可撼动的地位一样,Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现。我们拿上一篇文章的图再来看看,在量化投资(证券和比特币)开源项目里,全球star数排名前10位里面,有7个是Python实现的。从数据获取到策略回测再到交易,覆盖了整个业务链。
而全球注册用户数最多的商业量化平台Uqer优矿,也同样是基于Python实现和提供服务的。国内后来的其他量化平台,例如ricequant和joinquant,也主推Python环境。可见Python在量化平台应用的绝对占有程度。
Python是一门比较全面与平衡的语言,既能满足包括web在内的系统应用的开发,又能满足数据统计分析等数学领域的计算需求,同时也能作为胶水语言跟其它开发语言互通融合。在数据分析方面,没有其他语言能像Python这样既能精于计算又能保持性能,对于时间序列数据的处理展现了简单便捷的优势。而如此适用的特点,主要得益于有如下框架和工具的支持:Numpy:底层基于C实现的科学计算包
具有强大的N维数组对象Array
具有数据广播功能的函数库
具有完整的线性代数和随机数生成函数
SciPy:开源算法和数学工具包
最优化线性代数、积分、插值、特殊函数
快速傅里叶变换
信号处理和图像处理
常微分方程求解
其他科学与工程中常用的计算
其功能与Matlab和Scilab等类似Pandas:起源于AQR的数据处理包,具有金融数据分析基因
基于Series、DataFrame和Pannel多维表结构数据
数据自动对齐功能
数据清洗和计算功能
时间序列数据快速处理功能
Matplotlib:基于Python的数据绘图包,能够绘制出各类丰富的图形和报表另外,Python在机器学习领域的应用也越来越多,其中的开源的项目包括了scikit-learn、Theano、Orange等。
金融领域主要的Python书籍:
《Python for Data Analysis》《Python for Finance》
《Mastering Python for Finance》
《Maching Learning in Action》
阅读(...) 评论()Python week之用python做股票分析
内容不能少于5个字符!
Peixun.net
Python week之用python做股票分析
请认真填写以下信息,方便为您服务
您还可以选择
更方便您管理课程。
Peixun.net
Python week之用python做股票分析
的报名信息已经提交成功。
您可以选择
更方便您管理课程。
& 2018 Peixun.net 北京国富如荷网络科技有限公司 版权所有 未经许可 请勿转载 京ICP备号-4
扫描右侧二维码
下载 Peixun.net
随时随地 学更专业的
获取验证码
其他方式登录
邮箱找回密码
发送认证邮件
邮件已发送!
已成功发送邮件到您注册的邮箱
请前往查询并点击链接重置密码
获取验证码
有待解答的问题
3 名学员对您的课程提问,需要您作出回答。主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
CSDN &《程序员》研发主编,投稿&纠错等事宜请致邮
你只管努力,剩下的交给时光!
如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。个人网站:www.xttblog.com。个人QQ群:、
个人大数据技术博客:http://www.iteblog.com
本篇文章是"Python股市数据分析"两部曲中的第一部分,主要介绍金融数据分析的背景以及移动均线等方面的内容。用 Python 写了个简单的股票量化交易框架
21:59:40 +08:00 · 9504 次点击
因为行情的获取用到了 async / await 所以暂时只支持 Python3.5+
支持 佣金宝 和 华泰 两家券商的自动登录和买卖。
使用的是新浪的免费行情,大概一秒钟推送一次 所有的 3000 多只股票的实时数据。
也可以自己引入 tushare 这个免费的财经信息获取包
其中的事件驱动引擎 和 策略模板 是模仿的 vnpy 的框架
运行之后基本是下面这样
启动主引擎
[ 14:05:36.649599] INFO: main_engine.py: 加载策略: 策略 1_Demo
[ 14:05:36.650250] INFO: main_engine.py: 加载策略: 策略 2_Demo
[ 14:05:36.650713] INFO: main_engine.py: 加载策略完毕
触发每秒定时计时器
策略 1 触发
行情数据: 万科价格:
{'ask4': 0.0, 'ask1': 0.0, 'bid2_volume': 0, 'bid3': 0.0, 'bid5_volume': 0, 'name': '万
科A', 'ask4_volume': 0, 'close': 24.43, 'volume': 0.0, 'ask3_volume': 0, 'bid5': 0.0, 'bid1': 0.0, 'ask2': 0.0, 'bid4_volume': 0, 'high': 0.0, 'ask5': 0.0, 'bid4': 0.0, 'ask5_volume': 0, 'turnover': 0, 'ask2_volume': 0, 'sell': 0.0, 'open': 0.0, 'bid3_volume': 0, 'bid2': 0.0, 'bid1_volume': 0, 'buy': 0.0, 'ask3': 0.0, 'low': 0.0, 'now': 0.0, 'ask1_volume': 0}
[{'asset_balance': 2758.98, 'market_value': 2740.9, 'enable_balance': 18.08, 'current_balance': 18.08, 'money_name': '人民币', 'fetch_balance': 18.08, 'money_type': '0'}]
策略 2 触发
行情数据: 华宝油气 {'ask4': 0.5, 'ask1': 0.497, 'bid2_volume': 4594100, 'bid3': 0.494, 'bid5_volume': 851300, 'name': '华宝油气', 'ask4_volume': , 'close': 0.5, 'volume': 9, 'ask3_volume': , 'bid5': 0.492, 'bid1': 0.496, 'ask2': 0.498, 'bid4_volume': 313700, 'high': 0.501, 'ask5': 0.501, 'bid4': 0.493, 'ask5_volume': , 'turnover': , 'ask2_volume': , 'sell': 0.497, 'open': 0.5, 'bid3_volume': 997500, 'bid2': 0.495, 'bid1_volume': 5507952, 'buy': 0.496, 'ask3': 0.499, 'low': 0.495, 'now': 0.497, 'ask1_volume': }
[{'asset_balance': 2758.98, 'market_value': 2740.9, 'enable_balance': 18.08, 'current_balance': 18.08, 'money_name': '人民币', 'fetch_balance': 18.08, 'money_type': '0'}]
第 1 条附言 &·&
23:21:42 +08:00
策略编写非常简单,因为功能比较有限。可以查看下面的 策略_Demo1
# 引入策略模板
from easyquant import StrategyTemplate
class Strategy(StrategyTemplate):
# 主要实现下面这个 `strategy` 函数就可以了
def strategy(self, event):
&&&:param event event.data 为所有股票的信息,结构如下
{'ask1': '0.493',
'ask1_volume': '75500',
'ask2': '0.494',
'ask2_volume': ';,
'ask3': '0.495',
'ask3_volume': ';,
'ask4': '0.496',
'ask4_volume': ';,
'ask5': '0.497',
'ask5_volume': ';,
'bid1': '0.492',
'bid1_volume': ';,
'bid2': '0.491',
'bid2_volume': ';,
'bid3': '0.490',
'bid3_volume': ';,
'bid4': '0.489',
'bid4_volume': ';,
'bid5': '0.488',
'bid5_volume': ';,
'buy': '0.492',
'close': '0.499',
'high': '0.494',
'low': '0.489',
'name': '华宝油气',
'now': '0.493',
'open': '0.490',
'sell': '0.493',
'turnover': '',
'volume': '1'}}
# 使用 self.user 来操作账户,使用 self.user.buy() / self.user.sell() 来买卖,用法同 easytrader 用法
# 使用 self.log.info('message') 来打印你所需要的 log
print('策略 1 触发')
print('行情数据: 万科价格: ', event.data[';])
print('检查持仓')
print(self.user.balance)
23 回复 &| &直到
23:03:32 +08:00
& & 23:55:02 +08:00 via iPhone
& & 23:59:00 +08:00
请叫我雷锋,
& & 00:02:27 +08:00
始终不理解量化交易赚钱的原理...
& & 00:54:21 +08:00
不明觉厉,战略留名
& & 06:08:18 +08:00 via iPhone
觉得 T+1 散户做量化交易意义不大吧
& & 08:40:22 +08:00 via Android
@ 在市场上寻找预期正收益的买卖机会,要么是高胜率,要么是高盈亏比。
& & 08:42:30 +08:00 via Android
& & 08:44:15 +08:00
@ 商业化的推荐这个
,主要是实盘交易都还没开放
@ 量化只是个工具
@ T+0 的目前也有,而且量化不等于一定要高频交易,只是取代一些机器的操作
& & 08:57:36 +08:00
你是如何获取交易接口的?
& & 09:07:04 +08:00
& & 11:48:54 +08:00
& & 15:27:17 +08:00
今日熔断了。。。。。
& & 15:31:54 +08:00 via Android
不明觉厉,话说,这东西能不能帮俺解角套?
& & 12:39:54 +08:00
@ 解套还需系套人
& & 21:12:43 +08:00
@ (⊙﹏⊙)一身家产全在套上,已经感觉解不开了。
& & 21:54:20 +08:00
@ 股市起起浮浮,总有机会的
& & 13:55:30 +08:00
今天又熔断了
& & 15:39:18 +08:00
我一直想写一个这种自动赚钱机。
到底能不能实现呢?
& & 16:27:12 +08:00
@ 恩,熔断这个机制不太合理
@ 自动赚钱机的话 Google / Office 就是啊
& & 23:56:20 +08:00
自动赚钱不可能,用程序来做一些量化辅助工作是可以的
& & 10:28:22 +08:00
@ 我一直想写一个这种 (自动赚钱机 / Google / Office / Skype / Minecraft),写出来了自动赚钱不是梦
& & 12:14:46 +08:00
@ 感谢雷锋!请拍个照吧!
& & 23:03:32 +08:00
请问楼主怎么联系?能否接活?
& · & 1291 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 56ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02? Do have faith in what you're doing.如何用Python炒股|10年翻400倍的量化投资策略
吃瓜群众:10年翻400倍?!这怎么可能?!肯定是标题党?!
回答:绝对不是。后面会附上原始数据、代码、结果,用数字说话。
邢不行是经管之家(原人大经济论坛)「量化投资」版块的版主,毕业于香港科技大学,热门教程《量化小讲堂》的作者。
今天,邢老师给大家分享一个选股方法,一个在过去10年可以让你的本金翻400倍的策略。
这个策略其实非常简单,简单到只用了一个选股条件。但是这个选股条件在众多其他条件中,却是最强的一个。至少我个人寻寻觅觅这么多年,回过头来发现,还是没有一个单独的选股条件比它更强。
这个选股条件就是:市值。
市值的意思就是,在市场上买下这个股票所有的股份,总共需要花多少钱。而对于选股而言,市值是越小越好。也就是说,市值越小的股票,在将来上涨的概率越大。
可以将这个理论抽象为一个可以实际投资的简单策略:在每个月的月底,找出市值最小的10只股票,全仓等额买入。然后每月如此反复。
例如,假设一开始有10万元。在6月的最后一天,将所有股票按照市值从小到大排序,选取最小的10只股票,然后每个股票买入1万元。持有1个月,等到了7月31日,将手上的所有股票都卖掉,然后再找出届时市值最小的10只股票等额买入,如此往复循环即可。
对!就是这么简单的一个策略,一个每个月只用交易一次其它时间只需要喝茶的策略,一个任何人都能实际操作的策略,从2006年至2016年,11年期间,可以让你的原始资产翻400多倍。
下图中蓝色的曲线是按照这个策略进行投资的资金曲线图。起点是1,到2016年末是467,也就是翻了467倍 。绿色的曲线是同期大盘,也就上涨了十几倍。
策略会失效吗?
记得很多“专家”在2009年的时候就说过,小市值选股将来不会再有效了。但是这些人一再的被打脸。不说这个策略2009年到现在收益惊人,仅仅看去年2016年,通过这个选股条件选出来的股票就涨了90%左右。试问有多少人可以跑赢呢?
具体可看下图,记录了这个策略过去11年每年的收益。
当然,现在小市值选股已经越来越成为行业公开的“秘密”了,很多看上去高大上实际上呵呵哒的量化基金,它们背后的逻辑本质上就是小市值选股,可能就和刚刚分享的策略一样简单。
确实,策略知道的人多了,就谁都不能保证它将来可以继续赚钱,例如在2017年的一季度,小市值股票就出现了一轮回调。
但另一方面,也没有谁可以保证它将来就不赚钱。我们唯一知道的是,在过去近三十年的A股市场上,它非常的赚钱。在过去一百多年的美国市场上,它也非常的赚钱。甚至有学者撰文阐释这个策略有效的原因,从而获得了诺贝经济学奖。
所以这是一个经历过时间检验、有理论支撑的策略,至少是一个优秀策略的基础。它会有低谷,但是长期来看,必定有超额收益。
python代码实证
接下来我们用历史数据和python去验证这个策略,用数据说话,大家可以自己看看这个策略是否真的能赚这么多钱。
下图是用到的历史股票数据。这个数据,包含了所有股票从上市至今每个月的数据,每一行就是一个股票在一个月的相关数据。
其中第四列【是否交易】字段,含义是这个股票在当月最后一个交易日是否交易。用于排除那些在月末最后一天停牌而不能买入的股票。
第五列的【最后一天涨跌幅】字段,含义是这个股票在当月最后一个交易日的涨跌幅。用于排除那些在月末最后一天涨停而不能买入的股票。
接下来就是处理数据的python代码,加上注释、空行,总共也就50多行。python就是这么强大。
如果需要数据和代码,请根据文末提示加邢老师微信询问。
若对代码不是很理解,可以看下面的两个视频,里面不仅有关于以上代码的逐行讲解,还有我的量化学习方法,即使没有任何基础也能看的懂,试试看吧。
邢老师的python量化入门课程
邢老师经过多轮直播,精心打磨的《python量化投资入门》视频课程,也在最近上线了!
python从入门到熟练,手把手教你从安装到常用工具库的使用。
量化投资从基础到策略编写,手把手教你从获取数据到自动下单。
课程注重实际,学完后能自己写出量化策略并自动交易。
课程配套大量实际案例作为作业,老师持续督促,不做作业会被骂的!
任何问题,可通过文字、语音、远程桌面等方式提问,邢老师亲自解答。
免费加入邢老师的「小密圈」(原价66元),获得量化投资最新动态。
主讲老师邢不行,全额奖学金毕业于香港科技大学,经管之家(原人大经济论坛)「量化投资」版块的版主,拥有多年量化投资实战经验。
学生关于课程的反馈:
课程大纲、更多介绍
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点}

我要回帖

更多关于 python股票 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信