用C#winform如何开发类似于股票软件K线图

nbhx2010 2012-11-21 03:48:20
开发环境: VS2008 + C# + Winform窗体程序

实现功能:
1. 类似于股票软件的某只股票的分时图

这个分时图是按照一天4个小时来划分图形的
我一天是要按照24个小时,那这样子图形上显示起来就很小了,该如何设计呢?

2. 类似于股票软件的日线图

这种形式,按下键盘的光标左右键,可以将其它前天,上个月,甚至上年的数据都显示出来
这种模式是如何处理的?

懂股票软件相关的进来说说看。绘图设计该怎么设计

我要实现2个基础功能
1. 一个就是当天24小时内的数据显示,上部分用曲线图,下部分用方柱。
比如11:05分的时候,数据是55;
11:38分的时候,数据是102;
12:35分的时候,数据是251;
13:10分的时候,数据是400;
时间和数字对应起来。

如果在一个画面内显示24个小时,那绘图显示的格子会很小,看起来应该很拥挤了吧?股票软件只有4个小时

2. 第2个功能就是像某只股票的日线图一样,把一个月内或者一年内的K线图显示出来,我只要数据信息就行,但是一个画面肯定显示不下,该怎么像股票软件一样一动键盘的左右键就能显示数据绘图呢??


欢迎大家讨论,给点意见。






...全文
5128 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
newsearch 2015-05-26
  • 打赏
  • 举报
回复
楼主没有搞明白自己要干什么,版主很生气
dadaweini2010 2014-06-22
  • 打赏
  • 举报
回复
引用 15 楼 wanghui0380 的回复:
另外,如果你仔细看界面,实际还有一个“周期”选项,我们可以按分钟看,也可以按30分钟看 所以你只要知道绘制图形不是死滴,那是根据客户需要自己调节的,你就不会问这个问题了。你图嫌小了,自己看放到图,自己调整周期,权利放给客户,他自己喜欢怎么看就怎么看
想请问 画这个K线图要用什么插件 还是说chart可以实现?谢谢
akgjh1 2012-12-26
  • 打赏
  • 举报
回复
用zedGraph 以前我有做一个mis软件没有用zedGraph,是直接在控件上面画。先把点绘出来,然后连线。 可以拉长时间或者缩短时间,每次放大缩小相当于重新把取得数据整理提取,重绘图形。
Assassin_ 2012-12-26
  • 打赏
  • 举报
回复
bdmh 版主 平常那么和善!!今儿咋了!!!!
Assassin_ 2012-12-26
  • 打赏
  • 举报
回复
引用 9 楼 bdmh 的回复:
下回问问题,把重点放到前面,别上来说一堆股票相关,贴图也贴股票图,说到最后,跟股票没半毛钱关系,做了这么多年股票软件,对这个很敏感
大牛!
bigbaldy 2012-12-26
  • 打赏
  • 举报
回复
引用 9 楼 bdmh 的回复:
下回问问题,把重点放到前面,别上来说一堆股票相关,贴图也贴股票图,说到最后,跟股票没半毛钱关系,做了这么多年股票软件,对这个很敏感
幸会呀,我原来是在证券公司工作的,不过做的经纪人,现在转开发了
SNAKE-SNAKE 2012-12-26
  • 打赏
  • 举报
回复
他说那意思是股票交易晚上不开盘吧?……可是你得这么想……美国开盘……哈哈~
vampirezio 2012-12-26
  • 打赏
  • 举报
回复
a123465123465 2012-11-22
  • 打赏
  • 举报
回复
zedGraph可以满足要求的
wanghui0380 2012-11-22
  • 打赏
  • 举报
回复
另外,如果你仔细看界面,实际还有一个“周期”选项,我们可以按分钟看,也可以按30分钟看 所以你只要知道绘制图形不是死滴,那是根据客户需要自己调节的,你就不会问这个问题了。你图嫌小了,自己看放到图,自己调整周期,权利放给客户,他自己喜欢怎么看就怎么看
wanghui0380 2012-11-22
  • 打赏
  • 举报
回复
呵呵,看图挺熟悉啊,同花顺是吧 lz问错问题了,类似分时图一般是个chart控件都可以绘制,这个不是难点,因为你问股票,所以我们直觉认为你要K线图,如果是k线图相关的控件就很少了 ps;区间大小不是问题,比如你k线图,就普通屏幕就能显示大概3个月连续数据,这比你24小时要多的去了,同样一般也有几个选项操作,比如区间放大,比如按振幅绘制还是按涨停线绘制,而且那些点其实也不是实际的点,那些点都是加权平均过的点。呵呵,经常开盘就知道,有时候会突然高跳几个点,但下一刻这个线就消失了,why,这就是说他的图形绘制不是实时数据,而是加权平均数据
Sheldon_Lou 2012-11-22
  • 打赏
  • 举报
回复
,,,,居然吵起来了,,,, 用zedgraph
风吹腚腚凉 2012-11-22
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
你们家分时图按24小时画啊,时间越多肯定线条就越多啊
看来版主今天心情不好啊,您女儿惹你生气了?
  • 打赏
  • 举报
回复
哪里获得数据?只要有数据都好处理.
Nihn 2012-11-21
  • 打赏
  • 举报
回复
引用 9 楼 bdmh 的回复:
下回问问题,把重点放到前面,别上来说一堆股票相关,贴图也贴股票图,说到最后,跟股票没半毛钱关系,做了这么多年股票软件,对这个很敏感
原来版主是做股票软件的,幸会幸会!
bdmh 2012-11-21
  • 打赏
  • 举报
回复
下回问问题,把重点放到前面,别上来说一堆股票相关,贴图也贴股票图,说到最后,跟股票没半毛钱关系,做了这么多年股票软件,对这个很敏感
nbhx2010 2012-11-21
  • 打赏
  • 举报
回复
引用 7 楼 bdmh 的回复:
4个小时都搞不懂,还搞什么24个小时,如果给你2400个小时,你也按2400小时画格子?你就不知道合并,你看看分时图,k线图下方的日期和时间,哪个是一个个并排都显示的,你只需要某个区间画一条线就够了,其他可以不画
现在你看懂我在说什么了? 你的理解能力实在堪忧啊 连中文都搞不懂,你就装大老虎了,呵呵
bdmh 2012-11-21
  • 打赏
  • 举报
回复
4个小时都搞不懂,还搞什么24个小时,如果给你2400个小时,你也按2400小时画格子?你就不知道合并,你看看分时图,k线图下方的日期和时间,哪个是一个个并排都显示的,你只需要某个区间画一条线就够了,其他可以不画
绘图区域的宽除以根数,大不了有一些坐标的x轴是一样的值,但不影响你整体的走势图
所有数据在内存列表中,即使通过鼠标移动,如果x轴坐标一样,只需要显示列表中下一个的值,而不需要移动鼠标划线位置
nbhx2010 2012-11-21
  • 打赏
  • 举报
回复
引用 4 楼 bdmh 的回复:
你到底懂不懂啊,每天交易4个小时,你24小时也是4个小时数据,从哪来24小时是数据
你是不是有毛病的啊?我有说过要做股票软件吗? 你简直神经啊 我从主题帖开始就没说过要做股票软件。什么交易4小时?我说过我的软件跟交易4小时有关系吗? 我帖子里说股票软件类似,只是几个功能界面图比较类似,尼玛的我做的是24小时的自动生产统计图 我看你还是别废话了,简直神经啊。
zagj11 2012-11-21
  • 打赏
  • 举报
回复
24小时数据的是 外汇
加载更多回复(4)
没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int b = 100; float j = 4.5; string s1; 用 object 可以表示所有的类型。 预定义类型 下表列出了预定义类型,并说明如何使用。 类型 object 说明 所有其他类型的最终 基类型 字符串类型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int val = 12; long val1 = 12; -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号整型 byte val1 = 12; ushort val1 = 12; uint val1 = 12; uint 32 位无符号整型 uint val2 = 34U; ulong val1 = 12; ulong val2 = 34U; ulong 64 位无符号整型 ulong val3 = 56L; ulong val4 = 78UL; float 单精度浮点型 float val = 1.23F;7 位 double val1 = 1.23; double 双精度浮点型 double val2 = ±5.0 × 10?324 ±1.7 × 10 308 0 到 255 0 到 65,535 0 到 4,294,967,295 0 到 18,446,744,073,709,551,615 ±1.5 × 10?45 ±3.4 × 10 38 到 到 4.56D;15-16 布尔型;bool 值或为 真或为假 字符类型;char 值是 一个 Unicode 字符 精确的小数类型, 具有 28 个有效数字 bool val1 = true; bool val2 = false; char val = 'h'; decimal val = bool char decimal DateTime ±1.0 × 10?28 ±7.9 × 10 28 到 1.23M;28-29 变量转换 简单转换: float f = 100.1234f; 可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#WINFORM)学习 C# Convert.ToBoolean Convert.ToByte Convert.ToChar Convert.ToDateTime Convert.ToDecimal Convert.ToDouble Convert.ToInt16 Convert.ToInt32 Convert.ToInt64 Convert.ToSByte Convert.ToSingle Convert.ToString Convert.ToUInt16 Convert.ToUInt32 Convert.ToUInt64 备注 Math 类 常用科学计算方法: C# Math.Abs Math.Sqrt Math.Ro

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧