gupiao 2008-5-15 16:38
运用 VBS 输出数据到 ACCESS 文件
HX817老师
对于指定板块,从飞狐中导出以下格式内容(每分钟一份或更短时间周期)如:
2008-5-15 代码 名称 昨收 今开 最高 最低 最新 成交额 成交量
01 1A0001 上证指数
02 1A0002 A股指数
03 1A0003 B股指数
04 1B0001 工业指数
05 1B0002 商业指数
06 1B0004 地产指数
07 1B0005 公用指数
08 1B0006 综合指数
09 1B0007 上证 180
10 1B0008 基金指数
11 399001 深证成指
12 399002 成份A指
13 399003 成份B指
14 399004 深证100R
15 399100 新 指 数
16 399101 中小板综
17 399106 深证综指
18 399107 深证A指
19 399108 深证B指
20 399110 农林指数
21 399120 采掘指数
22 399130 制造指数
23 399131 食品指数
24 399132 纺织指数
25 399133 木材指数
26 399134 造纸指数
27 399135 石化指数
28 399136 电子指数
29 399137 金属指数
30 399138 机械指数
31 399139 医药指数
32 399140 水电指数
33 399150 建筑指数
34 399160 运输指数
35 399170 IT 指数
36 399180 批零指数
37 399190 金融指数
38 399200 地产指数
39 399210 服务指数
40 399220 传播指数
41 399230 综企指数
42 399300 沪深 300
请老师能尽快实现上述要求,谢谢!
hx817 2008-5-17 00:45
参考代码
使用公式,在查看股票时,会自动按照不同的数据周期,对应在飞狐目录下 user 目录下生成对应的 out(0,1,2,3,4,5) 的数据库文件[code]dt:datatype;
gpdm:=stklabel; scdm:=marketlabel;
fc:=close; fo:=open; fl:=low; fh:=high; fv:=vol;
dy:=year; dm:=month; dd:=day;
ts:=intpart(time/10000);
tf:=intpart((time-ts*10000)/100);
tm:=time-ts*10000-tf*100;
//exit;
<%
vfo=ffl.vardata("fo")
vfh=ffl.vardata("fh")
vfl=ffl.vardata("fl")
vfc=ffl.vardata("fc")
vfv=ffl.vardata("fv")
gpdm=ffl.vardata("gpdm")
scdm=ffl.vardata("scdm")
dt=ffl.vardata("dt")
vdy=ffl.vardata("dy")
vdm=ffl.vardata("dm")
vdd=ffl.vardata("dd")
vts=ffl.vardata("ts")
vtf=ffl.vardata("tf")
vtm=ffl.vardata("tm")
n=ffl.vardata("n")
Const Jet3x = 4 'Access97数据库格式
Const Jet4x = 5 'Access2000数据库格式
'创建 Access2000 数据库,位于飞狐安装目录user子目录下,按照不同数据类型保存对应的OUT*.mdb数据文件
FileName = "e:\foxtrader\user\out" & dt & ".mdb" '这里根据自己飞狐所在的目录修改
TableName = scdm & gpdm
Set fso = CreateObject("Scripting.FileSystemObject")
If (Not fso.FileExists(FileName)) Then
CreateNewMDB FileName, Jet4x
End If
On Error Resume Next
CreateNewTable TableName
Dim Conn,RS
WriteTable FileName, TableName
last=ubound(vfc)
if Rs.RecordCount<last+1 then
if Rs.RecordCountstart=0 then start=0 else start=last
for i=start to last
vdate=DateSerial(vdy(i), vdm(i), vdd(i))
vtime=TimeSerial(vts(i), vtf(i), vtm(i))
Rs.AddNew
Rs.Fields("日期")=vdate
Rs.Fields("时间")=vtime
Rs.Fields("开盘价")=Round(vfo(i),2)
Rs.Fields("最高价")=Round(vfh(i),2)
Rs.Fields("最低价")=Round(vfl(i),2)
Rs.Fields("收盘价")=Round(vfc(i),2)
Rs.Fields("成交量")=Round(vfv(i),2)
'Rs.Update
next
Rs.UpdateBatch
End if
Set Rs=Nothing
Set Conn=Nothing
Sub WriteTable(FileName,TableName)
Set Conn=CreateObject("ADODB.Connection")
Conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open FileName
Set Rs=CreateObject("ADODB.Recordset")
Rs.CursorType = 3
Rs.LockType = 3
Rs.Open TableName, Conn
End Sub
Sub OpenTable(TableName) '打开表
Set Conn=CreateObject("ADODB.Connection")
Conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open FileName
SQL="Select * From TableName"
Set RS=conn.Execute(SQL)
End Sub
Sub CreateNewTable(TableName) '创建新表
Dim conn,rs
Set conn=CreateObject("ADODB.Connection")
Conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open FileName
SQL="Create Table " & TableName & "([日期]Text(10),[时间]Text(8),[开盘价]Single,[最高价]Single,[最低价]Single,[收盘价]Single,[成交量]Single)"
Set RS=conn.Execute(SQL)
Set Rs=Nothing
Set Conn=Nothing
End Sub
Sub CreateNewMDB(FileName, Format) '创建Access2000数据库
Dim Catalog
Set Catalog = CreateObject("ADOX.Catalog")
Catalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Jet OLEDB:Engine Type=" & Format & _
";Data Source=" & FileName
Set CataLog=Nothing
End Sub
%>[/code]
hx817 2008-5-19 13:59
VBS 运行环境设置查看
[url]http://bbs.fjfox.com/thread-33707-1-1.html[/url]
hx817 2008-5-20 10:35
盘中实时输出数据的方法
1、在系统选项中设置好指标刷新的时间周期
[attach]27019[/attach]
2、切换到需要输出数据的板块,再找到相应的指标公式,用鼠标右键点击公式,使用“指标排序”功能
[attach]27020[/attach]
设置分析周期(在这个公式中就是对应的数据输出周期)
[attach]27021[/attach]
3、设置好,回到动态显示屏,可以看到刷新数据,及排序好的指标数据,这样系统就会自动 1 分钟输出一次数据
[attach]27022[/attach]
kuhasu 2008-5-23 21:05
我顶下
要dll的话可以吗?
另外买四买五算不算分笔里的
还是分笔数据包是到买三的
有没有简单点儿的分笔导入办法呢....新更新了系统,所以一年多的分笔要重新导入才行