飞狐VBS实例

2022-07-11 22:13:19   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《飞狐VBS实例》,欢迎阅读!
飞狐,实例,VBS
作者: 南客

-- 发布时间: 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中能看到计算的结果多好呀(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

msgbox(cstr(va(last)))----代码分解:va(last)表示最后一天计算的数值结果,cstr(va(last))是把计算出的数值转换为字符串msgbox函数只接收字符串)msgbox(cstr(va(last))),在屏幕上弹出一个消息框,显示指定的字符串即计算结果。 为了使消息框显示的信息更具提示性,将本行代码改为 msgbox("最后一天跌停价=" & cstr(va(last)))

显示的消息为两个字符串连接结果,这里使用了字符串连接运算符“&”


代码解释完毕,可以动手操作了。输入并修改了公式代码二后,点确定,在K线图上显示该公式时,会弹出消息框,提示最后一天的计算结果,显然在VBS脚本中计算的结果是正确的。至此可以推断,问题出在VBS代码的最后一行,仔细观察最后一行代码,ffl.vardata("va")=a并对照wilson对接口ffl.vardata()的解释,原来确实写错了,正确的代码应该是ffl.vardata("a")=va 小结:接口ffl.vardata()的两个用法,va=ffl.vardata("a")作用是把公式系统中的序列变量a传递到VBS中的数组vaffl.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

练习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


练习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") '传递公式系统中的常数nVBS中的变量vn

'传递公式系统中序列变量ma5的起始有效周期,赋值给VBS的变量start start=FFL.VarStartIndex("ma5")

last=ubound(vma5) 'last等于数组vspj的最大下标 '下面是一个循环

for i=start to last :rem 循环变量istartlast vma5(i)=vma5(i)*vn '计算vma5上涨10% next

' 将数组vma5传递到公式系统的序列变量ma5 ffl.vardata("ma5")=vma5

FFL.VarStartIndex("ma5")=10 '设置ma5的起始有效周期为10 %>

ma5;{在飞狐公式系统中输出

VBS示例 5 条件语句

if ... then ... else

... end if




本文来源:https://www.wddqxz.cn/b280912d852458fb770b56b2.html

相关推荐