飞狐VBS实例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习 1:阅读 VBScript 帮助文件,输入以下公式代码,看看结果,并思考代码“for i=0 to last step 2”中“step 2”的作用是什 么?
a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last step 2 va(i)=va(i)*vn next ffl.vardata("a")=va %> a
小结:接口 ffl.vardata()的两个用法,va=ffl.vardata("a")作用是把公式系统中的序列变量 a 传递到 VBS 中的数组 va, ffl.vardata("a")=a 的作用是把 VBS 中的数组传递到公式系统的序列变量 a。
思考:找一个上市天数少的股票,如 600028 试试以下代码,你得出了什么结论? 公式代码三: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn msgbox("跌停价=" & cstr(va(i))) next msgbox(cstr(va(last))) ffl.vardata("a")=va %> a
显示的消息为两个字符串连接结果,这里使用了字符串连接运算符“&”。
代码解释完毕,可以动手操作了。输入并修改了公式代码二后,点确定,在 K 线图上显示该公式时,会弹出消息框,提示 最后一天的计算结果,显然在 VBS 脚本中计算的结果是正确的。至此可以推断,问题出在 VBS 代码的最后一行,仔细观察最后 一行代码,ffl.vardata("va")=a 并对照 wilson 对接口 ffl.vardata()的解释,原来确实写错了,正确的代码应该是 ffl.vardata("a")=va
msgbox(cstr(va(last)))----代码分解:va(last)表示最后一天计算的数值结果,cstr(va(last))是把计算出的数值转换为字符串 (msgbox 函数只接收字符串),msgbox(cstr(va(last))),在屏幕上弹出一个消息框,显示指定的字符串即计算结果。
为了使消息框显示的信息更具提示性,将本行代码改为 msgbox("最后一天跌停价=" & cstr(va(last)))
vma5(i)=vma5(i)*vn '计算 vma5 上涨 10% next ' 将数组 vma5 传递到公式系统的序列变量 ma5 ffl.vardata("ma5")=vma5 FFL.VarStartIndex("ma5")=10 '设置 ma5 的起始有效周期为 10 %> ma5;{在飞狐公式系统中输出
练习 2:阅读 VBScript 帮助文件,查看 Inputbox()和 Cint()函数的用法,把修正后的公式代码一进行修改,使得最后一天的 结果等于你从键盘上输入的任意数值。
VBS 示例 4 飞狐的接口函数 FFL.VarStartIndex()
// 传递数组变量有效数值起始位置。例如:FFL.VarStartIndex("VAR1")=10 示例 ma5:=ma(close,5);{序列变量,其序列值是收盘价的 5 均价} n:=1.1; <% rem 将公式系统中的序列 ma5 传入到 VBS 中的数组 vma5 vma5=ffl.vardata("ma5") vn=ffl.vardata("n") '传递公式系统中的常数 n 到 VBS 中的变量 vn '传递公式系统中序列变量 ma5 的起始有效周期,赋值给 VBS 的变量 start start=FFL.VarStartIndex("ma5") last=ubound(vma5) 'last 等于数组 vspj 的最大下标 '下面是一个循环 for i=start to last :rem 循环变量 i 从 start 到 last
作者: 南客 -- 发布时间: 2001/11/19 11:47am [这个贴子最后由南客在 2001/11/21 11:26am 编辑]
公式代码一: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn next ffl.vardata("va")=a '这里出问题了,应该是 ffl.vardata("a")=va %> a 上述代码的目的是计算收盘价对应的跌停价,但观察结果,输出的却仍是收盘价,错在哪?难道是我们的程序计算错了?
VBS 示例 5 条件语句
if ... then ...
else ...
end if
如果在 VBS 中能“看到”计算的结果多好呀!(DEBUG 方法)为了判断 VBS 程序是否计算错误,在上述代码 next 后插入一个 函数 msgbox,可以帮助我们找到错误。代码如下: 公式代码二: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn next msgbox(cstr(va(last))) ffl.vardata("va")=a %> a
a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last step 2 va(i)=va(i)*vn next ffl.vardata("a")=va %> a
小结:接口 ffl.vardata()的两个用法,va=ffl.vardata("a")作用是把公式系统中的序列变量 a 传递到 VBS 中的数组 va, ffl.vardata("a")=a 的作用是把 VBS 中的数组传递到公式系统的序列变量 a。
思考:找一个上市天数少的股票,如 600028 试试以下代码,你得出了什么结论? 公式代码三: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn msgbox("跌停价=" & cstr(va(i))) next msgbox(cstr(va(last))) ffl.vardata("a")=va %> a
显示的消息为两个字符串连接结果,这里使用了字符串连接运算符“&”。
代码解释完毕,可以动手操作了。输入并修改了公式代码二后,点确定,在 K 线图上显示该公式时,会弹出消息框,提示 最后一天的计算结果,显然在 VBS 脚本中计算的结果是正确的。至此可以推断,问题出在 VBS 代码的最后一行,仔细观察最后 一行代码,ffl.vardata("va")=a 并对照 wilson 对接口 ffl.vardata()的解释,原来确实写错了,正确的代码应该是 ffl.vardata("a")=va
msgbox(cstr(va(last)))----代码分解:va(last)表示最后一天计算的数值结果,cstr(va(last))是把计算出的数值转换为字符串 (msgbox 函数只接收字符串),msgbox(cstr(va(last))),在屏幕上弹出一个消息框,显示指定的字符串即计算结果。
为了使消息框显示的信息更具提示性,将本行代码改为 msgbox("最后一天跌停价=" & cstr(va(last)))
vma5(i)=vma5(i)*vn '计算 vma5 上涨 10% next ' 将数组 vma5 传递到公式系统的序列变量 ma5 ffl.vardata("ma5")=vma5 FFL.VarStartIndex("ma5")=10 '设置 ma5 的起始有效周期为 10 %> ma5;{在飞狐公式系统中输出
练习 2:阅读 VBScript 帮助文件,查看 Inputbox()和 Cint()函数的用法,把修正后的公式代码一进行修改,使得最后一天的 结果等于你从键盘上输入的任意数值。
VBS 示例 4 飞狐的接口函数 FFL.VarStartIndex()
// 传递数组变量有效数值起始位置。例如:FFL.VarStartIndex("VAR1")=10 示例 ma5:=ma(close,5);{序列变量,其序列值是收盘价的 5 均价} n:=1.1; <% rem 将公式系统中的序列 ma5 传入到 VBS 中的数组 vma5 vma5=ffl.vardata("ma5") vn=ffl.vardata("n") '传递公式系统中的常数 n 到 VBS 中的变量 vn '传递公式系统中序列变量 ma5 的起始有效周期,赋值给 VBS 的变量 start start=FFL.VarStartIndex("ma5") last=ubound(vma5) 'last 等于数组 vspj 的最大下标 '下面是一个循环 for i=start to last :rem 循环变量 i 从 start 到 last
作者: 南客 -- 发布时间: 2001/11/19 11:47am [这个贴子最后由南客在 2001/11/21 11:26am 编辑]
公式代码一: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn next ffl.vardata("va")=a '这里出问题了,应该是 ffl.vardata("a")=va %> a 上述代码的目的是计算收盘价对应的跌停价,但观察结果,输出的却仍是收盘价,错在哪?难道是我们的程序计算错了?
VBS 示例 5 条件语句
if ... then ...
else ...
end if
如果在 VBS 中能“看到”计算的结果多好呀!(DEBUG 方法)为了判断 VBS 程序是否计算错误,在上述代码 next 后插入一个 函数 msgbox,可以帮助我们找到错误。代码如下: 公式代码二: a:=close; n:=0.9; <% va=ffl.vardata("a") vn=ffl.vardata("n") '传常量到 VN last=ubound(va) for i=0 to last va(i)=va(i)*vn next msgbox(cstr(va(last))) ffl.vardata("va")=a %> a