免费手把手教入门!玩python编程量化交易

wufei123 发布于 2024-08-31 阅读(8)

点击上方“蓝字”关注我吧郑重提示:现在公众号的推送规则改变了,有些读者反应收不到文章推送的情况,为防止大家看不到重要的文章,大家可以将我们设为星标就可以及时收到文章的推送了标题:通过使用富途Openapi。

开启python量化交易编程的学习和入门首先说下这篇文章是我自己操作过一个技术实操帖,本来是适合在这种广大程序员码农们的地盘分享的帖子,类似CSDN这样的平台去讲的,但是由于一堆朋友对股票投资的量化策略交易感兴趣,且python入门还很简单易学,即便是一些没学过代码的朋友,也都可以按照我等下要讲的图文教学来跑通第一个python的第一个程序,所以这里详细来给大家写一篇来带粉丝们入门,

大家可以先过一遍文章之后拿上电脑按照下文的步骤一步步跟着实际操作这里先说下编程其实并没有大家想象的那么困难,比如你要实现一些的调取行情,买卖交易,实际上直接复制富途给的一些代码就可以实现了,至于怎么实现调取行情,买卖交易这些富途都给你写好了底层的代码,这些就叫做API, 其实很多程序员也都是熟练使用ctrl+c(复制)和ctrl+v(粘贴),CV别人的代码挺好的,因为至少他具备了搜索以及自己解决问题的能力。

而富途很多案例就可以直接CV来解决自己的需求了富途提供了Python、Java、C#、C++、JavaScript5种编程语言的api代码,这里Python是最简单易学的,我们后面给大家分析的也都是通过Python还有富途提供的api来操作。

先说一个背景,就比如我之前我在写交易的公众号上面说的这个套利策略:透露一个Trader的日内T+0的规律票套利策略玩法如果可以通过编程把某一个股票的最后一分钟k线的涨跌幅全部导出,那是不是就可以回测出胜率情况了?比如某个股票这三个月来,每天最后收盘的最后1分钟涨跌幅情况。

这个API里面可以获取到这些历史数值,比如00700股票这三个月来每天收盘的最后1分钟的涨跌幅情况,如下图所示,也是这几天我写好的案例这里我通过python程序统计了腾讯,美团阿里最后一分钟涨跌幅这三个月以来的数据还有胜率情况。

这个要是手工统计虽然也是可以的,但是肯定很耗时间,三个月的数据需要话费不少功夫的如果python可以完成这个操作,是不是就非常方便了,再如果可以自动下单买卖,那就是量化交易的一种了下面开始给大家说说具体是要怎么玩,首先是需要看富途的操作说明:。

https://openapi.futunn.com/futu-api-doc/intro/intro.htmlhttps://www.futunn.com/download/OpenAPI?lang=zh-CN

富途给的这个futu-api操作文档其实还是很不错的,实操性很强,各种接口都有案例代码可以复制粘贴,给我们量化编程节省了很多时间,这个的确是值得夸奖的我是用电脑Windows 10 的 64 位操作系统来操作的,就是大家平时用的普通电脑,首先需要安装三个软件:。

FutuOpenD,Python解释器,PyCharm编译工具,这里下载完成之后以后的用法就是我下图这样的:

1.FutuOpenDFutuOpenD是 Futu API 的网关程序,需要下载安装,运行于您的本地电脑就可以,负责指令数据请求到富途服务器,并将处理后的数据返回FutuOpenD提供可视化和命令行两种运行方式,命令行是给码农们用的,比较复杂不适合广大散户朋友,我们这里介绍操作比较简单的可视化 FutuOpenD,下载之后直接安装到自己电脑里面。

按照futuapi的文档操作需要注意的地方如下所示:

打开这个FutuOpenD 软件之后,直接输入富途的账户名和密码,选择记住密码和自动登录就行了,至于右边基础设置和高级设置里面不需要去操作的,全部按照默认就好了api文档上面写的密文是明文这些都不用去管,那些是不在自己电脑操作才需要弄的,不是给非专业玩家搞的。

简单点弄直接下载登陆之后就可以不用管他了专业的解释是这样的:在本地或云端安装并启动一个网关程序 FutuOpenDFutuOpenD 以自定义 TCP 协议的方式对外暴露接口,负责中转协议请求到富途服务器,并将处理后的数据返回,该协议接口与编程语言无关。

2.Python解释器按照futuapi的文档操作,需要下载安装这个是python解释器,解释python脚本执行的程序,当开发者在编写python代码保存后,就会得到一个以“.py”为扩展名的文本文件,若要运行此文件,就需要python解释器去执行“.py”文件。

Python版本要求:Python 3.6 及以上,这个用法更简单,直接下载之后就可以不用管他了3.PyCharm编译工具PyCharm这是复制和写代码用的,同样需要按照futuapi的文档操作,需要下载安装,pycharm是一款编程软件(码农的专业世界里面叫做IDE),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。

比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制这个是最主要的,也是我们在这个过程中用的最多的软件如果你想实现任何股票历史数据整理,量化分析量化交易,需要编写代码或者复制粘贴的代码都在这里,是从其他地方复制代码,粘贴在这里的,然后编译跑起来。

按照futuapi的文档操作需要注意的地方如下所示:

下载安装好了这三个软件之后,就可以正式开始我们的python编程的第一个简单程序的运行了第一步:注册开户富途以及使用富途账户登录 FutuOpenD,因为会有订阅额度和历史 K 线额度限制的限制,非富途客户的基本上就无法使用了,还没开的可以点击下面链接注册开户:。

https://passport.futunn.com/?channel=551&subchannel=4#reg富途,最适合看盘的券商,大家看盘都在用的券商!

第二步:下载 futu的Python API操作上这样的在 cmd 中直接使用 pip 安装首先需要知道cmd怎么打开?这里给小白朋友们说下:按WIN键+R键打开运行,输入cmd后回车进入命令提示符,cmd上输入指令

初次安装:Windows 系统窗口 输入指令 pip install futu-api二次升级:Windows 系统窗口输入指令 pip install futu-api --upgrade

输入完成之后等待一段时间,因为他们会自动下载 futu的Python API中间不要停也不要关掉,一直等到全部完成,会出现C:\Users\...这样的就代表下载结束了,可能中间会出现网速慢连接超时的情况,会导致操作失败,就和我下图这种情况这样,切换一个网络,比如用手机热点来连接电脑,再去输入指令pip install futu-api --upgrade重新下载。

直到不在出现红色字体报错,就算是完成了,正确完成之后如果输入pip install futu-api --upgrade或者pip install futu-api会出现下图这个情况。

此时futu api的代码包算是成功下载到电脑里面第三步:创建新项目打开 PyCharm编程软件,在 Welcome to PyCharm 窗口中,点击 New Project,按照下图的操作打开。

可以先学会编译的操作,这个main.py是一个主函数,可以初始代码运行起来是可以打印出Hi PyCharm的,如下图所示:

第四步:futu api的包添加进工程这一步非常重要,富途api的的说明书操作步骤里面没详细写这个,只在Q&A里面提到了,在第三步新建的工程下面点击file--->setting...--->Project :pythonProject --->Python Interpreter --->点击+(添加futu-api的。

库)--->选择futu-api--->Install PackageFutu API 的正确名称为futu-api,而非“futu”。如果您安装过名为“futu”的第三方库,请将其卸载。

点击了Install Package之后,等待大约1分钟左右会添加成功,如下图所示

这里说下如果没添加成功,futu-api的库,程序编译跑起来的适合会出现我遇到的 这样的问题,会出现5个错误警告的,会出现各种问题。

第五步:复制代码编译复制富途api教程中的代码,让第一个量化程序跑起来!紧接着上面的代码,在main.py里面,从18行开始复制下面的代码进去示例代码功能包括查看行情快照、模拟交易下单from futu import *。

quote_ctx = OpenQuoteContext(host=127.0.0.1, port=11111)  # 创建行情对象print(quote_ctx.get_market_snapshot(HK.00700))  # 获取港股 HK.00700 的快照数据

quote_ctx.close() # 关闭对象,防止连接条数用尽trd_ctx = OpenSecTradeContext(host=127.0.0.1, port=11111)  # 创建交易对象print(trd_ctx.place_order(price=500.0, qty=100, code="HK.00700", trd_side=TrdSide.BUY, trd_env=TrdEnv.SIMULATE))  # 模拟交易,下单(如果是真实环境交易,在此之前需要先解锁交易密码)

trd_ctx.close()  # 关闭对象,防止连接条数用尽之后右击,点击run file in python console 运行,可以看到运行成功的返回信息如下:如下图所示的这种情况是代表成功了,可以看到运行的结果里面有00700相关信息。

第六步:继续完善代码,讲下面的代码紧接着上面的代码,使用ctrl+c(复制)和ctrl+v(粘贴)添加进去第四步的代码里:import pandas as pdpd.set_option(display.max_rows, 5000)

pd.set_option(display.max_columns, 5000)pd.set_option(display.width, 1000)至于为什么这么做,富途的教程里面也说明了:Q6:为什么我获取的 DataFrame 数据,只能展示一部分 ?

A:打印 pandas.DataFrame 数据的时候,如果行列数过多,pandas 默认会将数据折叠,导致看起来显示不全因此,并不是接口返回数据真的不全您只需要在 Python 脚本前面加上如下代码即可解决。

弄完之后再次点击run file in python console 运行,这次可以看到运行的结果里面有00700腾讯股票的相关行情信息了,可以看到昨天收盘腾讯的报价到此已经可以了,如果你想在cmd指令里面跑,可以输入指令 python main.py,可以输入python之后,打开main文件的文件夹,讲main文件拖入cmd指令就可以了。

这里需要写清楚main.py的位置,这样也就可以在cmd指令里面运行了

这样第一个量化程序就完成啦!是不是python的用在富途上面做量化编程操作起来很简单?嗯,按照我给的这个流程操作确实会很简单具体后续需要实现什么功能都可以看下富途给的那个文档,就是直接调用这些接口,基本上也是复制粘贴就好了,稍微按照你自己的需求修改一些应该可以了,入门玩玩python量化交易确实不是太难打事情,就是需要有耐心去慢慢搞,有问题也都可以网上去多查查。

有这个入门级别的python量化交易的教学,大家就不用去买那些网上付费python卖课的,自己稍微研究一下都可以搞定了操作完成我上面写的那些,那恭喜你,python的开入门级开发环境以及简单的python。

编程就已经完成了,你将正式开启了python编程量化交易之旅!富途的案例里面还给了各种不同的api,比如想找某个股票历史k线,代码可以直接复制到我们上面建立的工程中去用的。

最主要的是通过上面的这一系列操作,相当于把整个Python的开发环境都已经搭建起来了,即便是后面网上找到或者拿到别人的Python代码,因为你有了这个开发环境,就可以在这里直接运行得到结果,比起没操作过的人无法运行.py的程序来说优势还是很大的。

这一点就非常方便小白朋友了也欢迎大家多多告诫身边的朋友,觉得有用的方便文末帮我们“点赞” “点在看”让更多的朋友看到!

我个人原本也是程序猿的,大学期间以及毕业工作后的几年,我原本是一直从事的都是嵌入式软件开发的岗位,学和用的都是C语言,python这个我没接触过,目前也是刚学习,也算是才入门,也弄了一个量化投资的交流群,有兴趣的朋友可以一起多多交流。

相关咨询为了区分打新和股票交易的朋友,还是分在不同的群里更加合适,大家添加我们好友之后,可以先描述一下自己的情况,方便我们后续的相互交流如果是对打新感兴趣可以进打新群;如果是对交易感兴趣的朋友,可以私聊我们加入Trader交流群;不要加了好友之后不说话的我也不知道你要进哪个群,还是希望能多多交流!都去加下面这个企业微信,只有这个号有权限拉群。

扫码二维码

加小熊猫为好友

点赞、在看安排一下

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。