python量化交易策略实例_用 Python 实现你的量化交易策略
Python 的学习者中,有相当一部分是冲着爬虫去的。因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命。不过 Python 还有一个神秘而有趣的应用领域,那就是量化交易。
量化交易,就是以数学模型替代人的主观判断来制定交易策略。通常会借助计算机程序来进行策略的计算和验证,最终也常直接用程序根据策略设定的规则自动进行交易。
Python 由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所以目前在量化领域的使用很广泛。市面上也出现了很多支持 Python 语言的量化平台。通过这些平台,你可以很方便地实现自己的交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。
在交易策略方面,我是外行(虽然曾经也有证券从业资格)。所以本文只是介绍几个 Python 量化平台,以及一些最基本的使用方法。更多的功能、更强大的策略还有待各位自己去挖掘。
目前国内比较知名的几个平台:
国外知名平台:
它们都可以使用 Python 进行策略开发。
以优矿为例,注册之后,在“开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己的策略。
右上角的下拉框选择“策略”,就会帮你自动填写上策略回测的基本结构代码。
开始的一些变量是对回测的基本配置。initialize 里可以做一些初始化的工作。handle_data 则是回测代码的核心,用来实现每个交易日(或每分钟)的交易指令。
具体的变量含义,这里不做特别细致的解释,文档里都有说明。仅从命名和注释里也可以看出,设定了回测的时间,股票池,资金,交易频率等。
文档里给了一个最简单的日线策略代码:
def handle_data(account):
for stock in account.universe:
order(stock,100)
此策略就是,在每个交易日,把股票池里每一只股票都买入一手。
account.universe 就是开头设定的 universe 值。这里遍历股票池中的股票。
order 是买卖指令,函数原型是:order(symbol, amount)
参数 symbol 是股票代码,amount 是买卖数量,正为买入,负为卖出。此处买入 100 股,即 1 手。
点击“运行”,或 Ctrl+Enter,即可在页面上看到策略的执行情况。
我们再尝试改动一点点,写一个自己的策略。
我拍脑袋想了这样一个策略:如果一只未持有的股票 2 个交易日累计涨了 10% 以上,就以当前资金的 5% 买入它。反过来,如果累计跌了 10% 以上,就全部卖出止损。
下面把它实现出来看下回测效果如何。
时间设为去年(2015)全年,起始资金 10 万元。
universe = set_universe('A')
股票池为 A 股所有股票。
account.get_attribute_history('closePrice', 3)
取得股票池中所有股票前 3 天的收盘价(closePrice)。
hist[s][2] - hist[s][0]
得到 1 天前和 3 天前收盘价的差值。
account.valid_secpos
是账户当前所持有的证券信息。
如果收盘价 2 天的差值满足买入条件且未持有,就执行:
order_pct(s, 0.05)
order_pct 表示按账户当前总价值的百分比买入股票。
如果满足卖出条件则执行:
order_to(s, 0)
OK,一个简单到不行的策略已完成。运行一下:
居然,这么简单的策略在最高的时候有超过 90% 的收益,即使在经历了年中的股灾和下半年的震荡之后,到年底也还有 30% 多的收益率,应该超越了大部分散户去年的成绩吧。如果按照这个策略进行交易,啧啧,想想还有点小激动呢。(喂!快醒醒!)
然而现实是残酷的,真实的市场分分钟教你做人。
量化投资以及程序化交易是很有前途的行业,但在你想从事这行,甚至用它赚钱之前,请先深入了解它。
有兴趣的,去看下这个问题:
前面提到的另外几个平台,和优矿基本类似,API 和功能会有些差异,可以自行尝试,这里不再分别演示。也有人做过比较:
如果你对这个领域充满好奇,不如现在就立刻动手,从你的第一个策略开始。谁知道你会不会成为下一个巴菲特呢:)
其他文章及回答:
Crossin的编程教室
微信ID:crossincode
python量化交易策略实例_用 Python 实现你的量化交易策略相关推荐
- python数据库应用开发实例_纯Python开发的nosql数据库CodernityDB介绍和使用实例
看看这个logo,有些像python的小蛇吧 .这次介绍的数据库codernityDB是纯python开发的. 先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给 ...
- python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?
我在将一个类实例中定义的变量传递到另一个类实例时遇到问题.我对使用类比较陌生,但据我所知,变量可以通过简单地定义为类实例的一部分(例如在下面的示例中)从一个实例传递到另一个实例.虽然我以前使用过这个模 ...
- python 外部参数过长_介绍python中slice参数过长的处理方法及实例
python教程栏目介绍slice参数过长的处理方法 很多小伙伴对于slice参数的概念理解停留在概念上,切片的参数有三个,分别是step .start .stop .因为参数的值也是多变的,所以我们 ...
- python 文件批量转换格式_使用python批量化音乐文件格式转换的实例
使用python批量化音乐文件格式转换的实例 最近在做声音文件数据处理,写了一个自动将m4a文件转化为wav的脚本. import os m4a_path = "/Users/Downloa ...
- python中len的用法_总结Python中len()函数的使用实例
这篇文章主要简单介绍了Python中的len()函数的使用,包括在四种情况下的使用小例子,是Python学习当中的基础知识,需要的朋友可以参考下 函数:len() 1:作用:返回字符串.列表.字典.元 ...
- python实现冒泡排序完整算法_利用python实现冒泡排序算法实例代码
利用python实现冒泡排序算法实例代码 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数 ...
- 用python绘制树和森林_使用Python的Turtle库绘制森林的实例
这是由一个小作业引发的对Python的Turtle库的学习 下面是官方手册: 1.配置编程环境 由于现在的笔记本是临时借的,编程环境不是熟悉的环境,又由于种种原因没有安装成功Anaconda,就尝试了 ...
- python随机生成一组数据_使用Python random模块生成随机数据实例
在本节中,我们将学习如何使用random模块(random)在Python中生成随机数和数据.该模块为各种分布(包括整数,浮点数(实数))实现了伪随机数生成器. 本文的目标: 以下是我们将在本文中介绍 ...
- python字符串大写字母个数_【python实例】统计字符串里大写字母,小写字母的个数和非字母的个数...
""" 给定一个以下字符串:统计大写字母的个数,小写字母的个数,非字母的个数. str1 = "ajdkkKDKEK1343KFKiriromfkfKKRIOW ...
最新文章
- Scikit-learn使用总结
- PowerPoint中的LinkFormat对象
- Floyd-Warshall算法
- ACL 2020 | 基于稠密段落检索的开放域问答系统技术
- Azkaban-two_server模式-job任务运行
- 架构设计 | 分布式体系下,服务分层监控策略
- 支付宝jsapi_使用小程序Serverless开发支付宝小程序
- php实现数据排序算法,PHP实现数据结构中的排序算法_PHP教程
- OPCServer:使用Matrikon OPC Server Simulation
- Enterprise Architect 中文快速入门
- CRC32 在 java中使用
- 如何进行软件技术管理?
- eclipse复制行快捷键与屏幕旋转冲突的解决
- 一帧1920*1080的画面有多少比特,需要多大带宽观看是才不会卡顿?
- 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器设计(第二章:示例微处理器组成及各个Verilog文件功能及作用)
- [CF1603D] Artistic Partition——欧拉函数,线段树优化DP
- Linux C/C++程序崩溃bug调试方法
- 计算机网络 万维网的文档
- 设置LINUX启动时的液晶屏参数
- 环信即时通讯云iOS版V2.0.9.1服务评测
热门文章
- 搭上Python号小火箭,程序运行越来越快!
- 吞食天地2 隐藏 物品 图文(全部隐藏物品位置)
- 美通社企业新闻汇总 | 2019.1.24 | 美团投110亿扶持商户发展;中海油2019年预计投产6个新项目...
- Vue中为什么不能检测数组的变化-01-defineProperty
- 如何使用py2exe打包arcpy脚本?
- 使用SDWebImage清除图片缓存
- 【Appium】验证appium环境搭建是否成功并考虑脚本需要包含的参数
- GCSE英语语言考试-叙述视角
- MaixBit初次上手配置教程
- 服务器散热器性能,服务器散热器