我买了700股上墒兄滴30.0000万股是多少股元,我可以申请新股吗

我买了700股上墒兄滴0000元,我可以申请新股吗_百度知道
我买了700股上墒兄滴0000元,我可以申请新股吗
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
过去20个交易日,最近2个交易日不算,即T-2之前20个交易日沪市日均10000元市值,可以申请一个新股号深市日均5000元市值可以申请一个新股号对当日有多支新股的,可以重复使用申购,
采纳率:70%
来自团队:
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没想到:2元股也会遭腰斩 10倍市盈率的股票也会大跌|安迪苏_新浪财经_新浪网
没想到:2元股也会遭腰斩 10倍市盈率的股票也会大跌
没想到:2元股也会遭腰斩 10倍市盈率的股票也会大跌
新浪财经第四届金牌董秘暨上市公司网络影响力评选正式启动,谁是你心中的金牌董秘?谁是你心目中的行业美誉典范、榜样大咖?你的一票,最有说服力! 
&&&&&& 证券时报e公司
  低价股、低市盈率股也大跌
  简单看价格和市盈率投资,或许会跌入陷阱。
  又一只跌破1元的股票出现。昨日,以1.02元开盘,早盘一度跌至0.99元,收报1.02元,下跌1.92%。截至收盘,该股年内跌幅已经高达47.42%。值得一提的是,该股去年底收盘价只有1.94元。有投资者表示,没想到原来一两块钱的股票还能跌到1块钱甚至以下。
  简单看价格和市盈率投资,或许会跌入陷阱。
  数据宝统计显示,去年底收盘价在4元以下的股票,今年平均跌幅近20%,大幅跑输大盘同期表现。其中,、、等26股年内跌幅超过30%。
  具体看,去年底收盘价3.97元的正源股份(已更名*ST正源),今年以来股价累计下跌61.46%,位居跌幅榜首位;
  去年底收盘价3.88元的安源煤业(已更名*ST安煤),今年以来股价累计下跌55.93%,位居跌幅榜次席;
  去年底收盘价3.21元的智慧农业(已更名*ST慧业),今年以来股价累计下跌53.89%,位居跌幅榜第三位。
  去年收盘价不足2元的股票,也有2只出现大跌,中弘股份年内下跌近50%%,年内下跌近35%。
  事实上,这些股票看上去很便宜,但估值并不低。数据显示,上述26只股票中,有8只股票去年底滚动市盈率为负,5只股票去年底滚动市盈率超过百倍。
  一些看起来跌无可跌的股票,或许不安全。相对于价格低的迷惑性,低市盈率陷阱更加隐蔽。
  数据宝统计显示,去年底滚动市盈率低于15倍的股票,其今年平均跌幅近14%,也跑输大盘同期表现。其中,22只股票年内跌幅超过30%。
  具体看,去年底滚动市盈率不到12倍的,股价年内下跌57.38%,位居跌幅榜首位;
  去年底滚动市盈率同样不到12倍的,股价年内下跌50.5%,位居跌幅榜次席;
  去年底滚动市盈率不到11倍的,股价年内下跌44%,位居跌幅榜第三位。
  更有去年底市盈率不到10倍的股票也出现暴跌,如、、、等。尴尬的是,经过一轮调整,部分股票的市盈率竟然大升,比如大连友谊市盈率突破200倍,市盈率图突破50倍。
  龙虎榜追踪 资金最青睐这些个股
  6月20日龙虎榜中机构及营业部席位资金净卖出2.72亿元,其中净买入的个股有15只;净卖出的个股有28只。净买入前三名个股分别是、、,净买入金额占当日成交额比例达11.35%、3.89%、31.51%。
  从盘口资金流向来看,主力资金净流入超千万且龙虎榜净买入个股共有11只,其中远望谷、海南瑞泽、等个股资金净流入金额最大。净流入力度最大的个股有中钢国际、、,净流入力度分别为37.84%、32.64%、31.32%。
  连涨7天 吸金3亿元
  最新数据显示,两市共有18只个股连续上涨超过三个交易日,7只个股连续上涨超过五个交易日,连涨天数最多的前三名分别是(8天)、绿地控股(7天)、(6天)。连涨个股期间累计涨幅最大前三名分别是红宇新材(60.92%)、(38.03%)、(23.32%)。
  值得注意的是,18只连续上涨个股中,4只个股期间主力资金累计净流入超过亿元。其中,累计资金流入最多的为绿地控股,主力资金累计流入3.07亿元。
  6只股走稳 短期均线现金叉
  截至6月20日收盘,有6只A股的5日均线主动上穿10日均线,其中、、等个股的5日均线较10日均线距离最大,分别达0.91%、0.64%、0.33%。
  等股放量滞涨
  最新数据显示,两市共有40只A股放量滞涨,其中、、等个股5日量比最大,分别达3.31、2.96、2.37。
  值得注意的是,40只放量滞涨股中,、安迪苏个股主力资金净流入最多。
  注:本资讯后4张表格已剔除近一年上市新股。
  (数据宝)
责任编辑:陈悠然 SF104
文章关键词:
@@status_text@@
图文直播间
视频直播间我在我的证券户上可以买上市的股票,一委托深市的上面提示该证券代码不存在,我当是也开深市了,请问有老师知道吗?
如果确定输入的股票代码没有错误,那就要上开户的证券公司查询。
其他答案(共5个回答)
的证券公司查询。
股票:A股代码为600***,可转换债券转股代码为181***,B股代码为900***.例如:邯郸钢铁代码为600001,南债转股代码为181001,真空B股代...
要约收购是指收购人向被收购的公司发出收购的公告,待被收购上市公司确认后,方可实行收购行为。它是各国证券市场最主要的收购形式,通过公开向全体股东发出要约,达到控制...
很可能是软件有问题了
你就知道 哪间公司的 证券代码 是多小就可以买了
当创业板股票上市首日盘中成交价格较当日开盘价首次上涨或下跌达到或超过20%时,深交所可对该股实施临时停牌30分钟;首次上涨或下跌达到或超过50%时,深交所可对其...
答: 股票配资什么人适合做?
答: 中国理财服务网的网站我经常去那里逛.时间长了,也学会很多理财的知识,这个网站真的很不错,可以分享给大家。你可以再百度里搜索 “中国理财服务网”
找到 “中国理...
答: 区别不大,都是理财,反正风险是差不多的。
经济时代,就是要搞活经济。以前都说基金风险小,但目前的行情,基金仍然是震荡的,风险小于股市,最保险的事债券,但受益也最...
答: 商业银行仅限于买卖政府债券;投资基金公司主要运作对象是各类债券和股票;证券公司、信托投资公司的证券部等证券专门经营机构,既可进行股票和债券的代理买卖,也可进行股...
每家运营商的DNS都不同,而且各省的也不同。你可以问问你的网络提供商,他们会告诉你的。(也可以通过分别访问域名和IP来检查DNS是否正常,访问域名不行,而访问IP可以,则说明DNS设置不对)
另外,如果ADSL-电脑没问题,一般ADSL-路由器也没问题的。而且采用ADSL拨号的话,DNS可以不设置的,拨号成功后会自动取得DNS服务器。
问题可能出在路由器设置上。进去检查一下吧。看看上网方式,上网用户名密码是否正确。
(有个问题要注意一下,有些地方的运营商会限制使用路由器或者限制接入数量,一般是采取绑定网卡MAC地址的方式,如果路由器设置都正常,试试路由器的MAC地址克隆功能,把电脑网卡的MAC复制过去)
这个问题有点不知所问了。
公务员并不由单位性质决定,行政单位行政编的是公务员,但并不是说行政单位的就是公务员,事业单位里面参照管理的也是公务员。
所以你的问题只能回答为:按公务员管理的是公务员。
工行的网银没有软键盘,主要通过安全控件来保证安全,只有安装了工行的安全控件,才能在工行网页上输入密码。
修改密码的操作,你可以在登陆工行网银以后,在“客户服务”的“修改客户密码”里找到相关链接。
T(true)代表正确 F(false)代表错误
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415股票数据格式
我的图书馆
股票数据格式
1.1证券代码列表
证券代码列表对应文件为 dzh安装目录 \ internet \ tcpipdata \ index.dat 文件,该文件在大智慧每次启动时被删除,并重新从服务器上下载。
文件结构描述如下:
(1)文件大小 = 证券数量 × 9字节(每个证券占用 9 字节)
(2)每个证券内容描述
(2.1)1~2字节:排序序号,从0开始编号计数 == 2字节的整数
(2.2)3~8字节:证券代码 == 6字节的ASCII字符串
(2.3)9~9字节:统一为0x00,无特殊意义,可能是作为分隔符
1.2证券名称列表
证券名称列表对应文件为 dzh安装目录 \ internet \ tcpipdata \ init.dat 文件,该文件在大智慧每次启动时被删除,并重新从服务器上下载。
文件结构描述如下:
(1)文件大小 = 头部字段28字节 + 证券数量 × 32字节(每个证券占用 32 字节)
(2)头部字段
(2.1) 1~8字节:大智慧最后一次联网的日期,8字节ASCII字符串
(2.2) 9~10字节:未知
(2.3)11~12字节:证券数量
(2.4)13~28字节:未知
(3)每个证券内容描述
(3.1)1~8字节:证券名称
(3.2)9~14字节:证券代码
(3.3)15~16字节:证券代码类型
(3.3.1)0x1F 0x00一般证券(场内交易的股票和基金等)
(3.3.2)0x1E 0x00 证券指数(上证指数、深圳)
(3.3.3) 0x20 0x00 证券指数(沪深300指数等)
(3.4)17~32字节:未知
自选股文件保存位置:dzh安装目录 \ CFG \ netwrkic.bk2
文件结构描述如下:
(1)文件最开始的4字节:自选股板块的数目
(2)后面是每个板块的内容按顺序描述如下(长度不定):
(2.1)4字节:板块编号,4字节整数
(2.2)1字节:板块名称的长度(单位为字节,一个汉字占用两个字节),1字节整数
(2.3)20字节:板块名称,20字节字符串。板块名称最长20字节,默认名称为“自选”加序号,所以修改名称后,在二进制文件中可能出现Love11的情况(04 4C 6F 76 65 31 31),这种情况不用理会后面的两个31,直接根据名称长度04取四个字节即可。
(2.4)4字节:该板块中证券的数目,4字节整数
(2.5)14字节:板块中证券的内容
(2.5.1)2字节:证券类型 0x00 0x06 上海股票;0x01 0x06 深圳股票
(2.5.2)6字节:证券代码,6字节字符串
(2.5.3)6字节:未知
日线文件保存位置:
上海:dzh安装目录 \ DATA \ SHase \ Day ,深圳:dzh安装目录 \ DATA \ SZnse \ Day ,名称为“证券代码.day”。
文件结构描述如下:
(1)文件大小 = 证券数量 × 40字节(每个证券占用 40 字节)
(2)每个证券内容描述
(2.1)1~4字节:日期 == 4字节的整数
(2.2)5~8字节:开盘价 == 4字节的整数(数值=真实开盘价×1000)
(2.3)9~12字节:最高价 == 4字节的整数(数值=真实最高价×1000)
(2.4)13~16字节:最低价 == 4字节的整数(数值=真实最低价×1000)
(2.5)17~20字节:收盘价 == 4字节的整数(数值=真实收盘价×1000)
分析家分笔数据文件结构
起止地址& 数据内容&&&& 数据含义& 数据类型 --------HEAD----------------------------00 - 03& F4 9B 13 FC 文件标志 Integer 04 - 07& 10 02 00 00 保留 Integer 08 - 0B& 00 91 40 3D 保留 Integer 0C - 0F& D2 02 00 00 证券总数 Integer 10 - 13& 51 05 00 00 需添加之起始块号 Integer 14 - 17& 50 05 00 00 当前最后空块号 Integer-------TABLE records----------------------------18 - 21& 33 39 39 30 证券代码 Char[10] 22 - 25& 30 31 00 FF 分笔交易记录数 Integer 26 - 57& FF FF BA 03...FF FF 记录块号 Word[25](ushort数组)...records list..------BODY DATA-----&& 地&& 址&&& 数据内容&&& 数据含义&&&&&& 数据类型&&&&& 41000 -
66 3D 日期&&&&&&&&&& Integer&&&& 41004 -
18 41 最新价&&&&&&&& float41008 -
B4 43 累计成交量&&&& float4100C -
A7 48 累计成交金额&& float41010 - 41011 EA AA&&&&&& 委买量1&&&&&&& ushort& 41012 - F&&&&&& 委买量2&&&&&&& ushort41014 - &&&&&& 委买量3&&&&&&& ushort41015 - &&&&&& 委卖量1&&&&&&& ushort41018 - B&&&&&& 委卖量2&&&&&&& ushort4101A - &&&&&& 委卖量3&&&&&&& ushort4101C&&&&&&&& 16&&&&&& 委买价1的小数部分 Byte4101D&&&&&&&& 9A&&&&&& 委买价2的小数部分 Byte 4101E&&&&&&&& 80&&&&&& 委买价3的小数部分 Byte 4101F&&&&&&&& 40&&&&&& 委卖价1的小数部分 Byte 41020&&&&&&&& 30&&&&&& 委卖价2的小数部分 Byte41021&&&&&&&& 57&&&&&& 委卖价3的小数部分 Byte41022 - &&& 买入,卖出标识&&&& Byte
1.)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;2.)从41000h开始每4068byte为一股票数据存储块,每个股票数据存储块共存储113条记录,每一
条记录的长度为36 byte:&&& 具体含义如上表41000h - 41023h所示;3.) 日期字段意义均为:实际日期 = CDate('')+(日期字段 div 86400);即“日期字
段”除以86400所得数为&&& 实际日期距日的天数。4.)委买,委卖价由最新价加委买,委卖价小数部分得到,如:&& 委买价1的小数部分=16h(&80h), 则委买价1=最新价+32/100;(16h=32d)&& 委买价2的小数部分=9Ah(&80h), 则委买价2=最新价-(256-154)/100;(9Ah=154d)5.)单笔成交量用本笔累计数减上笔累计数得到,&& 若买入,卖出标识为80h,则单笔成交量是买入量;&& 若买入,卖出标识为C0h,则单笔成交量是卖出量。
大智慧是比较有名的股票软件,我将通过一系列的文章,剖析其数据结构,这里先给出日K线的数据结构日线数据放在:%app_dir%\DATA\SHase\Day(上证A股) 以及 %app_dir%\DATA\SZnse\Day(深圳A股)#pragma once
struct DZH5Day{&//date的格式:&//开盘价&//最高价&//最低价&//收盘价&un//成交金额&un//成交数量&char unused[12];//保留};整个结构共40个字节,读者可以查看所有的日线文件,大小肯定是40的倍数这样很容易读出相应的数据:如:FILE* pFile = fopen("600001.day", "rb");if (NULL != pFile){&&&while(!feof(pFile))&&&{&&&&&&DZH5Day dayK;&&&&&&fread(&dayK, sizeof(DZH5Day), 1, pFile);&&&&&&......&&&}}
&re: 大智慧5股票软件数据结构剖析(1) -- 日K线数据结构
你好,我刚刚接触股票类软件,对大智慧5的数组结构, 对实时的数据文件和结构不清楚,想对实时数据做解析而又无从下手.看到你的文档,想你一定是很清楚,特此来问问.大智慧的实时文件是放在"D:\DZH5\DATA\SHase\MINUTE.DTA"和"D:\DZH5\DATA\SHase\STKINFO.DTA"文件中吗?要是读文档内容的话,数据结构是什么?如清楚请告,谢谢..toney_&&&&&&
[原创]分析家数据读取及转换工具V0.7 (5月7日更新)
分析家数据读取及转换工具使用说明
&&&&V0.7新增功能:
&& (更新: 分笔成交数据中的"内盘"和"外盘"标志搞反了,已更正(动态行情中的"内盘"/"外盘"字段没有问题))
&&&&分析家数据读取及转换工具V0.7版增加了以下功能:
(1) 可以象读取其它数据一样方便地读取复权行情和收盘收益率;
(2)增加了一个命令行工具fxj2txt.exe,可以将分析家数据转换为文本,供个别不方便调用DLL组件的软件(如SAS等)调用;
(3)提供了一个直接读取分析家数据的SAS程序();
(4)提供了一个利用FinData.dll创建Wealth-lab数据读取插件的实例程序()。
&&&&V0.6新增功能:
&&&&分析家数据读取及转换工具V0.6版增加了以下功能:
(1)可以读取用户板块和股票评级数据;
(2)可以读取板块指数各类数据;
(3)可以读取市场代码和名称、表名,生成创建对应SAS数据表的PROC SQL语句;
(4)将分析家数据读取器整合到组件中,可以在语言中直接调用,同时增加了将读取出来的数据保存为文本文件的功能;
(5)增加了一个分析家数据转换工具(也可以在程序中直接调用),该转换工具可以一次性将各类分析家数据直接转换为文本文件(字段间的分隔符可以自定义,可以生成容易被EXCEL等读取的格式);
(6)修正了读取基金、权证报价时存在的一个BUG;基金、权证的报价保存三位小数位。
&&&&简介:
&&&&用户一般采取两种方法读取分析家软件的各类数据:一种是先使用数据转换工具将分析家数据转换为某种格式,然后在软件中读取转换后的数据,这种方法无需要编写数据读取程序,操作简单,但难以灵活控制数据读取;另一种办法是通过编程直接读取分析家数据,这种方式较为灵活,但要求深入了解分析家数据存储结构,且熟悉文件I/O操作编程知识。“分析家数据读取 及转换组件”不仅提供了数据转换工具——“分析家数据转换器”,还提供了介于上述两种方法之间的另一选择——“分析家数据读取及转换组件”。分析家数据读取及转换组件是一个DLL,它可以通过方便地在各种语言中直接调用而读取分析家数据,用户不需要了解分析家数据存储结构,不需要自己编写数据读取程序,只需要少量编程知识就可以获得所需数据并进行加工处理 ;它还可以在各种语言中直接调用分析家数据转换工具将各类数据转换为文本文件。分析家数据读取组件采用C#开发,安装程序时会自动注册成为COM组件,可以在支持COM和.NET的语言中(如VB、Office VBA、VBS、Delphi、C#、VB.NET、C++.NET、J#、SAS、Matlab等)直接调用。该组件工具是免费的。源码可从下载。
&&&&主要功能:
&&&&1、既可以读取分析家一般数据,如证券代码表、日线数据、复权行情数据及收益率、当日分笔数据、历史分笔数据、当前最新行情、5分钟线行情、除权数据、财务数据 、板块数据等,也可以读取专业数据,如资产负债表数据、损益表数据、现金流量表数据、财务分析指标、股本结构、分红送配、十大股东、基金周报、基金投资组合 、股票评级等数据;
&&&&2、可读取沪、深、港等各个市场的已安装数据;读取时无须关闭正在运行的分析家软件;
&&&&3、可以从注册表中读取出市场代码及名称,也可以以表格形式列出数据表名及对应文件名、字段信息(如字段名和字段说明),以便于程序自动处理 ;可以生成创建SAS表的语句;
&&&&4、提供了分析家数据读取器和数据转换器,可以直接在程序中调用读取器和转换器;
&&&&5、提供了一个用于演示和测试调用结果的工具;同时提供VBA、VBS、SAS等语言调用实例(SAS调用实例见)。
&&&&版本说明:
&&&&目前组件最新版本为0.6版,主要支持分析家6.0。如果分析家版本为6.0以下,则部分功能无法使用。
&&&&下载安装方法:
&&&&(如果已安装了旧版本请先用提供的Uninstall工具删除!)&&&&首先,访问http://www.sasfans.com等网站下载安装文件。 解压后,双击安装文件开始安装,安装程序会自动检测系统是否已安装了.NET框架2.0中文版(.NET Framework 2.0),如果未安装则安装程序会提示安装(安装程序会.NET Framework 2.0下载页面;或者从这里直接下载:);最后,根据提示完成安装(一直点击“下一步”即可)。安装成功后,将在指定目录(默认为C:\FinData)生成:FinData.dll(组件)、FinData.tlb(COM类型库)、FinDataTools.exe( 分析家数据读取及转换工具) 、Fxj2Txt.exe(分析家数据转换命令行工具)、FinDataTools.xls(EXCEL调用例子)、FinDataTools.vbs(VBScript调用例子)等,同时将在“程序”菜单中创建一个名为“FinData”的菜单,包括“FinDataTools数据工具”、“卸载”等快捷方式。&&&&使用方法:
&&&&调用方法与其它COM/.NET组件一样。
&&&&例如,安装后要测试一下是否注册成功为COM组件,可以创建一个VBS文件(扩展名为.VBS),键入以下两行:&&&&&&&&set fxj = createobject("findata.fxjdata")&&&&&&&&fxj.ShowFxjReader()
&&&&执行时如果正确显示分析家数据读取器窗口,说明注册成功。把上面第二行换为fxj.ShowFxjConverter()则可以打开分析家数据转换器,等等。
&&&&再举一个在EXCEL VBA中的调用例子:打开EXCEL Visual Basic编辑器,双击打开“工程”中的“ThisWorkBook”,点击“工具”、“引用”,在“可使用的引用”列表中找到并选择“FinData金融数据 工具”后确定。在ThisWorkBook代码区输入如下代码:Sub ReadFxjData()&&&&'调用组件,读取数据保存在变量X中&&&&Dim x As Variant&&&&Dim fxj As New FinData.FxjData&&&&x = fxj.GetData("hq", "SZ000001") ‘读取数据保存在X中&&&&'以下语句将数据保存在工作表中&&&&For i = 0 To UBound(x, 1)&&&&For j = 0 To UBound(x, 2)&&&&&&&&ThisWorkbook.Worksheets(1).Cells(i + 1, j + 1) = x(i, j)&&&&Next&&&&NextEnd Sub按F5运行。其中关键语句是x = fxj.GetData("hq", "SZ000001"),只要改变方法GetData中的参数就可以读取到不同的数据,返回的X是一个二维 字符串数组。&&&&在.NET语言中调用方法也很简单,主要语句如下:&&&&FinData.FxjData fxj = new FinData.FxjData();&&&&string[,] s = fxj. GetData("hq", "SZ000001");
&&&&上面只是一些例子,具体功能的使用见以下说明。
&&&&组件方法和属性说明:&&&&(1)方法GetData 语法:public string[,] GetData(string dataType, string code) 或 public string[,] GetData(string dataType, string code, string newFileName)功能:读取各类数据参数说明:dataType为数据类型,目录允许的值如下:“dm”——代码表,对应分析家文件stkinfo51.dat“hq”——日行情,对应分析家文件day.dat“hqmb”——每笔成交,对应分析家文件report.dat或*.prp“hq0”——最新行情,对应分析家文件stkinfo51.dat“hq5”——五分钟线,对应分析家文件min.dat“fp”——分红送配,对应分析家文件exprof.fdt“gb”——股本结构,对应分析家文件capital.dat“gd”——十大股东,对应分析家文件stkhold.dat“cq”——除权数据,对应分析家文件stkinfo51.dat“cw”——专业财务数据,对应分析家文件finance.fdt“cw0”——最新财务数据,对应分析家文件stkinfo51.dat“jjjz”——基金周报,对应分析家文件fundweek.fdt(V0.5中该代码为jjzb,现改为jjjz,“基金净值”拼音首字母)“jjzh”——基金投资组合;对应分析家文件funddiv.fdt
“bk”——板块;对应分析家文件*.blk
“pj”——评级;对应分析家文件:评级.str
“hqfq”——复权行情。复权计算方法与一般行情软件有所不同:只对日线数据中的开盘价、最高价、最低价、收盘价进行复权处理,成交量未作复权处理;先根据价格和除权数据计算出每日总收益率,然后用“向前复权”方法计算出复权价格(优点是:假设了分红再投资,任何两点间的收益率不受分红送配时间的影响,便于分析比较);提供根据收盘价计算的收益率。
code为证券代码 ,格式如“SH000001”、“SZ000001”、“HK0001”等,其中板块指数的代码如“$$AA01”、“$$AA02”等;当dataType为“dm”时,为市场代码“SH”或“SZ”等,板块指数的市场代码为“$$”。&&&&&&&&&&&&&&&& 如:GetData("hq","SZ399001") 读取SZ399001(深成指)的所有行情数据;GetData("hq","$$AA01")读取板块指数$$AA01行情。&&&&&&&&&&&&&&&&&&&& GetData(“dm”,”SH”) 读取沪市证券代码表
newFileName为不含路径的文件名,例如:读取沪市代码表时默认从分析家目录安装目录下的DATA\SH\StkInfo51.Dat文件中读取,但可以指定从其它文件读取,如GetData(“dm”,”SH”,”stkinfo88888.dat”)将从stkinfo8888.dat文件读取代码表(当然前提是该文件结构与stkinfo51.dat相同)。该功能主要用于读取历史分笔数据,如GetData(“hqmb”,”SZ000001”,”.PRP”)将读取深发展日的分笔成交数据。
返回值:返回一个二维字符串数组,每一列为一字段,每一行为一数据记录。注意,这里返回的是一个字符串数组,一般需要根据需要类型转换。
&&&&(2)方法GetFields语法:public string[,] GetFields(string dataType)功 能:读取各种数据类型的字段名、字段含义、类型。参数说明:dataType为指定数据类型同GetData。
返回值:一个二维数组
&&&&(3)方法GetTables调用格式:public string[,] GetTables()
功 能:读取各表的表名、中文说明、 对应文件。
返回值:一个二维数组&&&&(4)方法GetMarkets语法:public string[,] GetMarkets()功 能:从注册表中读取市场列表:代码、简称、名称,如:SH、沪、上海证券交易所;SZ、深、深圳证券交易所。
返回值:一个二维数组&&&&(5)方法GetTableDef语法:public string GetTableDef(string dataType, string descDataType, bool delOldTable)功 能:生成创建SAS表的PROC SQL语句。
参数:dataType为“dm”等数据表名,descDataType目前只能为“SAS”,delOldTable是否同时生成删除同名数据表的语句。
返回值:一个字符串&&&&(6)方法GetCodeType语法:public string GetCodeType(string code)功 能:根据证券代码获取证券品种,如:GetCodeType("SZ000001")将返回"gp"表示这是股票代码;GetCodeType("SH000001")将返回"zs”(指数);GetCodeType("SZ184688")将返回"jj"(基金),等。
参数:code为证券代码。
返回值:一个字符串:gp(股票)、zq(债券)、jj(基金)、qz(权证)、zs(指数)。
&& (7)方法ShowAboutBox语法:public void ShowAboutBox()功 能:显示组件的“关于”窗口。
&& (8)方法ShowFxjConverter语法:public void ShowFxjConverter()功 能: 显示“分析家数据转换器”窗口。可以读取各类数据,不过一般每次只能读取一只证券的数据;可以读取各字段信息;可以将读取出来的数据保存为文本文件。
&& (9)方法ShowFxjReader语法:public void ShowFxjReader()功 能:显示“分析家数据读取器”窗口。可以将各类数据转换为文本文件,字段间的分隔符可以自定义;
&&&&(10)属性FxjDataPath功能:字符串型,可读写,返回分析家数据目录(一般为c:\fxj\data\),如果组件无法自动获取正确的分析家数据目录,可以设置该属性指定分析家数据目录。
&&&&(11)属性FxjPath功能:字符串型,返回分析家安装目录(一般为c:\fxj\)。&&&&(12)属性Error功能:整型,只读,返回上一步操作是否出现错误。若该属性为0,表示没有错误发生,若为1则表示发生了错误,具体错误信息可以通过MSG属性获得。&&&&(13)属性Msg功能:字符串型,只读,返回上一步操作的错误信息。&&&&(14)属性Version功能:实型,返回组件当前版本号。
Fxj2Txt.exe使用说明:
&&&&功能:生成以逗号为分隔符的文本。
&&&&调用格式: fxj2txt.exe methodname&&args ...&&&&methodname可以是getdata、getfields、gettabledef、gettables、getmarkets、getcodetype,args为相应参数。如在DOS窗口下健入fxj2txt.exe getdata hq sz000001 将生成SZ000001(深发展)的行情数据等。可以用重定向符将生成的数据保存在一文本文件中:fxj2txt.exe getdata hq sz000001 & hqsz000001.txt
股票数据格式
 投资家数据数据结构       投资家日线文件数据结构       每28个字节为一日。    Date:LongI //日期(距的秒数)    OPen:LongI //开盘(元)    Close:LongI //收盘(元)    High:LongI //最高价(元)    Low:LongI //最低价(元)    Volume:LongI //成交量(股)    Money:LongI //成交额(元)       日期,x/86400取余后如果余数大于等于57600则加1(取整方法为如果大于16:00收盘时间则加1,否则不加1,视为昨天。)即为到当前的天数。分析家则不用这样都是整数。 开盘价(算法同分析家) 收盘价(算法同分析家) 最高价(算法同分析家)    最低价(算法同分析家) 成交量(股)(算法同分析家) 成交额(元)(算法同分析家)从钱龙转过来正确,但自动接收好像不对为0     & 工具箱   &【 · 发布:loveice 
00:00 】  &   天亿日线文件数据结构       沪市日线文件路径:默认在\DATA\SHASE\DAY下。    深市日线文件路径:默认在\DATA\SZNSE\DAY下。       日线文件命名规则:股票代码.DAY       每个日K线为40字节,具体如下:    Date:LongI //日期    OPen:LongI //开盘(元/1000)    High:LongI //最高价(元/1000)    Low:LongI //最低价(元/1000)    Close:LongI //收盘(元/1000)    Money:LongI //成交额(千元)    Volume:LongI //成交量(手)    Nouse1:LongI //没用    Nouse2:LongI //没用    Nouse3:LongI //没用       工具箱   &【 · 发布:loveice 
00:00 】  &   天网数据数据结构       天网日线文件数据结构       沪市日线文件路径:默认在YYY\DATA\SHASE\DAY下。    深市日线文件路径:默认在YYY\DATA\SZNSE\DAY下。       日线文件命名规则:股票代码.DAY       每个日K线为40字节,具体如下:    Date:LongI //日期    OPen:LongI //开盘(元/1000)    High:LongI //最高价(元/1000)    Low:LongI //最低价(元/1000)    Close:LongI //收盘(元/1000)    Money:LongI //没用    Volume:LongI //成交量(手)    Nouse1:LongI //没用    Nouse2:LongI //没用    Nouse3:LongI //没用       工具箱   &【 · 发布:loveice 
00:01 】  &   慧眼日线文件数据结构       日线文件路径:默认在\Stkdt下。       日线文件命名规则:股票代码.DAT       每个日K线为28字节,具体如下:    Date:LongI //日期    OPen:LongI //开盘(元/100)    High:LongI //最高价(元/100)    Low:LongI //最低价(元/100)    Close:LongI //收盘(元/100)    App:LongI //涨跌(收盘价之差)    Volume:LongI //成交量(手)       慧眼代码表文件数据结构       慧眼98静态版的lstf.dat的数据结构(本文件是列表与日线无关)       以4位整型为单位。       第四个为日期。前100个字节为头信息。好像不能动。每个股票为60字节       为代码(ha600001) 为名称    开(分) 高(分) 低(分) 收(分)    涨跌(分) 成交量(手) ?00 00 10 16(0) ?0    ?0 ?0 ?0 ----------       一个长整型的各位的含义       即与00 00 11 13异或的结果       显示值 (1-H)2^28 (1-L)2^24 (2-H)2^20 (2-L)2^16 (3-H)2^12 (3-L)2^8 (4-H)2^4 (4-L)2^0    0
1* 1*16 3    1 1 1 1 1 0 0 0 2    2 2 2 2 2 3 3 3 1    3 3 3 3 3 2 2 2 0    4 4 4 4 4 5 5 5 7    5 5 5 5 5 4 4 4 6    6 6 6 6 6 7 7 7 5    7 7 7 7 7 6 6 6 4    8 8 8 8 8 9 9 9 11    9 9 9 9 9 8 8 8 10    a a a a a 11 11 11 9    b b b b b 10 10 10 8    c c c c c 13 13 13 15    d d d d d 12 12 12 14    e e e e e 15 15 15 13    f f f f f 14 14 14 12       如果涨跌幅是负的话,则用FF FF FF FF 减去用上面算法算出的数再减1       显示的成交量可以与内建的流通量一起由慧眼算换手率。    工具箱   &【 · 发布:loveice 
00:01 】  &   恒生数据数据结构       (一)恒生日线文件数据结构       沪市日线文件路径:默认在HSNEW\DATA\SHASE\DAY下。    深市日线文件路径:默认在HSNEW\DATA\SZNSE\DAY下。       日线文件命名规则:股票代码.DAY       每个日K线为40字节,具体如下:    Date:LongI //日期    OPen:LongI //开盘(元/1000)    High:LongI //最高价(元/1000)    Low:LongI //最低价(元/1000)    Close:LongI //收盘(元/1000)    Money:LongI //成交额(千元)    Volume:LongI //成交量(手)    Nouse1:LongI //没用    Nouse2:LongI //没用    Nouse3:LongI //没用    工具箱   &【 · 发布:loveice 
00:02 】  &   (二)钱龙代码表文件格式       沪市代码表文件路径:默认为ML30\DATA\SHASE\NAMETBL.SHA    深市代码表文件路径:默认为ML30\DATA\SZNSE\NAMETBL.SZN       First0:ShortI //1字节,只能为00    Name:array [1..8] of C    Kind:ShortI    Code:array [1..6] of C//代码深圳为XXXX__    YesClose:LongI//昨收    Open:LongI//开盘    High:LongI//最高    Low:LongI//最低    Close:LongI//收盘    Volume:LongI//总手    Money:LongI//金额    Buy1M:LongI//买一价    Buy1V:LongI//买一量    Buy2M:LongI//买二价    Buy2V:LongI//买二量    Buy3M:LongI//买三价    Buy3V:LongI//买三量    Sale1M:LongI//卖一价    Sale1V:LongI//卖一量    Sale2M:LongI//卖二价    Sale2V:LongI//卖二量    Sale3M:LongI//卖三价    Sale3V:LongI//卖三量    Per:SmallI//只能为100??    NowV:LongI//现手       (三)钱龙网络版动态数据格式(即ml30\lond\dat下的数据格式)       // Set the default value    #define EXCH_MIN 240    #define EXCH_A 9*60+30    #define EXCH_AE 11*60+30    #define EXCH_B 13*60+00    #define EXCH_BE 15*60+00    #define SEP_TAG 0xffffffff    #define TRA_MAXN 1000    #define INFO_PARA 0x84    #define TYPE_NUM 0x4    #define FALSE 0x0    #define TRUE 0x1    #define SLHS_SIZE 0x300    #define SH_ZS ^a^    #define SH_AG ^b^    #define SH_BG ^c^    #define SH_ZQ ^d^    #define SZ_ZS ^A^    #define SZ_AG ^B^    #define SZ_BG ^C^    #define SZ_ZQ ^D^    #define DH_ZS 0x10    #define DH_AG 0x11    #define DH_BG 0x12    #define DH_ZQ 0x13    #define DZ_ZS 0x20    #define DZ_AG 0x21    #define DZ_BG 0x22    #define DZ_ZQ 0x23       struct APD_stock_data{ // in 199YMMDD.DAT    unsigned char data_ // =0x73 with min_data,// =0x09 without min_data,// =0x20 is deleted    unsigned char stock_ // many be a,b,c,d or A,B,C,D    unsigned char stock_code[6]; // stock code    unsigned char stock_name[8]; // name of the stock    unsigned long last_close_    unsigned long open_    unsigned long high_    unsigned long low_    unsigned long close_    unsigned long total_    unsigned long total_    };       struct APD_stock_min{ // store data for normal shares    unsigned long cur_ // price of every minutes    unsigned long total_ // summary volume by this minute    unsigned int average_ // swing percent of the average value&    };       struct APD_index_min{ // store data for index    unsigned long cur_ // index of every minutes    unsigned long total_ // summary volume by this minute    unsigned int average_ // swing percent of the average index    unsigned int buy_ // the vigour value of buying    unsigned int sell_ // the vigour value of selling    };       // Develop data files by appdata structured upwards       struct Data_5min{ // in .nmn files    unsigned long min_ // Format is MMDDHHMM    unsigned long open_ // 0.001    unsigned long high_ // 0.001    unsigned long low_ // 0.001    unsigned long close_ // 0.001    unsigned long min_ // 100    unsigned long min_ // 100    unsigned long time_ // sum trade time    unsigned char share_ // share value    unsigned char share_ // share break number    unsigned int share_ // share bonus    unsigned long shares_ // sum number    };       struct His_data{ // in lonhis.???    unsigned long cur_    unsigned long total_ // total volume    unsigned long total_ // total value by this minute    unsigned long buy_ // initiactive total buy volume    unsigned long sell_ // initiactive total sell volume    unsigned int rise_ // summary rise shares of this minute    unsigned int fall_ // summary fall shares of this minute    unsigned int average_ // swing percent of the average index    unsigned int buy_ // the vigour value of buying    unsigned int sell_ // the vigour value of selling    unsigned int value_ADL; // the value of current ADL index    unsigned int swing_ // the flag of rise or fall    };       struct Tra_data{ // in lontra.???    unsigned int time_    unsigned long cur_    unsigned long total_    unsigned long buy_    unsigned long sell_    };       struct Info_data{ // in loninfo.???    unsigned char stock_ // This byte is to id stock    unsigned char data_ // always be 0 to id    unsigned int stock_    unsigned int start_    unsigned int max_    unsigned int min_    unsigned int exch_    unsigned int A_begin_    unsigned int A_end_    unsigned int B_begin_    unsigned int B_end_    };       struct Cdp_data{ // shacdp.dat of HXTW    unsigned char stock_code[6];    unsigned char reserved[20];    unsigned long reserved2;    };       // some dynamic data files structured upwards       struct Data_day{ // in .day files    unsigned long day_ // Format is YYYYMMDD    unsigned long open_ // 0.001    unsigned long high_ // 0.001    unsigned long low_ // 0.001    unsigned long close_ // 0.001    unsigned long day_ // 1000    unsigned long day_ // 100    unsigned long time_ // sum trade time    unsigned char share_ // share value    unsigned char share_ // share break number    unsigned int share_ // share bonus    unsigned long shares_ // sum number    };       struct Slon_para{ // in file slonpara.dat    unsigned int sh_A_ // Offset of SH_A stock    unsigned int sh_B_    unsigned int sh_C_    unsigned int sh_total_    unsigned int sz_A_    unsigned int sz_B_    unsigned int sz_C_    unsigned int sz_total_    unsigned int data_tag[3];    };       struct Slon_day{ // in .day files of Slon    unsigned long day_ // Format is YYYYMMDD    unsigned long open_ // 0.001    unsigned long close_ // 0.001    unsigned long high_ // 0.001    unsigned long low_ // 0.001    unsigned long day_ // 1000    unsigned long day_ // 100    unsigned int reserved[6]; // Some infomation I don^t know    };       struct Slon_HS{ // in lonhs.dat of Slon    unsigned int data_tag1; // Some infomation I don^t know    unsigned char stock_ // =0xff is delete, =0x64 is OK    unsigned long stock_ // number of stock code    unsigned char stock_name[8]; // name of stock    unsigned char data_tag2; // =0x0, Some infomation I don^t know    unsigned int data_tag3; // =0x64, Some infomation I don^t know    unsigned int last_close_    unsigned int open_    unsigned long PMA5_ // The volume of 5day average    unsigned int high_    unsigned int low_    unsigned int close_    unsigned long data_tag4; // Some infomation I don^t know    unsigned long total_volume1; // Total volume    unsigned long total_volume2; // Total volume    unsigned int buy_1_ // The price of buying now    unsigned char buy_2_ // The offset of buy 1 and buy 2 price    unsigned char buy_3_ // The offset of buy 1 and buy 3 price    unsigned long buy_1_    unsigned long buy_2_    unsigned long buy_3_    unsigned int sell_1_ // The price of selling now    unsigned char sell_2_ // The offset of sell 1 and sell 2 price    unsigned char sell_3_ // The offset of sell 1 and sell 3 price    unsigned long sell_1_    unsigned long sell_2_    unsigned long sell_3_         
         unsigned int hisptr00;    unsigned int hisptr01;    unsigned int hisptr02;    unsigned int hisptr03;    unsigned int hisptr04;    unsigned int hisptr05;    unsigned int hisptr06;    unsigned int hisptr07;    unsigned int hisptr08;    unsigned int hisptr09;    unsigned int data_tag5;    unsigned long cur_    unsigned char reserved1[12];   
   unsigned long data_tag6;    unsigned long out_    unsigned char reserved2[133];    unsigned char data_tag7; // always 07    unsigned char reserved3[145];    unsigned char end_    unsigned char end_    unsigned int lastmin_    unsigned int data_tag8;    unsigned long total_volume3;    unsigned int cur_    unsigned long average_    unsigned char reserved4[82];    };       /* SLON data structure from MR.ZHAO BIAO       Lonhs.dat结构分析(QB)    位置  长度  类型    说明    1   2   INTEGER  ******************    2   1   STRING   标志,FF-&delete 64-&ok    3   4   LONG    股票代码    4   8   STRING   股票名称    5   1   STRING   00-& ? *****************    6   2   INTEGER  64-& ? *****************    7   2   INTEGER  前收盘价    8   2   INTEGER  开盘价    9   4   LONG    五日均量    10   2   INTEGER  最高价    11   2   INTEGER  最低价    12   2   INTEGER  收盘价         & 工具箱   &【 · 发布:loveice 
00:03 】  &   图文卡与钱龙分析软件接口规范       第一章 系统概述       系统的物理结构       股票分析软件 Lonsd.exe(单机版)       驱动程序 Driver.exe(TSR)       操作系统 DOS3.30 or High       硬件平台 PC + 数据接收机       数据接收机可有多种实现方式,典型的有:       VBI(图文电视)方式       RDS(调频副载波)方式       MODEM(调制解调器)方式       可视图文方式       X.25方式       股票分析软件Lonsd.exe通过驱动程序Diver.exe访问股票的行情数据,与不同的接收方式或硬件平台无关,而每一种数据接收机均需一个特殊的驱动程序Diver.exe以保证数据的正常接收。驱动程序Diver.exe为一常驻内存程序(TSR),负责实时数据的接收。所有的数据接收机的硬件生产厂商需提供用户针对该接收机的驱动程序Diver.exe,并保证能接收到本规范所定义的钱龙动态股票分析软件所需要的数据项,用户即可使用钱龙公司出品的最新股票分析单机版软件。实时数据发射端和数据接收机之间的通讯协定由数据接收机的硬件生产厂商决定,只须满足速度及稳定性要求即可。       系统的配置需求       CPU 8 or Pretium       Memory &=2M, Free Memory&=1.6M( 建议&=4M)       Display Standard VGA 640*480 16色       DOS VER3.30 or High(建议使用SmartDrv.exe)       TLOOS 钱龙公司天生赢家Winnegro专用软件狗一个       接收速度 建议&=1 记录数/秒       第二章 动态单机版工作流程       驱动程序Diver.exe和分析软件Lonsd.exe的共用数据区       共用数据区由BIOS通讯区和行情数据区两部分组成。BIOS通讯区由硬件类型、硬件机号、行情类型、数据区地址(段地址和偏移量),数据区记录首指针、尾指针和Diver驻留标志等元素组成。行情数据区以队列方式存放,每条启示为96个字节,共有256条记录,记录格式见第三章。       驱动程序Diver.exe的工作流程       非驻留部分:       初始化,检查硬件-数据接收机是否存在。       接收所有股票的基本资料,建立证券名称对照表(需存盘,含各种指数),证券名称对照表见第三章,证券名称对照表按类别(type)排序,相同类别则按股票代号排序。       初始化BIOS通讯区,置硬件类型、硬件机号和行情类型、数据区段地址、偏移置和Diver驻留标志均需为0。       驻留部分:       Driver驻留标志置为0xaa,检查分析软件是否启动,即判断数据区内存地址是否已置好。       若好,则接收数据。若当前数据首指针为n,则将行情数据写至(数据区内存地址+n*88)位置,然后置数据首指针置为n+1。(当n=255时,数据首指针置为0)。       若数据区内存地址为0,则停止接收数据。       分析软件Lonsd.exe的工作流程       检查是否已安装驱动程序,若是则申请数据区内存,置数据区内存地址。       将数据区首指针和尾指针置为0。       接收股票行情数据:判断首指针是否等于尾指针,若不等,设当前尾指针为m,则从(数据区内存地址+m*88)读一条记录,然后置数据尾指针置为m+1。(当m=255时,数据尾指针置为0)。       进入分析系统,循环处理第3条。       退出分析软件后将数据区内存地址重新置为0。       第三章 数据区、数据包及数据文件格式       BIOS通讯区数据表       硬件类型
byte 1 Driver 不能为0       硬件机号 -00f5 5byte 5 Driver         行情类型 -00f7 16bit 1 Driver 最多为16种       数据区段地址 -00f9 word 1 Lonsd         数据区偏移地址 0040:00fa-00fb word 1 Lonsd         记录首指针 0040:00fc byte 1 Lonsd 由Driver改变       记录尾指针 0040:00fd byte 1 Lonsd 由Lonsd改变       汇金指标 0040:00fe byte 1 无         Driver驻留标志 0040:00ff byte 1 Driver 已驻留为0xaa       总计 -00ff   16           注:1、当汇金指标的值&=0f时,其值等于0,新股增加采用插入方式,其值等于1,新股增加采用代码表的方式,即使用exe目录下的NameTbl.Sha、NameTbl.Sza。       2、当汇金指标的值&0f时,则表示接收行情的方式当ax=0时,使用软中断接收行情,当ax=1时,使用硬中断接收行情0,并使用exe目录下的NameTbl.Sha、NameTbl.Sza。       指数数据包       数据包类型 type char 1 证券类型       证券代码 code(6) char 6         昨日收盘 close long 4         今日开盘 open long 4         今日最高 high long 4         今日最低 low long 4         今日最新 new long 4         总买盘量 vbuy long 4 可忽略       总卖盘量 bsell long 4 可忽略       总成交量 volume long 4 单位:百股       成交金额 amount long 4 单位:百元       总家数 total int 2 可忽略       日期 date long 4 可忽略       时间 time Long 4 可忽略       保留 reserved(34) Char 34         校验码 chksum Char 1         股票名称 name Char 8         总计     96         个股数据包       数据包类型 type Char 1 证券类型       证券代码 code(6) Char 6         昨日收盘 close Long 4         今日开盘 open Long 4         今日最高 high Long 4         今日最低 low Long 4         今日最新 new Long 4         买盘价1 pbuy1 Long 4         买盘量1 vbuy1 Long 4         买盘价2 pbuy2 Long 4         买盘量2 vbuy2 Long 4         买盘价3 pbuy3 Long 4         买盘量3 vbuy3 Long 4         卖盘价1 psell1 Long 4         卖盘量1 vsell1 Long 4         卖盘价2 psell2 Long 4         卖盘量2 vsell2 Long 4         卖盘价3 psell3 Long 4         卖盘量3 vsell3 Long 4         总成交量 volume Long 4 单位:股       成交金额 amount Long 4 单位:元       校验码 chksum Char 1         股票名称 name Char 8         总计     96         信息数据包       数据包类型 type Char 1         时间 time Int 2 如12:59表示为1259       流水号 sieralno Int 2 信息编号(0-9999)       提供者 provider Char 14 信息来源       总块数 totblock Int 2         块号 blockno Int 2 块号=0时为信息标题       信息内容 content(64) Char 64 每块信息为64字节       校验码 chksum Char 1         总计     88         证券名称对照表NameTbl.Sha NameTbl.Szn       证券类型 type Char 1 Bit7为标志位       证券代码 code(6) Char 6 不满8位填空格       证券名称 name(8) Char 8         最小交易单位 unit Char 1 每手股数/10       总计     16         注意事项       所有股票的价格及指数的值均为实际值乘1000。股票的成交金额以元为单位,成交量(买卖盘)以股数为单位。指数的成交金额以百元为单位,成交量(买卖盘)以百股为单位。       日期的表示:如日为(长整型)。       B股的价格单位:上交所为美元,深交所为港元,因此在计算B股指数的成交金额时必须乘上汇率,否则会导致B股成交金额和大盘成交金额有误差。       信息数据包块号=0时的内容为该信息的标题。信息的正文块号从1开始。       两个证券名称对照表文件的目录分别为\ML30\DATA\SHASE\NameTbl.Sha和\ML30\DATA\SZNSE\NameTbl.Sza。       Type作为证券类型时,Bit7为标志位,Bit7=1时忽略该股票。       Lonsd对每一个行情来源(上交所或深交所)最多能处理16个指数和560个股票。       目前Lonsd 读取行情记录时暂不对校验码(chksum)做检查。       附录一 实时行情种类       Byte 0:
      Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0       保留 保留 保留 保留 保留 保留 深证所 上证所       Reserved Reserved Reserved Reserved Reserved Reserved SZNSE SHASE       Byte 1:
      Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0       保留 保留 保留 保留 保留 保留 保留 保留       Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved       附录二 数据包类型/证券类型       上海指数 0x10       上海A股 0x11       上海B股 0x12       上海债券 0x13       上海权证 0x14       上海红利 0x15       上海配股 0x16       上海证交所信息 0x1f       深圳指数 0x20       深圳A股 0x21       深圳B股 0x22       深圳债券 0x23       深圳权证 0x24       深圳红利 0x25       深圳配股 0x26       深圳证交所信息 0x2f       综合财经信息 0x05       空包 0xff       注:法人股系统及各期货交易上市的期货行情资料待日后(V3.10)增加。       附录三 证券代码(code)       个股的代码       个股的代码即为个股的股票代码,深圳证券交易所上市的股票的代码前4位有效,后2位填空格。       指数的代码       上证综合指数 999999       上证A股指数 999998       上证B股指数 999997       上证工业股指数 999996       上证商业股指数 999995       上证地产股指数 999994       上证公用事业股指数 999993       上证综合股指数 999992       上证30指数 999991       深圳成份股指数 9996       深圳成份A股指数 9995       深圳成份B股指数 9994       深证工业股指数 9993       深证商业股指数 9992       深证金融股指数 9991       深证地产股指数 9990       深证公用事业股指数 9989       深证综合股指数 9988       深证基金指数 9987       深证综合指数 9999       深证综合A股指数 9998       深证综合B股指数 9997          工具箱   &【 · 发布:loveice 
00:05 】  &    shan_lee :      给你这么多(有些没考虑4位升6位)希望能对你有用。代码表我只给了钱龙的,不过由于它内容少,格式简单,你很容易举一反三把其它的看懂的。 工具箱   &【 · 原创:goldeye 
01:52 】  &   loveice兄不简单。  想几年前为了从恒生补钱龙数据,对这些文件也解了很长时间。    (二)钱龙代码表文件格式   Per:SmallI//只能为100??   ---------  估计跟小数位数有关,分或厘    钱龙3.0版数据存储格式   日线:其余12字节未使用  ------  是成交笔数 等一些当时没有的信息,盘后分析功能有关,  我也是改一些数后发现的。     工具箱   &【 · 原创:鹿鸣嗷嗷 
13:32 】  &   强人啊:)) 工具箱   &【 · 原创:鱼鹰 
13:37 】  &   WOW!  收藏! 工具箱   &【 · 原创:hexinstock 
14:06 】  &   牛! 工具箱   &【 · 原创:斑点 
17:30 】  &   嘻嘻,身在宝山不知者何其多 工具箱   &【 · 原创:cutecat 
19:14 】  &   不知道该如何感谢.   工具箱   &【 · 原创:hylt 
19:03 】  &   请教:哪个软件可以导出带除权的文本数据? 工具箱   &【 · 原创:loveice 
21:14 】  &   《飞狐》可以导出带除权的文本数据 工具箱   &【 · 原创:绿苹果 
22:53 】  &   顶!    俺很需要报表的数据来源,DBF的最好,TXT的也行,不知通过怎样的渠道或用怎样的方法获得?另外,能从PDF格式中获得吗?先谢谢了.   工具箱   &【 · 原创:hylt 
23:17 】  &   【 原创:loveice 时间: 21:14:52 】   《飞狐》可以导出带除权的文本数据     谢谢老大,我现在用的正是飞狐,但飞狐有个麻烦,就是没有自己可靠的数据源,包括除权数据。另外我想在文本数据里加上一列历史流通盘,不知怎么才能搞到。我现在用的是Wealth-Lab软件,请看:http://www.0-3.cn/bbs/viewtopic.php?t=541    绿苹果:可以看看证旺:http://www.zmatch.com/
★股票数据格式-TO:shan_lee 【 发布:loveice 
23:54  远山近水   浏览/回复:2126/27】&   shan_lee :      要将商品行情软件的数据导入自己的数据库,除了要知道商品软件数据的数据结构,同时还与你自己数据库的数据结构有关。一般情况下,业余爱好者往往都是使用ASCII即text文本结构。text格式的数据易读易懂,可以让许多国际股票软件和工具软件(比如:GET\TT\SUPERCHART\SSPS\EXECL等等)直接调用。      如果你考虑用text格式,有以下几种方法:一、比如《飞狐》,它可以直接为你输出text数据,而且在输出前你还可以按自己要求设置其数据间格式。二、运用其他网友编好的现成的数据转换软件予以转换,比如fxjtotext、ctext等,这些小软件网上都能找到。三、自己动手,麻烦是麻烦点,但可以给自己更大的灵活的空间,比如说搞个自己格式的数据。      自己动手,就要知道商品软件的数据格式,我这里给你几个常见的软件的数据格式,希望对你有点用处。当然这些数据的转换原则上是适用于盘后静态,要是动态,那就复杂多了,我只跟你给出钱龙的,供参考。    工具箱   &【 · 发布:loveice 
23:56 】  &   钱龙3.0版数据存储格式       上海日线存储路径为:\ml30\data\shase\day,文件扩展名为:.day    上海周线存储路径为:\ml30\data\shase\week,文件扩展名为: .wek    上海月线存储路径为:\ml30\data\shase\month,文件扩展名为: .mnt    深圳日线存储路径为:\ml30\data\sznse\day    深圳周线存储路径为:\ml30\data\sznse\week    深圳月线存储路径为:\ml30\data\sznse\month       以深发展日线为例:    1A76:0100 D6 CD 2F 01 52 07 01 00-52 07 01 00 52 07 01 00    1A76: 01 00 86 0F 00 00-4D 02 00 00 00 00 00 00    1A76: 00 00 00 00 00 00-D7 CD 2F 01 60 03 01 00    1A76: 01 00 60 03 01 00-60 03 01 00 82 05 00 00    1A76: 00 00 00 00 00 00-00 00 00 00 00 00 00 00       每一条记录的长度为40字节:    1-4字节为日期,D6 CD 2F 01转换为十进制是:    5-8字节为开盘价*1000    9-12字节为最高价*1000    13-16字节为最低价*1000    17-20字节为收盘价*1000    21-24字节为成交量(手)    25-28字节为成交金额    其余12字节未使用       另:周线,月线格式与日线格式一致.       下面是我用C语言编的一个显示深发展日线的小程序,运行时要将000001.day拷到当前目录.       #include &stdio.h&    #include &conio.h&    #include &stdlib.h&       typedef struct {                         char unuse[12];    } RECORD;       RECORD    int readrec(FILE *);       void main()    {    FILE *    if((fp = fopen("000001.day","rb")) == NULL) // 打开深发展日线    { printf("Error: Can^t open 000001.DAY !\n");    exit(0); }    readrec(fp);    fclose(fp);    if(getch()==0) getch();    exit(0);    }       int readrec(FILE *fp)    {       while (! feof(fp)) {    fread(&reco,sizeof(RECORD),1,fp);    printf("%10lu ",reco.date);    fn=float(reco.open)/1000;    printf("%8.2f ",fn);    fn=float(reco.high)/1000;    printf("%8.2f ",fn);    fn=float(reco.low)/1000;    printf("%8.2f ",fn);    fn=float(reco.close)/1000;    printf("%8.2f ",fn);    printf("%8lu ",reco.travl);    printf("%8lu\n",reco.traca);    }    printf("\n");    return 0;    }    工具箱   &【 · 发布:loveice 
23:56 】  &   分析家3.1x版数据存储格式       上海日线存储文件为:\superstk\data\sh\day.dat    深圳日线存储文件为:\superstk\data\sz\day.dat       以上海日线存储文件day.dat为例:       00000h: F4 9B 13 FC 10 02 00 00-00 00 00 00 D1 04 00 00    00000h: 81 0C 00 00 48 0C 00 00-31 41 30 30 30 31 00 FF    00020h: FF FF B0 09 00 00 16 00-17 00 18 00 19 00 1A 00    00030h: 1B 00 1C 00 1D 00 1E 00-07 0A FF FF FF FF FF FF    00040h: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF    00050h: FF FF FF FF FF FF FF FF    ......    ......    41000h: 80 47 B2 2B B9 1E 25 41-CD CC 4C 41 EC 51 18 41    41010h: 9A 99 41 41 80 06 B2 47-40 1C BC 4C 00 00 00 00    41020h: 00 3C B6 2B 34 33 3F 41-AF 47 49 41 01 00 30 41    41030h: 34 33 3B 41 00 07 12 47-A4 3C 26 4C 00 00 00 00       该文件格式与磁盘文件物理存储方式类似:       起止地址 数据内容 数据含义 数据类型    00 - 03 F4 9B 13 FC 日线文件标志 Integer    04 - 07 10 02 00 00 保留 Integer    08 - 0B 00 00 00 00 保留 Integer    0C - 0F D1 04 00 00 证券总数 Integer    10 - 13 81 0C 00 00 需添加之起始块号 Integer    14 - 17 48 0C 00 00 当前最后空块号 Integer    18 - 21 31 41 30 30 30...FF 证券代码 Char[10]    22 - 25 B0 09 00 00 日线记录数 Integer    26 - 57 16 00 17 00...FF FF 记录块号 Word[25]    ......    41000 -
B2 2B 日期 Integer    41004 - 4E 25 41 开盘价 Single    41008 - 4100B CD CC 4C 41 最高价 Single    4100C - 4100F EC 51 18 41 最低价 Single    41010 -
41 41 收盘价 Single    41014 -
B2 47 成交量 Single    41018 - C BC 4C 成交金额 Single    4101C -
上涨家数 Word    4101E -
下跌家数 Word       注:    1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。    2)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;    3)从41000h开始每8KB为一股票数据存储块,每个股票数据存储块共存储256条日线记录,每一条记录的长度为32 byte(含义如上表;上涨家数及下跌家数只对指数有效);    4)从41000h开始的8KB为第0号数据存储块,以后类推;    5)系统对每个股票日线数据存储以存储块为单位进行分配。    6)具体应用实例分析家数据管理程序。    7) 日期字段的意义为:实际日期 = StrToDate(^^)+(日期字段 div 86400);即“日期字段”除以86400所得数为实际日期距日的天数。       工具箱   &【 · 发布:loveice 
23:57 】  &   胜龙的数据格式       上海日线存储路径为:\slon\data\sh\day,文件扩展名为:.day    上海周线存储路径为:\slon\data\sh\week,文件扩展名为: .wek    上海月线存储路径为:\slon\data\sh\month,文件扩展名为: .mnt    深圳日线存储路径为:\slon\data\sz\day    深圳周线存储路径为:\slon\data\sz\week    深圳月线存储路径为:\slon\data\sz\month    以深发展日线为例:    0F74: D0 FE AD F8 FE FF-AD F8 FE FF AD F8 FE FF    0F74:0110 AD F8 FE FF 77 F0 FF FF-B2 FD FF FF FF FF FF FF    0F74:0120 FE FF FF FF 94 E3 FB FF-28 32 D0 FE 9F FC FE FF    0F74:0130 9F FC FE FF 9F FC FE FF-9F FC FE FF 7D FA FF FF    0F74:0140 2B FF FF FF FF FF FF FF-FE FF FF FF 94 E3 FB FF    每一条记录的长度为40字节:    1-4字节为日期(如)转换为整数的反码    5-8字节为开盘价*1000 的反码    9-12字节为最高价*1000 的反码    13-16字节为最低价*1000 的反码    17-20字节为收盘价*1000 的反码    21-24字节为成交量(手) 的反码    25-28字节为成交金额(万元)的反码    29-36字节未使用    37-40字节为除权价*1000 的反码    另:周线,月线格式与日线格式一致.    下面是我用C语言编的一个显示深发展日线的小程序,运行时要将    000001.day拷到当前目录.    #include &stdio.h&    #include &stdlib.h&    #include &conio.h&    typedef struct    {                         char unuse[12];    } RECORD;    RECORD    int readrec(FILE *);    void main()    {    FILE *    if((fp = fopen("000001.day","rb")) == NULL)    {    printf("Error: Can^t open 000001.DAY !\n");    exit(0);    }    readrec(fp);    fclose(fp);    if(getch()==0) getch();    exit(0);    }    int readrec(FILE *fp)    {       while (! feof(fp))    {    fread(&reco,sizeof(RECORD),1,fp);    printf("%10lu ",~reco.date);    fn=float(~reco.open)/1000;    printf("%8.2f ",fn);    fn=float(~reco.low)/1000;    printf("%8.2f ",fn);    fn=float(~reco.high)/1000;    printf("%8.2f ",fn);    fn=float(~reco.close)/1000;    printf("%8.2f ",fn);    printf("%8lu ",~reco.travl);    printf("%8lu\n",~reco.traca);    if(kbhit())    }    printf("\n");    return 0;    } 工具箱   &【 · 发布:loveice 
23:59 】  &   汇金数据格式     上海日线存储路径为:\hjin\exe\lineday\sh,文件扩展名为:.psd    上海周线存储路径为:\hjin\exe\lineweek\sh,文件扩展名为: .psw    上海月线存储路径为:\hjin\exe\linemon\sh,文件扩展名为: .psm    深圳日线存储路径为:\hjin\exe\lineday\sz    深圳周线存储路径为:\hjin\exe\lineweek\sz    深圳月线存储路径为:\hjin\exe\linemon\sz    以深发展日线为例:    1A76:0100 D6 CD 2F 01 EC D1 86 42-EC D1 86 42 EC D1 86 42    1A76:0110 EC D1 86 42 7B F9 86 42-14 E6 00 00 20 D7 CD 2F    1A76:0120 01 CD CC 84 42 CD CC 84-42 CD CC 84 42 CD CC 84    1A76: 04 85 42 D0 52 00-00 20 D8 CD 2F 01 54 23    1A76: 54 23 84 42 54 23-84 42 54 23 84 42 9E E7    1A76: A0 41 00 00 20    每一条记录的长度为29字节:    1-4字节为日期,D6 CD 2F 01转换为十进制是:    5-8字节为开盘价    9-12字节为最高价    13-16字节为最低价    17-20字节为收盘价    21-24字节为均价    25-28字节为成交量(股)    其余1字节未使用    另:周线,月线格式与日线格式一致.    下面是我用C语言编的一个显示深发展日线的小程序,运行时要将    sz0001.psd拷到当前目录.    #include &stdio.h&    #include &conio.h&    #include &stdlib.h&    typedef struct {    //日期    //开盘价    //最高价    //最低价    //收盘价    //均价    //成交量       } RECORD;    RECORD    int readrec(FILE *);    void main()    {    FILE *    if((fp = fopen("sz0001.psd","rb")) == NULL) // 打开深发展日线    { printf("Error: Can^t open SZ0001.PSD !\n");    exit(0); }    readrec(fp);    fclose(fp);    if(getch()==0) getch();    exit(0);    }    int readrec(FILE *fp)    {    while (! feof(fp)) {    fread(&reco,sizeof(RECORD),1,fp);    printf("%10lu ",reco.date);    printf("%8.2f ",reco.open);    printf("%8.2f ",reco.high);    printf("%8.2f ",reco.low);    printf("%8.2f ",reco.close);    printf("%8.2f ",reco.cavl);    printf("%8lu\n",reco.travl);    }    printf("\n");    return 0;    }& 工具箱   &【 · 发布:loveice 
23:59 】  &   海融动态“闪电版”日线数据格式       上海日线存储路径为:\hrdyn\shday,文件扩展名为:.day    深圳日线存储路径为:\hrdyn\szday,文件扩展名为:.day       以深发展日线(0001.day)为例:       0000h: F8 30 31 01 CD CC 88 41-AE 47 89 41 00 00 86 41    0010h: 71 3D 86 41 24 02 20 00-62 26 87 41 00 00 00 00    0020h: 00 00 00 00 00 00 00 00-F9 30 31 01 66 66 86 41    0030h: CB A1 88 41 14 AE 85 41-A4 70 87 41 9C C5 11 00    0040h: AA C3 86 41 00 00 00 00-00 00 00 00 00 00 00 00             起止地址 数据内容 数据含义 数据类型    0000 -
31 01 日 期 Integer    0004 - 0007 CD CC 88 41 开盘价 Single    0008 - 000B AE 47 89 41 最高价 Single    000C - 000F 00 00 86 41 最低价 Single    0010 - D 86 41 收盘价 Single    0014 -
20 00 成交量 Integer    0018 - 001B 62 26 87 41 均 价 Single    001C - 001F 00 00 00 00 前收盘 Single    0020 -
竞 Word    0022 -
量    Word    0024 -
00 00 成交笔数 Integer       注:    1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。    2)从0028h开始每40byte为一条股票数据记录,含义如上表0000h - 0027h所示;    工具箱   &【 · 发布:loveice 
00:00 】  &   
猛料里的:procedure TfrmIE2.WebDocumentComplete(Sender: TO pDisp: ID& var URL: OleVariant);begin& if not(Web.Busy) then begin&&& ShowMessage('下载完毕');&对于每次连接(不论是鼠标点击还是用Navigate2方法连接),TWebBrowser的流程是这样的:OnBeforeNavigate2&&&&&&&&& &--开始链接时会触发此事件OnNavigateComplete2&&&&&&& &--成功的链接到此网页(以后才会有下面的事件)OnDownloadBegin&&&&&&&&&&& &--开始下载OnDownloadComplete&&&&&&&&& &--下载结束OnDocumentComplete&&&&&&&&& &--页面下载完毕对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
自动上网抓数据的机器人(转载)
&&&&&& 在大多数情况下,上网冲浪是件令人愉快的事情。但若是数百上千的超链接摆在你面前,而你又不得不一一点击这些链接、进入相应的网页、手工筛选出每页里你需要的信息、最后再将这些信息编进数据库中、....,你将做何感想?如果每天都从事这种繁杂、枯燥的工作会不会让你发疯?&&& “自动上网机器人”或许可救你出“苦海”:你可以喝着咖啡、听着音乐、看着“机器人”辛勤地替你工作,那感觉是不是棒极了!&&&& 本文结合实例详尽讨论了用VB实现“上网机器人”的技术细节。我们知道,搜集和下载资料是人们使用互联网的最主要的目的之一,但有些信息资源过于庞大,用手工摘取的方法是困难的或根本就是行不通的。例如,你需要搜集欧洲进口机械设备的公司名录以便给他们发信邀请其参加博览会,在网上找到这些信息并不难,但出于数据安全等方面的考虑,几乎所有提供类似信息的网站都没有提供直接下载数据的功能。&&&& 要想搜集齐想要的数据,唯一可用的方法就是一页一页地浏览每个公司的信息页,摘取其中有用的数据并存入数据库。但当公司总数超过数千时,巨大的工作量会让任何人望而却步!其实,这浩大的工作完全可以由程序来完成,因为这些任务完全是机械的重复性工作。而且,用程序完成比用手工要快得多。本文涉及的技术细节是通用的,即对实例程序稍加修改就可完成任何“自动上网冲浪”任务。
&&& 自动拨号上网、自动处理中途掉线、任务完成后自动挂断,这些都是“上网机器人”的最基本的功能之一。它还能给你带来明显的经济回报:如果你让“机器人”在晚间至凌晨的上网费优惠期内拨号上网去自动冲浪,那真可称得上是典型的“一石三鸟”----你睡觉、它工作、还省钱!有关这方面的细节将在本文的第三部分里讨论。该部分提供了实现上述各功能的若干方法,并比较了这些方法各自的优劣。
&&& 本文的第一和第二部分分别以两个实例讨论了自动浏览的技术细节:在网页上的输入区内自动填入数据以便完成诸如用户登录等的操作、自动更新CheckBox、自动选择下拉式列表(ComboBox)的值、自动点击网页上的按钮、从网页上精确提取有用的数据并存盘、将网页上二维表(Table)内的数据一一提取出来并转换且存储成可直接导入数据库或 Excel的格式,以及控制浏览进程的技巧等等。
第一部分& 从网页上精确提取数据
&&& 本部分的实例是:下载沪深两市全部约1100家个股的基本信息及财务数据。若用手工操作,如上图所示,需要在股票代码区内分别输入1100个股票代码,在下拉式列表(ComboBox)中分别选择“个股资料”和“财务数据解读”,算下来约是2200次操作!这样的工作当然是由程序来完成划算得多。况且手工提取数据(先选中、再使用Ctrl+C拷贝)极容易出错(多选或漏选),又很费眼神。
1. 在输入区内自动填入数据
&&& 为使程序能高效地自动浏览,需引入一些最基本的功能,如在输入区内自动填入数据、自动点击按钮等等。虽然用变换 URL地址的方法有时也能完成任务,但往往过于费力,尤其当网页上的输入区较多时更是如此。
&&& 为了在输入区内输入数据,需要先搜索到该对象的名字,然后将该对象的值置为要填入的数据即可。搜索名字的工作可编程完成,亦可用 FrontPage轻松获得。
2. 自动在下拉式列表(ComboBox)中进行选择
&&& 同样地,首先要获得下拉式列表的名字。然后根据下拉式列表的元素总数(length属性)在列表中搜索要设置的值(列表的 Options集合中元素的Text属性),找到后,将该元素设为选中元素(元素的Selected属性)。
3. 自动点击按钮
&&& 对于按钮来讲,可根据其名字访问,亦可根据其值访问。按钮的值就是显示在按钮上的文字。一个按钮可能没有名字,但一定有值。本例的程序就是根据值来访问按钮。执行按钮的 Click方法就相当于点击了该按钮。
&&& 图二中红色箭头所指即为程序自动填入输入框、自动在ComboBox中选择以及自动点击按钮的情况。
4. 精确提取数据
&&& 仅将有用的数据存储下来才是有意义的。必须研究网页,找出有效数据所在的Tag区(可用文本编辑器或 FrontPage),然后用该对象的innerText属性获得最终的文本。本例中要存储的数据如下图所示,其所用的Tag为“PRE”。
&&& 下面给出的是实例程序的完整代码:
' 程序一:从网页上精确提取数据'' 为运行本程序,应在“菜单-&工程-&部件”中添加“Microsoft Internet Controls”' 并在“菜单-&工程-&引用”中添加“Microsoft HTML Object Library”'' 为了简洁,程序仅下载九只个股的基本信息Option ExplicitPrivate Const Form_ID = 1Dim Code(9) As StringDim Current As LongPrivate Sub Form_Load()& Form1.MousePointer = 11& ' 以下是个股代码& ' 为了程序简洁,这里仅使用九只代码。& ' 而在真实环境中,应从数据文件中读入全部个股代码。& Code(0) = "600001": Code(1) = "600002": Code(2) = "600003"& Code(3) = "600005": Code(4) = "600006": Code(5) = "600007"& Code(6) = "600008": Code(7) = "600009": Code(8) = "600010"& Current = 0& WebBrowser1.Navigate "www.stockstar.com.cn"&& ' 起始网址End SubPrivate Sub WebBrowser1_DocumentComplete(ByValpDisp As Object, URL As Variant)& Dim i, k& Text2 = WebBrowser1.LocationURL&&& ' 显示当前网址& ' 判断当前网页是否全部调入完毕& If Not (pDisp Is WebBrowser1.Object) Then Exit Sub& On Error Resume Next& Select Case Text2& Case "http://www.stockstar.com.cn/home.htm"& ' 当进入主页面时执行以下程序&& For i = 0 To WebBrowser1.Document.Forms(Form_ID).length - 1&&&&& ' 找到代码输入框后填入个股代码&&&&& If WebBrowser1.Document.Forms(Form_ID)(i).Name = "code" Then _&&&&&&& WebBrowser1.Document.Forms(Form_ID)(i).Value = Code(Current)&&&&& ' 在下拉式列表中进行选择&&&&& If WebBrowser1.Document.Forms(Form_ID)(i).Name = "target" Then&&&&&&& For k = 0 To WebBrowser1.Document.Forms(Form_ID)(i).length - 1&&&&&&&&&& If WebBrowser1.Document.Forms(Form_ID)(i).Options(k).Text _&&&&&&&&&&&&&&&&&&&& = "个股资料" Then&&&&&&&&&&&& WebBrowser1.Document.Forms(Form_ID)(i).Options(k).Selected = True&&&&&&&&&&&& Exit For&&&&&&&&&& End If&&&&&&& Next k&&&&& End If&&&&& ' 点击按钮&&&&& If WebBrowser1.Document.Forms(Form_ID)(i).Value = " 查询 " Then _&&&&&&& WebBrowser1.Document.Forms(Form_ID)(i).Click&& Next& Case Else&& ' 当进入数据页面时执行以下程序&& For i = 0 To WebBrowser1.Document.All.length - 1&&&&& If WebBrowser1.Document.All(i).tagName = "PRE" Then&&&&&&& ' 精确提取数据&&&&&&& Text1 = Text1 + Code(Current) + vbCrLf + _&&&&&&& &&&&&&&&WebBrowser1.Document.All(i).innerText + vbCrLf&&&&&&& Exit For&&&&& End If&& Next&& ' 数据存盘&& Open "C:\Data2.Txt" For Append As #1&& Print #1, Text1: Text1 = "": Close #1&& ' 换下一只股票&& Current = Current + 1&& If Current &= 9 Then&&&& ' 上网任务完成后,应在此调用自动挂断过程。&&&& Form1.MousePointer = 0: MsgBox "Finished!": End&& End If&& ' 回退到主页面,查询下一只股票的信息&& WebBrowser1.GoBack& End SelectEnd Sub
第二部分& 将网页上的二维表导入数据库
&&& 在上一部分中,我们讨论了让程序自动在网上浏览并将所需的数据准确、快速地存储下来的方法。现在,我们将迎接更大的挑战:将网页上以表格形式存在的二维数据提取出来,并存成可直接导入数据库的“Microsoft Excel 逗号分隔值文件”(即.csv文件)。&
&&& 用手工在网页上直接提取类似上图中所示的表格数据是非常困难的。如果这样的表格有数十页甚至上百页之多,手工提取工作将是不可想象的,而且非常容易出错。
&&& 本部分的实例是:将沪深两市全部约1100家个股的财务评分表数据(共54页,每页20家,如上图所示)快速、准确地转换成“.csv”文件。
1. 自动设置CheckBox的值
&&& 由于只有注册用户才能访问上述财务评分表,因此实例程序首先演示了自动注册的功能。下图显示的是注册前以及自动注册后的画面。
&&& 我们在上一部分中已讨论了自动填写输入区以及自动点击按钮等的方法。对于自动设置CheckBox值,其方法完全类似:首先要搜索到该CheckBox的名字,然后将该对象的Checked属性置为True或False即可。
2. 将网页上的二维表导入数据库
&& 首先定义一个IHTMLElementCollection对象用于收集网页上所有的 Table,然后用getElementsByTagName方法执行收集工作:
Dim Tables AsIHTMLElementCollection&& Set Tables = WebBrowser1.Document.getElementsByTagName("Table")
&&& 一个网页上往往有多个 Table。我们用HTMLTable对象来处理每个Table:
Dim Table1 AsHTMLTable&&& For Each Table1 In Tables&&& Next
&&& HTMLTable对象的innerText属性记录了整个 Table的全部信息,包括字段名。因此我们可以根据字段名判断出哪个 Table是我们需要的。
&&& 为了逐行逐列地提取数据,我们还需要HTMLTableRow对象和HTMLTableCell对象:
Dim Row AsHTMLTableRow, Cell As HTMLTableCell&&& For i = 1 To Table1.rows.length - 1&&&&& ' 逐行处理&&&&&& Set Row = Table1.rows(i)&&&&&& j = 0&&&&&& For Each Cell In Row.cells&&&&& ' 逐列处理&&&&&&&&& ' Row.cells(j).innerText即为当前行及当前列上的单元数据&&&&&&&&& Text1 = Text1 + Trim(Row.cells(j).innerText) + ","&&&&&&&&& j = j + 1&&&&&& Next&&&&&& ' 一行处理完毕后,去除行尾的逗号并加上回车&&&&&& Text1 = Left(Text1, Len(Text1) - 1) + vbCrLf&&& Next
&&& 至此,当前网页上的二维表已转换成“.csv”格式。
3. 自动浏览时的页面控制技巧
&&& 我们从上个例子中就已经清晰地看到,自动浏览程序的主体是WebBrowser控件的DocumentComplete事件。只有在当前页面已被完全调入后,我们才能开始对当前页面进行数据处理,然后再根据当前在哪个页面来决定下一步的浏览方向。
&&& 需要指出的是,DocumentComplete事件的发生并不一定意味着当前页面已被全部调入。如果页面上没}

我要回帖

更多关于 墒怎么读 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信