当前位置: 首页 > 编程日记 > 正文

七天学会「股票数据分析软件」的开发(下)

昨天下午把《我不是药神》这部电影看了,搞得我哭的稀里哗啦,里面有一些情节触痛了内心中最薄弱的地方。药厂没有错,他们要收回前期投入的研发成本。主人公 程勇 只能算是整个事件的牺牲品,通过他的牺牲让国家关注到白血病人这个群体,让国家在医疗卫生改革方面有了一些进展。看的自己好难受!难受!难受!

还是回到我们今天的主题,把 「股票数据分析软件」 最后一个部分带着大家做完。

这套软件分为三个部分,第一部 分数据的获取与存储,第二部分 数据的分析与更新,到此为止,数据一直以记录(Record)的形式存在,很不直观,所以我们最后要做的就是把数据以及分析的结果通过图形的方式形象的表达出来。

怎么做呢?

我在这里利用了第三方开发组件 DotNetBar.Chart Control,大家可以到 http://www.devcomponents.com/dotnetbar/download.aspx 来下载试用版本。

这个组件的体系结构如下:

DotNetBar.Chart Control

ChartXy 对象是绘制 X/Y Chart 的核心,ChartXy 对象主要包括:坐标轴 ChartAxis、图例 ChartLegend等,该对象存放于 ChartContainer 容器中。图形绘制所用到的数据存放于 ChartSeries 对象的 SeriesPoints 属性中,这个属性是一个存储 SeriesPoint 类型的单链表,通过 SeriesType可以设置绘制图形的类型,如 LinePointBarBubbleHiLo等。

关于 DotNetBar.Chart Control 的详细介绍可以参见网址:http://www.devcomponents.com/kb2/?p=1715

绘图的主要步骤如下:
1. CheckData() 在数据可视化之前,先检验是否已经对数据进行了分析。若未分析,则给出提示。
2. SetupContainerStyle(ChartXy chartXy) 设置绘图容器的可视化效果,比如设置蜡烛图使用黑色的背景,直方图使用白的背景等。
3. SetupChartAxes(CharXy chartXy) 设置坐标轴的可视化效果,比如是否显示平行于 XY 轴的辅助线等。
4. SetupChartLegend(ChartXy chartXy) 设置图例是否可见,可选等。
5. SetupCrosshair(CharXy chartXy) 设置鼠标移动到数据点时的可视化效果。
6. SetupDataLabelStyle(chartXy chartXy) 设置直方图上显示信息的效果。
7. AddChartTitle(ChartXy chartXy,string title) 为图形添加标题样式。
8. AddChartSeries(ChartXy chartXy) 为图形添加数据。

通过以上步骤,把数据按照设定的样式进行可视化展示,我做的 Demo 如下:

程序主界面,在这个软件中,可以选择分析一个周期(2年)或者二个周期(4年)的数据。如下图所示:

主窗体

蜡烛图,根据数据绘制蜡烛图,也就是我们常见的 K 线图。

蜡烛图

历史交易曲线,根据数据绘制历史交易曲线,其中包括25、40、50、60、75分位数线,当然这些线可以通过上方的 Legend 选择是否显示。

交易历史曲线

分位数曲线 根据每日的分位数绘制曲线,可以方便的看出这个周期内分位数的变化情况。

分位数曲线

筹码分布 把这个周期的成交数据 分成10个区间段,通过直方图展现每个区间段成交的笔数。这样可以方便的看出,整个市场主要的成交价格分布。
筹码分布

到这里,七天学会「股票数据分析软件」的开发 这个系列的图文就全部介绍完毕了。如果大家有什么问题可以给我留言,我为大家答疑。

我是从7月14日开始写这套软件的,大概7月20日完成,目前只做了部分单元测试,完善之后,我会传到 Github 上,方便大家学习。另外,由于国内是中心化的交易所,只有沪深两家,它们不免费提供交易接口,简直就是坑!

掌握编程技能的人也不得不通过券商手动挂单,降低大家的做事效率。面对这样强势的市场,却又无能为力,但数字货币的交易所是为我们提供免费 API 接口的,作为编程爱好者,可以写自动化交易系统来验证自己的交易策略,在不同交易所之间进行套利,或者在同一交易所内进行三角套利。如果有同学对这块感兴趣,开学后,我们一起来写这块的代码吧。

今天算是暑期的第一天,暑期是学习技能的最好时期,可以有大块的时间不受干扰。趁着难得的清闲,要好好准备一下下个学期的教学任务,把领导的几个项目做完,把明年学校的考核完成。就这样吧!See You!

相关文章:

那些对混合云开发和应用程序环境的错误认识

企业架构师们在开发混合云计算应用程序并为支持程序云计算而选择云计算供应商之前,他们应当好好完成他们的准备工作。选择错误的供应商和在错误的环境中开发应用程序都会对应用程序的运行性能、工作流程、变更成本、以及与客户的沟通和交易带来负面影响。 在本文中&…

2021年UI设计培训机构哪个好

想要学好UI设计,选择报一个专业的UI设计培训机构是非常明智的选择,为什么这么说呢?因为培训机构的课程都是根据当下的行业环境制作出来的,而且有专业老师,比自学要好很多,那么在2021年UI设计培训机构哪个好呢?来看看…

UVA 116 Unidirectional TSP DP

题目链接: https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category3&pageshow_problem&problem52 题目描述: 一个整数矩阵, 求第一列到最后一列的最小整数和, 只能从第一列出发向右&…

C++ 数据类型转换

wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....#include <string>// 使用CString必须使用MFC&#xff0c;并且不可包含<windows.h>#define _AFXDLL#include <afx.h>using namespace std;//-----------------------…

如何准备数学建模竞赛!

昨天早晨&#xff0c;我到教十一实验室的时候遇到史会峰老师&#xff0c;他说正准备给学生们进行数学建模的培训。今天早晨&#xff0c;我又遇到了孔令才老师&#xff0c;他同样也说准备给学生们进行数学建模的培训。看到这么多同事在做这个事情&#xff0c;想想自己也应该贡献…

UI设计培训:UI设计师离不开的基本版式设计

不管你是UI设计&#xff0c;还是工业设计&#xff0c;甚至动画设计&#xff0c;终究离不开基本的版式设计&#xff0c;所以版式设计这块非常考验设计师的基础功力。 1. 大且醒目&美观的排版设计 版面设计大概是一位设计师重要的部分&#xff0c;今年的版面设计会围绕着大且…

我对她说,你能不能换件衣服?换种心情?换种脾气?她说,可以,换个人就行了···...

我跟她说&#xff0c;你能不能换件衣服?换种心情?换种脾气?她说&#xff0c;可以&#xff0c;换个人就行了转载于:https://www.cnblogs.com/yangzhong/archive/2010/07/06/1772124.html

如何通过代码连接SQL Server数据库

我们曾经为南方电网做过几个有关架空线路的科技项目&#xff0c;要趁着假期有整段的空闲时间&#xff0c;把这些代码整理一下&#xff0c;放入团队刚刚重构的代码库中。 由于这些项目使用的数据库为 SQL Server&#xff0c;所以在整理代码之前需要解决两个问题&#xff1a; 把…

选择一个稳定、快速的服务器四大注意事项

要想运营好一个网站&#xff0c;稳定和高速的服务器是必不可少的。可是在选择的时候企业就会很发愁&#xff0c;不知道该考虑哪些因素&#xff0c;不知道该怎么选择&#xff0c;下面我们简单的了解一下如何选择一个稳定性好、快速的服务器。 第一 性能要稳定 为了保证网站能够正…

APP不同上线情况对应的测试流程

一个App软件从研发提测到版本上线都会经过哪些测试流程呢?很多人认为就是进行功能测试&#xff0c;没bug了就提交审核&#xff0c;审核通过就直接上线了&#xff0c;其实不然&#xff0c;有些步骤是需要特别关注的&#xff0c;否则极易造成线上bug&#xff0c;本文千锋教育小编…

iOS 进阶—— iOS内存管理

1 似乎每个人在学习 iOS 过程中都考虑过的问题 alloc retain release delloc 做了什么?autoreleasepool 是怎样实现的?__unsafe_unretained 是什么?Block 是怎样实现的什么时候会引起循环引用&#xff0c;什么时候不会引起循环引用?所以我将在本篇博文中详细的从 ARC 解释到…

Google工作原理

今天在晚上看到一个图&#xff0c;讲解google的工作原理&#xff0c;感觉写的不错。贴过来方便以后深入的研究。 转载于:https://www.cnblogs.com/muyuge/archive/2010/07/06/6152590.html

如何利用ArcGis修改shp数据字段名称

最近在处理一批地理信息数据&#xff0c;其中涉及到对shp文件属性字段的修改&#xff0c;在这里做个记录&#xff0c;以防大家再走弯路。 工具&#xff1a; Arcgis软件shp文件 第1步&#xff1a;打开ArcCatalog&#xff0c;选择左上角的链接文件夹&#xff0c;选择你存放数据…

学java为什么要报java培训班?

学java为什么要报java培训班?对于没有基础的小白来说&#xff0c;选择报java培训班是最合适不过的&#xff0c;自学是没有任何规划的&#xff0c;学到的技术都是模棱两可&#xff0c;工作入职后是存在很大风险的&#xff0c;具体的来看看下面的详细介绍吧。 学java为什么要报j…

Tensorflow 全网最全学习资料汇总之框架平台的综合对比【3】

作为机器学习领域、尤其是 Python 生态圈最受欢迎的框架平台&#xff0c;TensorFlow 具有许多吸引开发者的优点。其中最显而易见的是谷歌的技术支持和完善的社区&#xff08;庞大用户群&#xff09;。这些都为 TensorFlow 的普及打下了基础。但是&#xff0c;开发者需要了解 Te…

空间两点间的距离

空间两点间的距离公式推导&#xff0c;有图有真相 转载于:https://www.cnblogs.com/graphics/archive/2010/07/08/1773966.html

如何利用ArcGis把经纬度转成shp数据

这段时间在处理一批地理信息数据&#xff0c;由于部分数据是经纬度坐标&#xff0c;如下图所示&#xff1a; 这样&#xff0c;面对的第一个问题&#xff0c;就是把这批数据转换成shp格式。下面做一个记录&#xff0c;与大家分享。 工具&#xff1a; ArcGIS 软件 Step1&#x…

新手参加java培训都学什么

互联网的强大使得很多IT技术变得越来越吃香&#xff0c;java技术就是其中的一种&#xff0c;很多人都开始学习java技术&#xff0c;下面小编就为大家分享一些新手参加java培训都学什么?希望能够给零基础的学员带来一些帮助。 新手参加java培训都学什么? 1、对于新手学习java的…

第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理...

第三百三十八节&#xff0c;Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理 网站树形结构 深度优先 是从左到右深度进行爬取的&#xff0c;以深度为准则从左到右的执行&#xff08;递归方式实现&#xff09;Scrapy默认是深度优先的 广度优先 是以层级来执行的…

读懂ConnectString 中 enlist 设置的含义

因为上次遇到在webservice中处理事务的问题&#xff0c;偶然在调试程序的时候对OracleConnection的连接字符串enlist设置的一个有趣的发现。以前看过一篇文章&#xff0c;不记得是什么文章了&#xff0c;文章中说对enlist最好设置为false&#xff0c;当时也没有怎么去深究为什么…

你知道这些 985、211 院校的隶属吗?

前段时间为准备继续深造计算机方向的同学们整理了一些资料&#xff0c;包括&#xff1a; 全国第四轮学科评估结果 – 计算机科学与技术全国第四轮学科评估结果 – 软件工程你知道大陆地区的985、211院校都有哪些吗&#xff1f;你真的知道「专业硕士」与「学术硕士」的11个区别…

新手UI设计师必需要掌握的知识和技能

近几年&#xff0c;许多企业对于UI设计师这个岗位的需求量越来越大&#xff0c;UI设计师的发展空间可见越来越好&#xff0c;想要学好UI设计&#xff0c;必须要掌握足够的知识和技能&#xff0c;下面小编就为大家分享一下新手UI设计师必需要掌握的知识和技能&#xff0c;希望能…

SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板

WCF Data Services是SharePoint 2010中一个极具吸引力的新特性。然而&#xff0c;因为它的强大&#xff0c;直接对其进行编程仍然会有点痛苦。幸运的是&#xff0c;一个新的相关技术 —— ASP.Net AJAX模板 – 可以完美的与WCF Data Service进行集成&#xff0c;并允许我们快速…

如何利用Gephi可视化浏览的网站关系

Gephi 是进行数据可视化的一套开源工具。其利用图&#xff08;有向图、无向图、动态图等&#xff09;的形式来展现数据&#xff0c;方便我们对数据进行探索。今天给大家介绍利用 Gephi 来可视化我们浏览网站之间关系。 首先&#xff0c;安装 Gephi 的 Http 代理插件 HttpGraph…

nginx 启动脚本

#vim /etc/rc.d/init.d/nginx #为nginx提供SysV init脚本#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# …

参加前端培训主要学习什么语言

web前端近几年很多人都在学习中&#xff0c;但是想要学好web前端技术&#xff0c;基础是非常重要的&#xff0c;参加web前端培训机构可以进行系统的学习&#xff0c;下面就给大家详细的介绍一下参加前端培训主要学习什么语言? 参加前端培训主要学习什么语言?前端的基础就是HT…

嘿,程序员,你该学点经济学了!

前言&#xff1a; 笔者一直认为&#xff0c;一个好的程序员。不仅仅是代码敲得好&#xff0c;其它方面的知识和能力相同非常重要。特别是随着年龄的增长。非常多人也慢慢的往管理层发展。这个时候沟通与协调能力变得更加重要&#xff0c;而一些策划。推广方面的知识也相同是必不…

记录一次自己调试代码的过程

今年年初我们做了一套防窃电的软件&#xff0c;其中通讯采取的是串口方式。前段时间&#xff0c;根据现场的反馈&#xff0c;我们增加了蓝牙通讯的功能。系统界面如下图所示&#xff1a; 今天&#xff0c;现场人员反馈说&#xff1a;“解析的数据出现问题”&#xff0c;所以我在…

CBitmapButton的使用(转)

CBitmapButton的使用 CBitmapButton作为MFC的控件类&#xff0c;并不为很多人所使用&#xff0c;因为现在网上遍布着从CButton派生的各种各样的按钮类&#xff0c;其中最为著名的就是CButtonST类了。但是最近在CSDN上看到几个问题都是使用CBitmapButton类&#xff0c;但是由于…

web前端干货:详细了解JS前端开发框架都有哪些

1. Foundation框架 Foundation框架总体来看要比Bootstrap略显高大上一点&#xff0c;但他们俩的设计理念都是非常清楚的&#xff0c;Bootstrap有引导的意思&#xff0c;尝试处理你项目中的一切所需。Foundation有基础、地基及支柱的意思&#xff0c;给项目中强有力的创造与支持…