打开微信,扫一扫登录

              用 Python 实现你的量化交易策略

              Crossin的编程教室   2019-04-13 17:40 2400 17

              本文介绍几个 Python 量化平台,以及一些最基本的使用方法。

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

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

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

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

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

              优矿 uqer.io

              聚宽 joinquant.com

              米筐 ricequant.com

              国外知名平台:

              quantopian.com

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

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

              微信图片_20190413185525.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,即可在页面上看到策略的执行情况。




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

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

              如果一只未持有的股票 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,一个简单到不行的策略已完成。运行一下:


              微信图片_20190413185538.jpg


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

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

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


              棋牌游戏大全平台 | 棋牌送彩金地图
              大神棋牌_大神棋牌app下载 酷乐棋牌_酷乐棋牌APP下载 一木棋牌_一木棋牌APP下载 ewin棋牌_ewin棋牌官网_ewin棋牌手机app 华乐棋牌游戏手机版下载_华乐棋牌游戏排行 宝博棋牌_宝博棋牌APP下载 58棋牌游戏官网_58棋牌游戏官网2019平台 棋牌游戏大全排名最火_棋牌送彩金 悠扬棋牌游戏官网网址_悠扬棋牌游戏官网网址app下载 玩玩棋牌_玩玩棋牌最新版 官网棋牌游戏_官网棋牌游戏官网_官网棋牌游戏手机app NN游戏-nn官网-NN棋牌官网 32棋牌下载_32棋牌下载最新版 乐淘棋牌官网 | 乐淘棋牌游戏_乐淘棋牌APP 七七棋牌游戏大厅下载-七七棋牌游戏大厅官方 快乐牛牛-快乐牛牛游戏 开心客人棋牌下载 棋牌下载送20现金_棋牌送彩金 电玩棋牌_电玩棋牌官网_电玩棋牌手机app 黑桃棋牌游戏下载_最新黑桃棋牌安卓手机版下载地址 指尖棋牌_指尖棋牌捕鱼 手机斗牛棋牌app_手机斗牛棋牌app2019 中华棋牌_中华棋牌游戏 转让棋牌室_转让棋牌室官网_转让棋牌室手机app 大赢家棋牌官网—大赢家棋牌平台 老地方棋牌_老地方棋牌官网_老地方棋牌手机app 新开棋牌注册送18_棋牌送彩金
              053 487 543 436 287 038 777 982 950 158 473 441 011 767 227 192 063 950 842 668 379 543 861 504 182 651 499 194 928
              棋牌游戏大全平台 | 棋牌送彩金

                <noframes id="7k35t" ><sup id="xj6ta" ><ruby id="brlok" ></ruby></sup></noframes><cite id="fu04g" ><wbr id="ylnno" ></wbr></cite>

              1. 棋牌游戏大全平台 | 棋牌送彩金
              2. 棋牌游戏大全平台 | 棋牌送彩金