首页 > 编程知识 正文

python如何实现量化交易,python量化交易论坛

时间:2023-05-04 18:30:50 阅读:163387 作者:3834

2019独角兽企业重金招聘Python工程师标准

在Python的学习者中,有相当一部分人正在走向爬行动物。 因为爬行动物可以解决你很多工作和生活的问题,节约你的生命。 但是,Python还有另一个神秘有趣的应用领域。 那是量化交易。

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

Python开发方便,工具库丰富,尤其是对科学计算的支持较强,因此目前广泛应用于量化领域。 市场上也出现了很多支持Python语言的量化平台。 通过这些平台,可以轻松实现、验证自己的交易策略,并与交易系统对接(由于政策的原因,目前很多交易接口都暂停开放)

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

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

优矿uqer.io聚宽joinquant.com米篮ricequant.com

国外知名平台:

quantopian.com

这些都可以用Python进行战略开发。

以优矿为例,注册后,在“开始研究”页面上,创建新的Notebook,就可以用Python开始写自己的战略。

在右上角的下拉框中选择“策略”,将自动填充策略回调的基本结构代码。

的一些变量是回归测量的基本组成。 initialize可以做初始化的工作。 handle_data是用于实现每交易日或每分钟交易指令的返回代码的核心。

具体变量的含义在此不作特别详细说明。 文档中有说明。 从命名和注释中也可以看出,设定了回测的时间、股票池、资金、交易频率等。

文档中有最简单的日线战略代码:

efHandle_data(account ) : forstockinaccount.universe : order ) stock,100 )此策略是在每个交易日一次性购买股票池中的所有股票。

account.universe是在开头设置的universe值。 在这里遍历股票池中的股票。

order是买卖命令,函数的原型是order(symbol,amount )

参数symbol为股票代码,amount为买卖数,正买入,负卖出。 在这里购买100股,就是1手。

单击“运行”或单击Ctrl Enter时,页面将显示策略的运行情况。

我们试着再更改一下,写下自己的战略。

我敲了敲脑袋,想到了这样的策略:

如果一只未持股在两个交易日累计上涨10%以上,按目前资金的5%买入。 相反,如果累计下跌10%以上,则全部抛售止损。 让我们实现这个来看看下一次测试的效果。

时间定为去年(2015 )年,起始资金10万元。

universe=set_universe(a ) )股票池是a股的自有股票。

account.get _ attribute _ history (closeprice ),3 )获取股票池中所有股票前三天的收盘价(close price )。

hist[s][2] - hist[s][0]得到1天前和3天前的收盘价之差。

account.valid_secpos是帐户当前持有的证券信息。

如果收盘价的两天差值符合购买条件且不持有,请执行以下操作

order_pct(s,0.05 ) order_pct表示按帐户当前总价值的百分比购买股票。

如果满足出售条件,请执行以下操作:

order_to(s,0 ) OK,简单而不可能的策略完成了。 运行一下吧:

多么简单的策略,最好的时候收益超过90%,即使经历了全年股灾和下半年的震荡之后,到年底也有30%多的收益率,超过了大多数散户去年的成绩。 如果按照这个战略进行交易的话,啧啧,想想还真有点兴奋啊。 喂! 起来! )

但现实是残酷的,真正的市场分会教你做人。

量化投资和程序交易是一个很有前途的行业,但在你想做这份工作甚至用它赚钱之前,请先深入了解它。

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

如何学习量化交易?

以前

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

已知国内量化平台的比较, Ricequant / 优矿究竟谁是下一个quantopian,哪家挖矿强?

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



其他文章及回答:


学习编程的过程中可能会走哪些弯路,有哪些经验可以参考? - Crossin 的回答

你是如何自学 Python 的? - Crossin 的回答

编程初学者如何使用搜索引擎 - Crossin的文章 - 知乎专栏

如何直观地理解程序的运行过程?- Crossin的文章 - 知乎专栏

如何在 Python 中使用断点调试 - Crossin的文章 - 知乎专栏

Python 抓取网页乱码原因分析 - Crossin的编程教室 - 知乎专栏

极简 Github 上手教程 - Crossin的编程教室 - 知乎专栏

Crossin的编程教室


微信ID:crossincode

论坛:Crossin的编程教室

转载于:https://my.oschina.net/crossin/blog/1818354

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。