vfp 网际风

yunle370 2010-01-04 01:54:51
我想自己搞一个简单的股票行情分析软件

但是看了网际风网站问答中的开发简述以后仍然一头雾水,请各位帮帮忙,教教在下怎样实现:
1.vfp连接网际风
2.当vfp接收到网际风传过来的数据以后,能不能自动进行运算

我现在只能给60分了,不能再多给了,前段时间还可以给一百分的
附网际风网站问答中的简述:




答: 网际风是通视(分析家)规范规范兼容数据接口,所以只要按照通视规范的过程开发即可获得股票数据。可以下载分析家规范和网际风接口扩充规范,仔细阅读。程序的运行大体流程如下:

1、首先第一步要安装网际风客户端,这样在C:\Windows\System32目录下就有了网际风的程序,其中Stock.DLL为数据接口模块(里面有API输出),用户的应用程序只跟Stock.DLL打交道,WJFMain.EXE为网络接口模块,负责与网际风服务器的通讯,至于Stock.DLL和WJFMain.EXE之间的交互,由Stock.DLL自动完成,对用户程序是透明的,无需关心。同时注册表中的[HKEY_LOCAL_MACHINE\SOFTWARE\StockDrv] 下的Driver键值会被网际风安装程序修改为指向网际风的数据接口Stock.DLL位置

2、用户程序读取 [HKEY_LOCAL_MACHINE\SOFTWARE\StockDrv] 下的Driver键值,如 "Driver"="stock.dll" ,这就是网际风数据接口的DLL位置,使用注册表读取函数可以取得上述路径,然后使用LoadLibrary加载上述DLL,再使用GetProcAddress取得Stock_Init、Stock_Quit、GetStockDrvInfo等API的入口。

3、使用远程方式调用上面取得的Stock_Init,并传入3个参数(消息处理窗口句柄、消息号、工作模式),消息处理句柄和消息号是用户程序自定义的,是告诉网际风数据接口的关键数据,相当于注册函数,以后网际风给用户程序发送数据都通过上述消息号来通知,如果有数据要发送给用户程序,Stock.DLL就会向上述句柄发送上述消息号,并在消息参数中有数据标识和对应的数据地址,用户程序只需要在上述消息处理函数中,对传过来的地址指针取数据即可,消息处理范例参考上述的分析家规范。简单说,用户程序只要调用一次Stock_Init,然后就坐等网际风给你发消息了,如果有行情变化,数据就会不请自来,你只对消息参数处理即可,用户主动请求的数据也是以消息模式传送过来。

4、用户程序卸载驱动时,可以调用Stock_Quit,相当于告诉Stock.DLL我不需要数据了。再调用FreeLibrary卸载上述DLL。

这就是网际风数据的处理大概流程,至于对网际风Stock.DLL传过来的数据如何处理,需要用户设计一个数据模型来进行存储,如将全天的全部行情存储起来,就可以得到分笔数据,对分笔数据进行合并就可以得到分时,如果分段统计,可以得到1分钟和5分钟或其他分钟K线,对每天数据进行收盘,就可以得到历史K线,这些都是股票程序要做的数据管理工作,像分析家和飞狐,这些数据管理工作都做得很好,如果你要做一个完整的股票程序,这些工作必不可少,网际风只是一个数据源程序,而不是一个数据中心程序,有些用户想通过网际风获得某只股票某个时间点的价格,或者一段时间的价格,这些都无法做到,只有靠用户的程序对行情数据进行管理维护,才可以随心所欲获得上述数据。如果只想获得所有股票当前的最新价格,那只要将收到的最新行情数据对用户自定义的缓冲区进行刷新,对用户自定义的缓冲区进行查询即可获得所有品种当前的最新价格数据,相对比较简单。如果你对上述API和DLL的调用比较畏惧,那可以使用网际风提供的TTD软件,可以将上述内存数据实时刷新到磁盘的DBF文件,用户只需访问DBF文件即可获得最新行情数据,TTD将对内存数据的访问转换为对磁盘文件的访问,降低开发难度,在Linux环境下也适用。
...全文
1113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
muozidan 2011-01-11
  • 打赏
  • 举报
回复
我用C++,写程序没有问题。

请问楼主,stock.dll在哪里可以拿到?

Stock.dll与哪个程序通讯,即先要把哪个程序运行?
muozidan 2011-01-11
  • 打赏
  • 举报
回复
看看。

我也想自己接收数据。

但是调用stock.DLL没有反应。
DevilsAreTremeble 2010-09-08
  • 打赏
  • 举报
回复
看看情况先了~~~~
mdsorphen 2010-02-09
  • 打赏
  • 举报
回复
看看情况先了~~~~
yunle370 2010-01-04
  • 打赏
  • 举报
回复
非常感谢春泥,先结账,回去慢慢试
等有不明白的再来麻烦老师
trainee 2010-01-04
  • 打赏
  • 举报
回复
1, 读取reg键值, 在VFP的帮助示例有个例子
2, DLL函数, 用DECLARE DLL 声明完后, 就可以调用, 清除DLL ,用CLEAR DLL
3, 消息绑定
建立一个表单, 先定义一个自定义事件RECEIVE_MSG
PARAMETER MSG_HWND,MSG_ID,MSG_A,MSG_B
-- 要有4个参数, 接收消息参数, 消息的附加资料可能是后面2个的
-- 处理你的消息,你的数据
...
return
-- 事件结束.

消息绑定事件,用这语句
BINDEVENT(THISFORM.hWnd , nMessage, THISFORM, 'RECETVE_MSG', 4)

祝你成功
yunle370 2010-01-04
  • 打赏
  • 举报
回复
ttd是要银子的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
看来我要从vfp8→vfp9了

还有一个stock.dll 中提供的那些函数该怎么用呀,我对这个实在是一窍不通,而且我也只会用vfp。听人家说学会c语言会很有好处,现在才刚开始学,一时半时也搞不定。

我不是专业程序员打算写的这个程序也不是为了商用,只是觉得现在市面上提供的分析软件太假,我看到有人用Java script 和vfp结合,自己写了一个分析软件,所以我也想搞一个。这个帖子我每天中午和晚上会个来回复一次,所以肯请各位帮帮忙
都市夜猫 2010-01-04
  • 打赏
  • 举报
回复
既然 TTD 可以将数据保存到 dbf 文件,直接读取 dbf 不就行了?
trainee 2010-01-04
  • 打赏
  • 举报
回复
可以用VFP9。0做到
VFP有消息绑定语句
BINDEVENT(hWnd | 0, nMessage, oEventHandler, cDelegate [, nFlags])
可以将消息绑定到自定义的事件上,
自定义的事件cDelegate要有4个参数,来接收消息数据
具体看一下帮助文档。
thinclient 2010-01-04
  • 打赏
  • 举报
回复
顶你一下

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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