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 实现你的量化交易策略相关推荐

  1. 手把手教你python实现量价形态选股知乎_如何通过量价形态选股

    原标题:如何通过量价形态选股 许多股民投资者对于成交量变化的规律不清楚,K线分析只有与成交量的分析相结合,才能真正地读懂市场的语言,洞悉股价变化的奥妙.成交量是价格变化的原动力,其在实战技术分析中的地 ...

  2. 手把手教你python实现量价形态选股知乎_怎样通过量价形态选股?量价选股技巧...

    许多股民投资者对于成交量变化的规律不清楚,K线分析只有与成交量的分析相结合,才能真正地读懂市场的语言,洞悉股价变化的奥妙.成交量是价格变化的原动力,其在实战技术分析中的地位不言自明.今天小编就和大家介 ...

  3. 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现量价形态选股...

    来源:雪球App,作者: Python金融量化,(https://xueqiu.com/1444657641/139331726) 01引言 在股票市场上,一切交易行为的成功皆为概率事件,交易获利的核 ...

  4. 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...

    01引言 使用矢量化方法(pandas)建立的基于研究的量化回测框架,不考虑交易的委托成交行为,与真实市场情况差距比较大.今天为大家介绍的是基于事件驱动的回测框架,这是一种十分复杂的回测系统,力图模拟 ...

  5. 手把手教你python实现量价形态选股知乎_【手把手教你】Python量化股票市场情绪指标ARBR...

    股票投资,难免有些地方需要靠运气,但长期而言,好运.倒霉会相抵,想要持续的成功,必须靠技能和运用良好的原则.--菲利普·费舍 01 前 言 是什么影响着每天股价的变动?是什么决定指数在多少点位?为什么 ...

  6. 【手把手教你】Python实现量价形态选股

    01 引言 在股票市场上,一切交易行为的成功皆为概率事件,交易获利的核心在于选择了上涨概率较高的股票.因此,利用高概率的上升形态来选股,是技术分析的重要方法之一.威廉·欧奈尔在<笑傲股市> ...

  7. 利用Python进行股票交易分析(三):A股量化交易策略的验证及数据分析。

    鉴于近期空闲时间比较少,本篇文章采用不定时更新的方式来写,如大家有更好的思路也可以评论区一起讨论.... 目前进度: 2021-07-13 梳理.修改思路 2021-07-14 步骤1代码完成 背景 ...

  8. python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略

    Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...

  9. python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略

    Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...

最新文章

  1. 非本地类型不能定义方法 cannot define new methods on non-local type time.Duration
  2. [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)热门干货
  3. L2-004 这是二叉搜索树吗?-团体程序设计天梯赛GPLT
  4. keras入门之手写字识别python代码
  5. C++ const成员变量和成员函数
  6. 中国石油大学计算机控制实验,《计算机控制》实验讲义.doc
  7. python面向对象编程指南 脚本之家_python对象及面向对象技术详解
  8. Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)
  9. 窗体点击,空白处隐藏(stopPropagation)
  10. 芯片级维修一台指示灯全不亮的小米路由器PRO
  11. 高拍仪是否支持TWAIN方式的测试方法
  12. 运行metamascara时出现的一些错误
  13. 计算机网络:计算路由表下一跳
  14. 生信学习——基于R的统计习题(附详细答案解读)
  15. Win10怎么关闭屏幕保护?Windows10禁用屏保步骤
  16. getch方法_C语言 getch()用法及代码示例
  17. AI应用第一课:支付宝刷脸登录
  18. 休息时间!哪些业余活动能提升开发人员的技能?
  19. win11蓝牙无法使用 Windows11蓝牙无法使用的解决方法
  20. 基于windows7的usb多点触控设备

热门文章

  1. leetcode 在本地IDE debug调试TreeNode树相关算法代码
  2. python-docx 切分runs时会将整个词切分成多个的问题
  3. win10打开csv乱码
  4. tensorflow中在使用sess.run时报错
  5. java开发者大会2019_华为召开史上规模最大会议 2019华为开发者大会都有哪些黑科技?...
  6. 3t服务器装linux系统如何分区,4块3T硬盘怎么安装 linux 系统?
  7. 广州市专精特新企业高质量发展奖励政策及申报要求,补贴200万
  8. 计算机桌面倒置怎么办,电脑屏幕倒置了怎么办
  9. deepin如何恢复出厂设置_华硕win7系统恢复出厂设置详细步骤教程 - 系统家园
  10. 第13课 形变之城--故事卡--听我说