python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」

python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」Python的学习者中,有相当一部分是冲着爬虫去的。因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命。不过Python还有一个神秘而有趣的应用领域,那就是量化交易。量化交易,就是以数学模型替代人的主观判断来制定交易策略。通常会借助计算机程序来进行策略的计算和验证,最终也常直接用程序根据策略设定的规则自动进行交易。Python由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Python 的学习者中,有相当一部分是冲着爬虫去的。因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命。不过 Python 还有一个神秘而有趣的应用领域,那就是量化交易。

量化交易,就是以数学模型替代人的主观判断来制定交易策略。通常会借助计算机程序来进行策略的计算和验证,最终也常直接用程序根据策略设定的规则自动进行交易。

Python 由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所以目前在量化领域的使用很广泛。市面上也出现了很多支持 Python 语言的量化平台。通过这些平台,你可以很方便地实现自己的交易策略,进行验证,甚至对接交易系统(由于政策原因,现在很多交易接口暂停开放)。

在交易策略方面,我是外行(虽然曾经也有证券从业资格)。所以本文只是介绍几个 Python 量化平台,以及一些最基本的使用方法。更多的功能、更强大的策略还有待各位自己去挖掘。

目前国内比较知名的几个平台:

国外知名平台:

它们都可以使用 Python 进行策略开发。

以优矿为例,注册之后,在”开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己的策略。

24230741_9nEp.jpg

右上角的下拉框选择”策略”,就会帮你自动填写上策略回测的基本结构代码。

24230741_P9yk.jpg

开始的一些变量是对回测的基本配置。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,即可在页面上看到策略的执行情况。

24230741_euZe.jpg

我们再尝试改动一点点,写一个自己的策略。

我拍脑袋想了这样一个策略:

如果一只未持有的股票 2 个交易日累计涨了 10% 以上,就以当前资金的 5% 买入它。反过来,如果累计跌了 10% 以上,就全部卖出止损。

下面把它实现出来看下回测效果如何。

24230741_WYpH.jpg

时间设为去年(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,一个简单到不行的策略已完成。运行一下:

24230741_zCjA.jpg

居然,这么简单的策略在最高的时候有超过 90% 的收益,即使在经历了年中的股灾和下半年的震荡之后,到年底也还有 30% 多的收益率,应该超越了大部分散户去年的成绩吧。如果按照这个策略进行交易,啧啧,想想还有点小激动呢。(喂!快醒醒!)

然而现实是残酷的,真实的市场分分钟教你做人。

量化投资以及程序化交易是很有前途的行业,但在你想从事这行,甚至用它赚钱之前,请先深入了解它。

有兴趣的,去看下这个问题:

前面提到的另外几个平台,和优矿基本类似,API 和功能会有些差异,可以自行尝试,这里不再分别演示。也有人做过比较:

如果你对这个领域充满好奇,不如现在就立刻动手,从你的第一个策略开始。谁知道你会不会成为下一个巴菲特呢:)

其他文章及回答:

Crossin的编程教室

微信ID:crossincode

24230741_Aozl.jpg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184638.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pytest(6)重复运行用例pytest-repeat[通俗易懂]

    Pytest(6)重复运行用例pytest-repeat[通俗易懂]前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月30日
    11
  • python数组操作方法_python 数组赋值

    python数组操作方法_python 数组赋值python列表数组类型,用中括号代表,具有顺序关系,可以修改,是最常用的数组bracket=[‘b’,’r’,’a’,’c’,’k’,’e’,’t’]pyhon元组数组类型,用小括号代表,具有顺序关系,不可以修改,是只读型数组,用来保护不需要改变的数据parentheses=(‘p’,’a’,’r’,’e’,’n’,’t’,’h’,’e’,’s’,’e’,’s’)python字典数组

    2022年8月13日
    8
  • mysql数据库安装(详细)

    mysql数据库安装(详细)安装MySQLMySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司。任何人都能从Internet下载MySQL软件,而无需支付任费用,并且“开放源码”意味着任何人都可以使用和修改该软件。一、下载MySQL第一步:下载mysql,地址:https://dev.mysql.com/downloads/installer/mysql官网上提供了两种安装方式,第一种是在线版联网安装,第二种是本地安装。二者的区别是前者是

    2022年5月11日
    37
  • js 判断是否字符串_js字符串查找

    js 判断是否字符串_js字符串查找整理js中可以用到的判断一个字符串中是否包含另外一个字符的方法String对象方法1、indexOfindexOf返回指定字符串在该字符中首次出现的位置,如果没有找到,则返回-1indexOf接收两个参数,第一是需要搜索的字符串,第二个参数是检索的位置,默认为0letstr=’abcde’;//例如,从str第三位开始搜索’a’console.log(str.indexOf(‘a’,2));//-1console.log(str.indexOf(‘a’))//02、

    2022年10月6日
    0
  • winserver2003DNS服务器配置[通俗易懂]

    winserver2003DNS服务器配置[通俗易懂]目前很多企业事业单位都建立了单位内部的局域网,网络内部都配备相关的服务器(如web、ftp等服务器)。内部网络的用户都希望所有的服务器都用域名来访问,网络管理员可以采用在内部搭建DNS服务器的方式来实现。在内部网络搭建DNS服务器,让用户在其计算的“DNS服务器的IP地址”中输入内部网络DNS服务器的ip地址。在该内部网络的DNS服务器上建立正向、方向搜索区域。将没有注册互联网

    2022年6月1日
    113
  • 一定要看

    一定要看前言(一定要看)首先说一下啊,本人是个菜鸟,但自认是一个懂的上进的菜鸟,现在对游戏开发或多或少懂了一丁点吧。现在把我的资料全部上传,也许大家会觉得,资料有的网上都有吧,也许觉得资料没什么用吧,这个确实。但一个资料只要有一点点对你有用我就满意了,就够了。为了方便大家下载,小文件我都是打包了,没有任何的密码之类的。学习的资料不管是好的还是不好的我都上传了,这些是我从0开始学的东

    2022年7月16日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号