闲人 2004-3-26 22:00
今天继续出货
南客 2004-3-29 21:00
[quote][i]闲人[/i] 于 2004-3-21 12:01 PM 写道:
在老师的公式里作了一些改动,已经能显示"亇股体检数据"了,真是太高兴了,谢谢老师!不过问题是历史数添加的问题还是介决不了,万望老师能给予帮助,谢谢老师! [/quote]
最好是使用数据库,用Excel表格,能保存的数据不多。
如果一定要用Excel表格,则应该带有年的信息,把公式代码稍作修改即可。
闲人 2004-3-30 00:16
南客老师,您好!
南客老师,您好!
今天终于盼来了老师的回复,真是太兴奋了!
老师建议使用数据库,我也真想用,苦于自已才疏学浅,始终建不起Access数据库,目前只能先用Excel了。我试过将Excel的第一行的日期全改成带年份的格式例如(2003-1-2),再将老师公式里3个带有"2004"字样的改成"2003",但是不成功,我实在不知再要改动何处。敬请老师给予再次帮助。
衷心感谢老师!!!
南客 2004-4-1 01:40
参考如下:
[code]
input:n(0,0,1);
fc:0,linethick0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
Dim Conn, Rs, Driver, DBPath
if n=0 then
TableName="各股主力仓位"
else
TableName="各股体验数据"
end if
On Error Resume Next
Set Conn = CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ=E:\FoxTrader_V3\各股体检数据.xls"
Conn.Open Driver & "ReadOnly=0;" & DBPath
Set Rs = CreateObject("ADODB.Recordset")
SQL=("SELECT * FROM [" & TableName & "$] where 名称 Like '%" & gpdm & "%'") '只返回当前股票的数据
Rs.Open SQL, Conn, 3, 2
if Err.Number <> 0 or Rs.Recordcount=0 then
'msgbox "数据不存在"
else
j=1
for i=0 to last
vdate1=DateSerial(vy(i),vm(i),vd(i))
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
while vdate1>vdate2
j=j+1
vdate2=Cdate("2004-" & mid(rs(j).name,strp1,len(rs(j).name)-strp2))
if j>rs.fields.count-1 then Exit for
wend
if vdate1=vdate2 then
vc(i)=Rs(j).Value
j=j+1
if j>rs.fields.count-1 then Exit for
end if
next
end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;
[/code]
附:公式所用的表格数据,请下载。公式中表格的路径请自行修改
闲人 2004-4-2 04:02
再次感谢南客老师
万分感谢南客老师又为我化费了精力和时间重新写了公式!唉!怪我没有说清楚,2004年的数据都能显示。见图。关键问题是怎样修改公式才能将2004年以前的数据在副图中显示出来。我实在不好意思再一再二地麻烦老师,只恳请老师在有可能的情况下帮我介决这一难题。再次表示衷心的感谢!
南客 2004-4-2 12:30
修正后的公式,应该可以显示任意一年的数据吧?
但Excel表格要按我上传的格式。
[[i] 本贴由 南客 于 2004-4-2 12:31 最后编辑 [/i]]
闲人 2004-4-2 19:05
[2004-2/19 [2004-2/20 [2004-2/23 [2004-2/24 [2004-2/25 [2004-2/26
[2004-2-19 [2004-2-20 [2004-2-23 [2004-2-24 [2004-2-25 [2004-2-26
请教南客老师上面二种日期格式用同一公式均能读取吗? 格式不同有什么具体意义吗?
南客 2004-4-2 19:17
[quote][i]闲人[/i] 于 2004-4-2 07:05 PM 写道:
[2004-2/19 [2004-2/20 [2004-2/23 [2004-2/24 [2004-2/25 [2004-2/26
[2004-2-19 [2004-2-20 [2004-2-23 [2004-2-24 [2004-2-25 [2004-2-26
请教南客老师上面二种日期格式用同一公式均能读取吗? 格式不 ... [/quote]
写成以下几种形式,都可以:
[2003-2-19
(2000-2-19
(2001-2/19
(2002/2/19
A2004-2-19
B1995-2-19
第一个字符不是数字,后面时间日期的间隔用“-”或"/"都行
闲人 2004-4-2 20:04
谢谢南客老师的指点!我马上就去修改.
闲人 2004-4-3 00:00
向南客老师汇报
按老师指点将日期全部改成 [2003-12/30 这样的格式,结果不能显示任何图形。于是我将新公式的路径修改到老的Excel里也不能显示,我再将老公式的路径修改到新的Excel里也还是不能显示。我芒然了,不知所措了,又不好意思再开口麻烦老师了。不过老师不厌其烦为大家服务的精神还真让我心服。再次衷心谢谢老师!
南客 2004-4-3 01:22
“路径、Excel文件名、表名”这三处,都要进行相应修改。
先试试我上传的数据,应该可以显示吧?
南客 2004-4-3 02:23
只要理解图示解说,稍加修改,应该可以显示
图中,我修改了上传文件中的部分日期,显示的是000001深发展的情况:
南客 2004-4-3 02:27
调整参数,公式显示“个股体验”的数据(楼上的图,显示仓位数据):
南客 2004-4-3 02:32
实在不行的话,可以把你的数据压缩一下,发到我的信箱,我针对你的数据情况,修改公式代码。
闲人 2004-4-3 03:34
我己按老师指点用了老师上传的表格确实能显示,我赶紧将路径修改到我新的表中,果然也能显示了。但不尽如人意,各个股票所显示的天数各有不同。我的数据暂设为[2003-6-2---2004-4-2,显示最多的是上证指数从[2003-6-2----2003-12-12日,2004年的一天都没有,其他股票多少不等,且相差很大。我又奈何不得了。我只能厚厚脸皮将数据发到老师的邮箱里去了。请老师告诉我邮箱地址好吗?
闲人 2004-4-3 03:46
是:buy@fjfox.com 吗?
南客 2004-4-3 14:40
发到这吧:
[email]nanke@fjfox.com[/email]
闲人 2004-4-3 20:49
[quote][i]huazizo2003[/i] 于 2004-4-3 17:58 写道:
有点复杂!你说呢? [/quote]
请朋友赐教高招:clap:
闲人 2004-4-4 00:07
数据原表式已发
南客老师:数据表格已发至邮箱.
南客 2004-4-4 02:29
OK
看到了,你的数据中,表头有点问题,转换时没转全,查了好一阵才发现。
现在可以了。
公式基本上不变,改了表名、Excel文件名等。
有错的文件,我把修正后的发还给你。邮件中包含了公式文件,你导入后修改文件路径就可以用了。
闲人 2004-4-4 23:06
十二万分感谢南客老师
南客老师﹕您好!
收到您的公式和改好的数据表,既激动又紧张,心里默默念叨着"这下可好了"赶紧操作,果不其然成功了!!!太谢谢了!太谢谢了!:cool::cool::cool:
闲人 2004-4-5 10:43
紧急求助
南客老师:昨晚引入老师发来的新公式后一切很正常,今早集合竞价也正常,等到正式开盘就出现了"执行VBS出现错误",正常行情也不能接收,不知为何?我把路径修改后的公式式一源码贴上请老师给予帮助.谢谢!
这是"个股体检数据"公式. 注: "主力仓位"正常!
[code]input:n(0,0,1);
fc:0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
Dim Conn, Rs, Driver, DBPath
if n=0 then
TableName="Sheet1"
else
TableName="各股体验数据"
end if
'On Error Resume Next
Set Conn = CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ=f:\FoxTrader_V3\各股体验数据.xls"
Conn.Open Driver & "ReadOnly=0;" & DBPath
Set Rs = CreateObject("ADODB.Recordset")
SQL=("SELECT * FROM [Sheet1$] where 名称 Like '%" & gpdm & "%'")
Rs.Open SQL, Conn, 3, 2
if Err.Number <> 0 or Rs.Recordcount=0 then
'msgbox "数据不存在"
else
j=1
for i=0 to last
vdate1=DateSerial(vy(i),vm(i),vd(i))
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
while vdate1>vdate2
j=j+1
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
if j>rs.fields.count-1 then Exit for
wend
if vdate1=vdate2 then
vc(i)=Rs(j).Value
j=j+1
if j>rs.fields.count-1 then Exit for
end if
next
end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;[/code]
闲人 2004-4-5 10:46
不知为什么帖子中会出现这么多头象?决不是有意所为,请不要见怪。
南客 2004-4-5 14:41
改成下面的代码试试:
[code]
fc:0,linethick0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
Dim Conn, Rs, Driver, DBPath
TableName="Sheet1"
'On Error Resume Next
Set Conn = CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ=E:\FoxTrader_V3\各股体验数据.xls"
Conn.Open Driver & "ReadOnly=0;" & DBPath
Set Rs = CreateObject("ADODB.Recordset")
SQL=("SELECT * FROM [Sheet1$] where 名称 Like '%" & gpdm & "%'")
Rs.Open SQL, Conn, 3, 2
if Err.Number <> 0 or Rs.Recordcount=0 then
'msgbox "数据不存在"
else
j=1
for i=0 to last
vdate1=DateSerial(vy(i),vm(i),vd(i))
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
while vdate1>vdate2
j=j+1
if j>rs.fields.count-1 then Exit for
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
wend
if vdate1=vdate2 then
vc(i)=Rs(j).Value
j=j+1
if j>rs.fields.count-1 then Exit for
end if
next
end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;
[/code]
gzk0701 2004-4-5 15:07
谢谢!
闲人 2004-4-5 15:16
谢谢南客老师!要等明天开盘后才能见分晓。谢谢!谢谢!:cool:
闲人 2004-4-5 17:32
南客老师:我将最新的"体检数据"公式引入后,"休检"正常了,"主力仓位"不正常了,为了尽量少烦老师我就依葫芦画瓢,对照着老师的新公式将老公式逐行逐词地比对,修改,结果不成功.现将修改后的公式上传,请老师看看毛病究竟出在什么地方.
闲人 2004-4-6 10:39
谢谢南客老师
今早开盘后无异常,很稳定,只是切换股票时较慢,我己经很满足了.万分感谢南客老师!谢谢!
南客 2004-4-6 16:35
两个公式的代码,其实核心是一样的,只不过换个Excel的文件名罢了,我前面贴过2合一的代码(第3页、第30楼)。
把你传上的代码,修改如下:
[code]
fc:0,linethick0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
Dim Conn, Rs, Driver, DBPath
TableName="Sheet1"
'On Error Resume Next
Set Conn = CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft excel Driver (*.xls)};"
DBPath = "DBQ=F:\FoxTrader_V3\各股主力仓位.xls"
Conn.Open Driver & "ReadOnly=0;" & DBPath
Set Rs = CreateObject("ADODB.Recordset")
SQL=("SELECT * FROM [Sheet1$] where 名称 Like '%" & gpdm &"%'")
Rs.Open SQL, Conn, 3, 2
if Err.Number <> 0 or Rs.Recordcount=0 then
'msgbox "数据不存在"
else
j=1
for i=0 to last
vdate1=DateSerial(vy(i),vm(i),vd(i))
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
while vdate1>vdate2
j=j+1
if j>rs.fields.count-1 then Exit for
vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
wend
if vdate1=vdate2 then
vc(i)=Rs(j).Value
j=j+1
if j>rs.fields.count-1 then Exit for
end if
next
end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;
[/code]
[[i] 本贴由 南客 于 2004-4-6 17:03 最后编辑 [/i]]
南客 2004-4-6 16:37
公式稍慢就没办法了,因为切换个股时,要重新打开文件,并筛选当前个股的数据,还要把相应日期的数据跟对应的K线对齐,进行大量的运算。
闲人 2004-4-7 17:37
非常谢谢南客老师!有一个异想天开的想法﹕能否将Excel或Access作为飞狐的一个内部文件保存,如同日线数据一样,在技术上有可能吗?当然不能涉及飞狐本身的核心机密.请老师不要见笑,只是想想而己.
闲人 2004-4-8 00:17
老师有兴趣教吗?我的脸有点红了!
南客 2004-4-8 02:41
难度比较大些,三言两语说不清
闲人 2004-4-9 01:31
和南客老师说说心里话
[quote][i]南客[/i] 于 2004-4-8 02:41 写道:
难度比较大些,三言两语说不清 [/quote]
看了老师此贴,心里真是矛盾极了.老师为了我的公式化了那么多的时间和精力,还不厌其烦地反复修改,最终使我的心愿得以实现,我的心里很过意不去,又无以回报,本不该再有其他要求.但是心里又很想向老师学点知识,故而有了象将Excel Access作为飞狐内部文件保存啦,还有将分笔成交数据保存后怎样在日周期调用啦等等想法,心里想又却于开口但又很渴望学,怎么办呢???矛盾呐!
zhh0 2004-4-17 19:35
向南客老师问好
我从头细看到了90楼,看到了老师乐于助人的热心肠,我对此内容很感兴趣,很想也学到一点知识,希望也能得到老师的指点,可我是一只大笨鸟哦。
学生:zhh0
zhh0 2004-4-18 16:38
求助
南客老师你好:
我有一个愿望(见附图),你帮我实现好吗?
redKline 2004-5-7 17:45
南客真大师也
目前我还没发现有南客解决不了的问题!
zyh631226 2004-9-24 22:15
谢谢
weilaic 2004-9-26 12:41
学习
cm012604 2004-10-6 11:54
热心的南客老师!谢谢您!
巴菲特羊 2004-10-15 19:22
谢谢南客老师。学习了。
闲人 2004-10-17 22:51
[quote][i]南客[/i] 于 2004-4-5 14:41 写道:
改成下面的代码试试:
[code]
fc:0,linethick0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy&quo ... [/quote]
南客老师您好!趁您在线上,赶紧向老师请教一个难题:如果将电子表格做成象老师要求的那样 ,并且是每只股票一页工作表或者一个"Excel",那公式作怎样的改动才能正确显示图形呢?恳请老师给予帮助!万分感激!