怎样用 Python 写一个股票自动交易的程序?(不包含交易算法)?

123 篇文章 1 订阅
75 篇文章 0 订阅

前言

最近,一位常年研究股票系统的开发者 pythonstock 用 Python 写了一个股票分析系统,发布数天就获得了不少关注。

于是我们就推荐给大家,既能学习 python 又能练习炒股。但正如项目作者所说,「本项目只能用于 Python 代码学习,股票分析,投资失败亏钱不负责,不算 BUG。」如果真亏了,我们也不背锅呀,毕竟大家都是韭菜。

在这里插入图片描述

【----以下所有学习资料文末免费领!----】

pythonstock 的项目页面

总之,分析得准不准先不说,我们先来偷个师,看看这个用 Python 代码进行股票分析的项目到底是怎么实现的吧。

PythonStock:一个用 Python 写成的股票分析系统

根据 GitHub 页面介绍,该项目是基于 Python 的 pandas、tushare、bokeh、tornado、stockstats、ta-lib 等框架开发的全栈股票系统。

GitHub 地址:https://github.com/pythonstock/stock

它具备以下特点:

1)可以直接使用 docker 本地部署运行,整个项目在 docker hub 上压缩后仅有 200BM,本地占用 500MB 磁盘空间。

2)使用 Docker 解决 Python 库安装问题,使用 Mariadb(MySQL)存储数据,借助 tushare 抓取数据。

3)使用 corn 做定时任务,每天进行数据抓取计算,每天 18 点开始进行数据计算,计算当日数据,使用 300 天数据进行计算,大约需要 15 分钟计算完毕。

4)股票数据接口防止被封,按天进行数据缓存,储存最近 3 天数据,每天定时清除,同时使用 read_pickle to_pickle 的 gzip 压缩模式存储。

5)使用 tornado 开发 web 系统,支持股票数据、沪深 300 成份股、中证 500 成份股、龙虎榜数据、每日股票数据、每日大盘指数行情等。

6)数据展示系统:通用数据展示系统,配置字典模板之后,页面自动加载数据,并完成数据展示,后续可以加入自己开发的指标数据。

7)增加曲线数据分析:查看股票时,可以直接跳转到东方财富页面查看相关信息,点击指标之后使用 Bokeh 将多达 17 个指标的数据可视化,进行图表展示。

在这里插入图片描述

bokeh 绘图指标数据:

在这里插入图片描述

然后根据 KDJ、RSI 和 CCI 这 3 个指标进行股票数据计算:

在这里插入图片描述

计算指标

此股票分析系统提供的每日股票指标数据,按照 17 个计算指标进行计算(下图截取部分计算指标):

在这里插入图片描述

此外,项目作者还介绍了该股票系统设计原理、架构设计原理、应用部署要点等知识,具体使用和部署方法参见 GitHub 项目页面。

在这里插入图片描述

感兴趣的小伙伴,也许可以亲自上手试一试了。

不过,需要再次提醒的是,股市有风险,入市需谨慎哦。

Python入门教程

如果大家对python感兴趣,下面我会给大家免费分享一份Python全套学习资料, 包含视频、源码、课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,可以和我一起来学习交流。

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

爬虫与反爬虫攻防教程包,含15个大型网站迫解

爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
★★1.编译注意事项 使用VC6打开工作区StkUI.dsw 然后可以按照以下顺序依次编译各个工程 GuiLib、profuisdll、XPFace、StkLib、StkNet、StkUI、Tools 其中工程StkUI是软件的主界面程序,Tools 是注册机以及一些简单的工具,其他 都是动态连接库。 ★★2.工程profuisdll介绍 profuisdll是一套比较专业的Windows界面库,是俄国人做的,还不错,本软件 改正了它的几个bug。在ProfUIS\Modified.txt文件中有说明。 本软件3.0版仅使用了该界面库的颜色选择对话框。 ★★3.工程GuiLib介绍 GuiLib是另一套Windows界面库,本软件改正了它的几个bug。在GuiLib\Modified.txt 文件中有说明。 本软件3.0版使用了该界面库的界面框架、菜单条、工具条。 ★★4.工程XPFace介绍 主要是本软件的一些界面美化的类,放在了这个DLL里面。 ★★5.工程StkLib介绍 这个工程是实现股票数据结构、技术指标计算的动态连接库,代码与平台无关。 其中比较重要的几个文件如下: Database.h 读取数据文件接口定义 QianLong.h 钱龙格式数据文件接口定义 SelfDB.h 自有格式数据文件接口定义,除了除权数据和行情数据外, 其他与钱龙一样 Stock.h 股票数据结构定义 Technique.h 技术指标类定义 Container.h 股票信息数据CStockInfo的数组类 Express.h 股票列表视图的列变量定义,以及自定义列的表达式计算 Strategy.h 策略定义 Profile.h 记录软件的用户配置并保存 BaseData.cpp 基本资料数据结构类实现 Database.cpp 数据文件读实现 DRData.cpp 除权数据结构数组类实现 KData.cpp K线数据结构数组类实现 Report.cpp 行情数据结构数组类实现 Minute.cpp 行情分时数据结构数组类实现 Outline.cpp 行情额外数据结构数组类实现 QianLong.cpp 钱龙数据文件读实现 SelfDB.cpp 自有格式数据文件读实现 Stock.cpp 股票数据结构实现 StStore.cpp 数据文件读实现 TechCL.cpp 自有技术指标 TechEnergy.cpp 能量类技术指标 TechKLine.cpp K线叠加类技术指标 Technique.cpp 技术指标基类 TechSwing.cpp 摆动类技术指标 TechTrend.cpp 趋势类技术指标 TechOther.cpp 其它类技术指标 Container.cpp 股票信息数据CStockInfo的数组类实现 Express.cpp 股票列表视图的列变量定义,以及自定义列的表达式计算实现 Strategy.cpp 策略定义实现 Profile.cpp 记录软件的用户配置并保存 有关详细的说明,参看源文件中的注释。 工程StkLib的几个全局静态变量: g_stockcontainer:AfxGetStockContainer()可以得到该变量的引用,该 变量记录所有股票的行情信息和基本信息,CStockInfo的数组。 g_domaincontainer:AfxGetDomainContainer()可以得到该变量的引用, 该变量记录所有板块的信息。 g_groupcontainer:AfxGetGroupContainer()可以得到该变量的引用,该 变量记录所有分组的信息。 g_stdatabase:AfxGetDB()可以得到该变量的引用,该变量实现了本软件的 数据文件接口。 g_stprofile:AfxGetProfile()可以得到该变量的引用,该变量记录当前软 件的一些设置。 ★★6.工程StkNet介绍 这个工程是实现网络数据自动下载功能的动态连接库。其中比较重要的几个文 件如下: NetDB.h 一些数据下载,安装的接口 HttpClt.h HTTP协议客户端类 InfoZip.h 压缩/解压缩Zip文件 Markup.h XML解析 XMLDoc.h XML辅助 secret.h 主要包括一些注册机的加密算法和读取硬盘序列号的类。 NetDB.cpp 一些数据下载,安装的接口实现 HttpClt.cpp HTTP协议客户端类实现 InfoZip.cpp 压缩/解压缩 Markup.cpp XML解析实现 Secret.cpp 加密文件,读取硬盘系列号等 XMLDoc.cpp XML辅助实现 secret.cpp 主要包括一些注册机的加密算法和读取硬盘序列号的类实现。 其中工程中的Tongshi Files为支持通视卡行情的实现程序 其中工程中的Yongxin Files为支持清华永新卡行情的实现程序 其中工程中的Receiver Files为本软件的行情接收的实现程序,其中将通视卡和清 华永新卡的数据结构转换成本软件内的通用数据结构,报价(REPORT)、分时(MINUTE)、 额外(OUTLINE)、K线(KDATA)、除权信息(DRDATA) 工程StkNet的全局静态变量: g_sview:AfxGetSView()可以得到该变量的引用,该变量记录注册信息。 ★★7.工程StkUI介绍 该工程生成最终可执行文件,主要是软件的界面。主要几个文件如下: BaseView.cpp 基本资料视图 ChildFrm.cpp 子窗口框架 MainFrm.cpp 主框架,响应菜单命令 StkUI.cpp 应用程序类,主程序初始化,初始数据读取等 StaticDoc.cpp 文档类 WizardView.cpp 向导视图 SimuView.cpp 策略视图 MarketView.cpp 实时行情视图 SListView.cpp 股票列表视图 StockGraph.cpp 技术指标视图画图类 DrawTech.cpp 画具体技术指标的函数,属于CGraphView类的方法 GraphView.cpp 技术指标视图 StrategyView.cpp 策略树视图 GroupView.cpp 股票分组树视图 TechsView.cpp 技术指标树视图 ★★8.工程Tools介绍 该工程包含以下几个模块: 注册机,利用了StkNet工程导出的AfxGetSView()。 从txt基本资料文件中提取财务数据的小工具。 修改文件时间的小工具。
### 回答1: 以下是使用Python自动排序程序: ```python def auto_sort(lst): """ 自动排序函数,接受一个列表作为参数 """ if len(lst) <= 1: return lst else: pivot = lst[0] # 以第一个元素为基准 left = [] right = [] for i in range(1, len(lst)): if lst[i] < pivot: left.append(lst[i]) else: right.append(lst[i]) return auto_sort(left) + [pivot] + auto_sort(right) # 递归调用自身排序 # 示例 lst = [5, 3, 8, 6, 2, 7, 1, 4] sorted_lst = auto_sort(lst) print(sorted_lst) ``` 输出结果: ``` [1, 2, 3, 4, 5, 6, 7, 8] ``` ### 回答2: 要编一个自动排序的Python程序,可以使用不同的排序算法来实现。下面我将以冒泡排序算法为例来进行说明。 冒泡排序是一种简单的排序算法,它重复地交换相邻元素,将最大或最小的元素逐渐“冒泡”到列表的末尾。以下是实现自动排序的Python程序: ```python def bubble_sort(lst): n = len(lst) for i in range(n): for j in range(0, n-i-1): if lst[j] > lst[j+1]: lst[j], lst[j+1] = lst[j+1], lst[j] lst = [5, 2, 7, 1, 9, 3] bubble_sort(lst) print("排序结果:", lst) ``` 这个程序先定义了一个名为`bubble_sort`的函数,在函数内部使用嵌套循环来遍历列表并比较相邻的元素。如果前一个元素比后一个元素大,则交换它们的位置。通过多次的循环迭代,最大的元素逐渐被冒泡到列表的末尾。 接下来,我们创建了一个包含一些未排序数字的列表`lst`,然后调用`bubble_sort`函数对它进行排序。最后,使用`print`语句输出排序结果。 当运行这个程序时,你会得到输出结果:“排序结果:[1, 2, 3, 5, 7, 9]”,证明冒泡排序已经成功地将列表中的元素按升序排列。 除了冒泡排序,还有许多其他高效的排序算法,如选择排序、插入排序、快速排序等。你可以根据需要选择合适的排序算法,并进行相应的调整来实现自动排序的Python程序。 ### 回答3: 编一个自动排序的Python程序可以采用多种排序算法,如冒泡排序、插入排序、选择排序、快速排序等。以下是一个使用冒泡排序来自动排序的Python程序: ```python def bubble_sort(lst): n = len(lst) for i in range(n-1): for j in range(n-i-1): if lst[j] > lst[j+1]: lst[j], lst[j+1] = lst[j+1], lst[j] # 测试 lst = [5, 3, 8, 1, 2] bubble_sort(lst) print(lst) ``` 以上代码首先定义了一个冒泡排序的函数`bubble_sort`,该函数接受一个列表作为输入,并对其进行自动排序。在每一轮循环中,它比较相邻两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置。通过多次遍历列表,将较大的元素逐步向右移动,从而实现排序的目的。 在测试部分,我们创建一个包含五个整数的列表,在调用`bubble_sort`函数后,输出排序后的列表。 需要注意的是,以上代码中使用了冒泡排序算法,但你也可以根据需要选择其他排序算法,并将相应的代码替换到`bubble_sort`函数中即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值