飞狐VBS实例

合集下载

《飞狐公式编写基础》和《通达信公式教程》(二)

《飞狐公式编写基础》和《通达信公式教程》(二)

《飞狐公式编写基础》和《通达信公式教程》(二)《飞狐公式编写基础》和《通达信公式教程》(二)2008-12-20 09:51:03新增函数应用:如何遍历板块股票代码PHP代码:--------------------------------------------------------------------------------bk:='深圳A股';variable:j=1,k=0,dm_len=0,lstr[6]='00000',blksum:=STKCOU NT(bk),dmstr[blksum]='';lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';while j<=blksum do begindm:=NumToStr(k,0);dm_len:=strlen(dm);dm:=lstr[dm_len]+dm;if stkinblock(dm,bk) then begindmstr[j]:=dm;j:=j+1;end;k:=k+1;end;//以下是一些字符串函数及运算的综合应用EXPLAIN(1,dmstr[1]); //在解盘中,输出深圳A股第1只股票的代码EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称EXPLAIN(1,'深圳A股第4只股票的代码是:'+dmstr[4]);EXPLAIN(1,dmstr[5]+'最后收盘价:'+numtostr(close,2));EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------如果您有编程的功底,上面代码一看就明白,但对没有编程经验的狐友们来说就不容易了。

飞狐公式

飞狐公式

这个指标在软件上用肉眼看失败率非常的高,可是用飞狐软件去测试的话成功率却非常的高,请高手来说说其中的原因,到底是用肉眼看的比较真实还是用飞狐软件测试的真实。

N 20 100 7 M 2 100 5SW1:= (EMA(CLOSE,5)*7+EMA(CLOSE,10)*3)/10;PP:=SUM((CLOSE-SW1)/SW1*100+20,1);GG:=SUM((H-SW1)/SW1*100+20,1);DD:=SUM((L-SW1)/SW1*100+20,1);GC:=SUM(PP-GG,1);DC:=SUM(PP-DD,1);PP1:=SUM(CLOSE-SW1,1);LL:=MA(PP1,8);TT:=(C-SW1)/SW1*100;VAR1:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))*80;B:=SMA(VAR1,N,1);BB:=SMA(B,M,1);LC :=REF(CLOSE,1);RSI2:=SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100;RSI3:=SMA(MAX(CLOSE-LC,0),18,1)/SMA(ABS(CLOSE-LC),18,1)*100;MMS:=MA(3*RSI2-2*SMA(MAX(CLOSE-LC,0),16,1)/SMA(ABS(CLOSE-LC),16,1)*100,3);MM:=EMA(MMS,8);波段启动:IF(CROSS(PP1,LL) AND MM<40 AND BB<40 AND LL<0 ,-15,-20);DB:=IF((TT<-10),-11,-20);底部区域:=REF(DB,1);顶部区域:=IF(CROSS(LL,PP1) AND BB>60 AND MM>70 AND LL>0 ,15,20);STICKLINE(FILTER(波段启动=-15,1) ,-15,-20,7,0),COLORRED;STICKLINE(FILTER(顶部区域=15,1) ,15,20,7,0),COLORGREEN;STICKLINE(FILTER(底部区域=-11,1) ,-11,-20,7,0),COLORYELLOW;明天买入:=IF((GC<-6),-9,-20);明天买入2:=IF((GC<-6 AND BB<40 AND MM<40 ),-9,-20);明天卖出:=IF((DC>6 AND BB>40 AND MM>60),9,20);逢低抢反弹:REF(明天买入,1),COLORYELLOW,LINETHICK1;反弹行情:REF(明天买入2,1),COLORRED,LINETHICK1;风险:REF(明天卖出,1),COLORGREEN,LINETHICK1;DRAWICON(FILTER(反弹行情=-9 AND BB<40 AND MM<40 ,1),-6,10);准确率很高的买入卖出提示指标MMS:=MA(SMA((L+H+2*C)/4-REF((L+H+2*C)/4,1),5,1)/SMA(ABS((L+H+2*C)/4-REF ((L+H+2*C)/4,1)),5,1)*100,1)+50;G1:=IF(-MMS>95,0,20);UOO:=(-(((CLOSE-LLV(CLOSE,7))/(HHV(CLOSE,7)-LLV(CLOSE,7))*100=100)>0 AND G1)+1);{明日均线:=REF(C,2)*2-REF(C,5),LINETHICK0,COLOR550055 ;后日均线:=REF(C,1)*2-REF(C,4),LINETHICK0,COLOR008800;大后天均线:=C*2-REF(C,3),LINETHICK0,COLOR008888;}KS:=(((CLOSE - EMA(CLOSE,13)) / EMA(CLOSE,13)) * (0 - 100));KS1:=IF(BARSCOUNT(C)=1,C/10000,(1-C/SMA(C,13,1))*100);趋势线:=EMA(((KS / 10) + EMA(CLOSE,10)),3);AA:= - 100 * (趋势线- CLOSE) / 趋势线;AC:=(EMA(AA,5) );SSL:=EMA(CLOSE,3);MMV:=EMA(((SLOPE(CLOSE,22) * 20) + CLOSE),55);MM:=MMV;{STICKLINE(((SSL > MM) ),SSL,MM,0.1,0),COLORRED;}SA:=(MM * 0.985);SS:=(MA(CLOSE,5));DD:=(MA(CLOSE,13));GG:=(MA(CLOSE,21));捞钱手:IF(((SSL > MM)),MM,SA),LINETHICK2,COLORWHITE;VAR2Y:=(((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)) * 100);VAR3Y:=(((CLOSE - REF(OPEN,29)) / REF(OPEN,29)) * 100);VAR4Y:=REF(CLOSE,1);VAR5Y:=((SMA(MAX((CLOSE - VAR4Y),0),6,1) / SMA(ABS((CLOSE - VAR4Y)),6,1)) * 100);VAR6Y:=((SMA(MAX((CLOSE - VAR4Y),0),12,1) / SMA(ABS((CLOSE - VAR4Y)),12,1)) * 100);VAR7Y:=((SMA(MAX((CLOSE - VAR4Y),0),24,1) / SMA(ABS((CLOSE - VAR4Y)),24,1)) * 100);VAR8Y:=(((CLOSE - LLV(LOW,45)) / (HHV(HIGH,45) - LLV(LOW,45))) * 100);VAR9Y:=SMA(VAR8Y,3,1);VARAY:=SMA(VAR9Y,3,1);VARBY:=((3 * VAR9Y) - (2 * VARAY));VARCY:=(CROSS(VAR5Y,10) AND (VAR3Y < (0 - (28 * 20))));VARDY:=((100 - CROSS(76,VAR5Y)) AND (VAR3Y > (5 * 20)));DRAWICON(((CROSS(76,VAR5Y) AND (VAR3Y > 5)) ),(HIGH * 1.01),5),COLORFFFFFF; VAREY:=((((CROSS(VAR9Y,VARAY) AND (VARAY < 10)) AND (VAR3Y < (0 - 30))) AND (VAR2Y > 3)) * 30);VARFY:= - ((((VARAY < 11) AND (VAR5Y < 15)) AND (VAR3Y < (0 - 26))) * 10); DRAWICON((CROSS(VARFY,(0 - 9))),(LOW * 0.998),4);能量线:=DMA(((CLOSE + OPEN) / 2),(VOL / (SMA(VOL,4,1) * 4)));上开:=O;上收:=C;上高:=H;上低:=L;JJ:=(上开+上高+上低)/3;A:=EMA(JJ,4);B:REF(A,1),POINTDOT,COLORYELLOW;智能黄金线:A,COLORYELLOW,LINETHICK1;VA1:=EMA(上收,8);VA2:=EMA(上收,20);DRAWTEXT(CROSS(VA2,VA1),VA1*1.10,'止损'),COLORYELLOW;DRAWTEXT(CROSS(VA1,VA2)AND(C>=O)AND 智能黄金线>REF(智能黄金线,1),VA1*0.96,'买入'),COLOR00FF00;选手A:=MA(上收,3);箱顶A:=MA(REF(HHV(上收,6),1),3);箱底A:=MA(REF(LLV(上收,3),1),3);T1:=MA(上收,20)>=REF(MA(上收,20),1);T2:=CROSS(选手A,箱底A) AND 箱顶A/箱底A>100/100 AND T1;T3:=CROSS(箱顶A,选手A) AND 箱顶A/箱底A>100/100;选手:=MA(上收,2);箱顶:MA(REF(HHV(上收,30),1),2),COLOR0000FF,LINETHICK2;箱底:MA(REF(LLV(上收,30),1),2),COLOR00FF00,LINETHICK2;T4:=CROSS(选手,箱底) AND 箱顶/箱底>110/100;T5:=CROSS(箱顶,选手) AND 箱顶/箱底>110/100;VAR1:=(上收-LLV(上低,27))/(HHV(上高,27)-LLV(上低,27))*100;VAR2:=SMA(VAR1,3,1);VAR3:=SMA(VAR2,3,1);VAR4:=SMA(VAR3,3,1);DRAWTEXT(CROSS(VAR3,VAR4)AND(C>=O)AND VAR3<40 AND UOO>0,箱底,'★'),COLORF00FF0;DRAWTEXT(CROSS(VAR4,VAR3) AND VAR4>75 ,箱顶*1.03,'减磅'),COLORF0F000; VAR111:=CLOSE>REF(CLOSE,1) AND CLOSE>REF(CLOSE,2);VARD:=CLOSE<REF(CLOSE,1)AND CLOSE<REF(CLOSE,2);VARE :=REF(VARD,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2); VARF :=REF(VARE,1) AND CLOSE<=REF(CLOSE,1) AND CLOSE>=REF(CLOSE,2); VAR10 :=REF(VARF,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2); VAR11:=REF(VAR10,1) AND CLOSE<=REF(CLOSE,1) AND CLOSE>=REF(CLOSE,2); VAR12:=REF(VAR11,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2); VAR13:=REF(VAR12,1) AND CLOSE<=REF(CLOSE,1) AND CLOSE>=REF(CLOSE,2); VAR14:=REF(VAR13,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2); VAR15:=REF(VAR14,1) AND CLOSE<=REF(CLOSE,1) AND CLOSE>=REF(CLOSE,2); VAR16:=REF(VAR15,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2); VAR17:=REF(VAR16,1) AND CLOSE<=REF(CLOSE,1) AND CLOSE>=REF(CLOSE,2); VAR18:=REF(VAR17,1) AND CLOSE>=REF(CLOSE,1) AND CLOSE<=REF(CLOSE,2);VAR19:=REF(VARD OR VARE OR VARF OR VAR10 OR VAR11 OR VAR12 OR VAR13 OR VAR14 OR VAR15 ORVAR16 OR VAR17 OR VAR18,1) AND VAR1;趋势线1:=FORCAST(CLOSE,7);FK:=100*(C-REF(C,1))/REF(C,1);PK1:=IF(C<REF(O,1) AND FK<0,1,0);PK2:=IF(C<REF(O,2) AND FK<0,1,0);STICKLINE((PK1=0 AND REF(PK1,1)=1 AND PK2=0 AND REF(PK2,1)=1)AND(趋势线1>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),OPEN,CLOSE,3,0),COLORRED; STICKLINE((PK1=0 AND REF(PK1,1)=1 AND PK2=0 AND REF(PK2,1)=1)AND(趋势线1>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),H,L,0.5,0),COLORRED;PK3:=(((CLOSE / OPEN) > 1.04) AND (CLOSE <(SMA(HIGH,21,2) * 1.05))) AND ((CLOSE - REF(CLOSE,1)) > 0);STICKLINE(PK3 AND(趋势线1>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),CLOSE,OPEN,3,0),COLORRED;STICKLINE(PK3 AND(趋势线1>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),H,L,0.5,0),COLORRED;STICKLINE(VAR19 AND(趋势线>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),CLOSE,OPEN,3,0),COLORRED;STICKLINE(VAR19 AND(趋势线>REF(趋势线1,1)OR 智能黄金线>REF(智能黄金线,1)),H,L,0.5,0),COLORRED;买进价:=((C-REF(MA(C,6),1))/6+MA(C,6))*1.004;买进条件:=CROSS(C,买进价) AND 买进价>REF(买进价,1);STICKLINE(买进条件AND 捞钱手>智能黄金线AND 智能黄金线>REF(智能黄金线,1),L,L*0.998,7,0),COLORWHITE;买线:=EMA(C,2);卖线:=EMA(SLOPE(C,21)*20+C,42);DRAWTEXT(CROSS(买线,卖线)AND 箱顶>=REF(箱顶,1),箱底,'★'),COLOR00FFFF; STICKLINE(CROSS(买线,卖线),OPEN,CLOSE,3,0),COLOR00FFFF;STICKLINE(CROSS(买线,卖线),H,L,0.5,0),COLOR00FFFF;准确率最高的三种炒股指标《转》作者:财金人笔者对中国十年股市运行情况,选择二十五项的指标通过计算机进行运用测试,出人意料的是诸如KDJ、MACD、均线指标、布林指标等著名指标的成功并不是特别高,准确率最高的三种指标分别是Vr、Bias和RSI三个指标,现分别介绍如下:一、vr 指标原理及应用㈠用途:该指标主要的作用在于以成交量的角度测量股价的热度,表现股市的买卖气势,以利于投资者掌握股价可能之趋势走向。

vbs代码大全

vbs代码大全

vbs代码大全VBScript(Visual Basic Scripting Edition)是一种微软公司开发的脚本语言,它是Visual Basic的一种简化版本,用于在Windows系统上执行脚本和自动化任务。

VBScript可以用于编写各种类型的脚本,包括系统管理、网页交互、数据处理等。

在本文中,我们将介绍一些常用的VBS代码,帮助您更好地理解和应用这门语言。

首先,我们来看一段简单的VBS代码,用于在Windows系统上显示一个消息框:```vbscript。

MsgBox "Hello, World!"```。

以上代码使用MsgBox函数来显示一个消息框,其中包含"Hello, World!"这个消息。

这是一个非常简单的示例,但它展示了VBS代码的基本语法和结构。

接下来,我们将介绍一些更复杂的VBS代码示例,以便更全面地了解这门语言的特性和用法。

在VBScript中,我们可以使用条件语句来根据不同的条件执行不同的代码块。

下面是一个使用条件语句的示例:```vbscript。

Dim num。

num = InputBox("请输入一个数字,")。

If IsNumeric(num) Then。

If num > 0 Then。

MsgBox "这是一个正数。

"ElseIf num < 0 Then。

MsgBox "这是一个负数。

"Else。

MsgBox "这是零。

"End If。

Else。

MsgBox "输入无效。

"End If。

```。

以上代码首先使用InputBox函数获取用户输入的数字,然后使用条件语句判断这个数字的正负和零。

这个示例展示了VBS代码中条件语句的使用方法,以及如何处理用户输入的数据。

除了条件语句,VBScript还支持循环结构,可以重复执行特定的代码块。

vbs实例

vbs实例

1、VBS改写、追加文件Dim fso,openFileSet fso=CreateObject("Scripting.FileSystemObject")Set openFile=fso.OpenTextFile("C:\test.txt",2,True) '1表示只读,2表示可写,8表示追加openFile.Write "Hello World!"openFile.Close2、VBS读取文件ReadAll 读取全部Dim fso,openFileSet fso=CreateObject("Scripting.FileSystemObject")Set openFile=fso.OpenTextFile("C:\test.txt",1,True)MsgBox(openFile.ReadAll)3、VBS读取文件ReadLine 读取一行Dim fso,openFileSet fso=CreateObject("Scripting.FileSystemObject")Set openFile=fso.OpenTextFile("C:\test.txt",1,True)MsgBox(openFile.ReadLine())MsgBox(openFile.ReadLine()) '如果读取行数超过文件的行数,就会出错4、VBS读取文件Read 读取n个字符Dim fso,openFileSet fso=CreateObject("Scripting.FileSystemObject")Set openFile=fso.OpenTextFile("C:\test.txt",1,True)MsgBox(openFile.Read(2)) '如果超出了字符数,不会出错。

vbs if else语句

vbs if else语句

vbs if else语句VBScript是一种微软开发的脚本语言,可以用于Windows操作系统的自动化任务和脚本编写。

其中的if else语句是一种常用的条件控制语句,用来根据特定条件执行不同的代码块。

下面将列举10个使用VBScript的if else语句的例子,每个例子都能满足上述要求。

1. 判断一个数的正负性:```vbscriptDim numnum = InputBox("请输入一个数字")If num > 0 ThenMsgBox "这是一个正数"ElseIf num < 0 ThenMsgBox "这是一个负数"ElseMsgBox "这是零"End If```2. 判断一个数是否为偶数:```vbscriptDim numIf num Mod 2 = 0 ThenMsgBox "这是一个偶数"ElseMsgBox "这是一个奇数"End If```3. 根据用户输入的年份判断是否为闰年:```vbscriptDim yearyear = InputBox("请输入一个年份")If (year Mod 4 = 0 And year Mod 100 <> 0) Or year Mod 400 = 0 ThenMsgBox "这是一个闰年"ElseMsgBox "这不是一个闰年"End If```4. 根据用户输入的成绩判断等级:```vbscriptDim scoreIf score >= 90 ThenMsgBox "优秀"ElseIf score >= 80 ThenMsgBox "良好"ElseIf score >= 70 ThenMsgBox "中等"ElseIf score >= 60 ThenMsgBox "及格"ElseMsgBox "不及格"End If```5. 判断用户输入的字符串是不是回文串:```vbscriptDim str, istr = InputBox("请输入一个字符串")For i = 1 To Len(str) / 2If Mid(str, i, 1) <> Mid(str, Len(str) - i + 1, 1) Then MsgBox "这不是一个回文串"Exit ForNextIf i > Len(str) / 2 ThenMsgBox "这是一个回文串"End If```6. 根据用户输入的月份判断季节:```vbscriptDim monthmonth = InputBox("请输入一个月份")If month >= 3 And month <= 5 ThenMsgBox "这是春季"ElseIf month >= 6 And month <= 8 Then MsgBox "这是夏季"ElseIf month >= 9 And month <= 11 Then MsgBox "这是秋季"ElseMsgBox "这是冬季"End If```7. 根据用户输入的年龄判断是否成年:Dim ageage = InputBox("请输入一个年龄")If age >= 18 ThenMsgBox "已成年"ElseMsgBox "未成年"End If```8. 根据用户输入的两个数判断大小关系:```vbscriptDim num1, num2num1 = InputBox("请输入第一个数字") num2 = InputBox("请输入第二个数字") If num1 > num2 ThenMsgBox "第一个数字大于第二个数字" ElseIf num1 < num2 ThenMsgBox "第一个数字小于第二个数字" ElseMsgBox "两个数字相等"End If```9. 根据用户输入的年份判断属相:```vbscriptDim yearyear = InputBox("请输入一个年份") Select Case year Mod 12Case 0MsgBox "猴"Case 1MsgBox "鸡"Case 2MsgBox "狗"Case 3MsgBox "猪"Case 4MsgBox "鼠"Case 5MsgBox "牛"Case 6MsgBox "虎"Case 7MsgBox "兔"Case 8MsgBox "龙"Case 9MsgBox "蛇"Case 10MsgBox "马"Case 11MsgBox "羊"End Select```10. 根据用户输入的数字判断星期几:```vbscriptDim dayday = InputBox("请输入一个数字(1-7)") Select Case dayCase 1MsgBox "星期一"Case 2MsgBox "星期二"Case 3MsgBox "星期三"Case 4MsgBox "星期四"Case 5MsgBox "星期五"Case 6MsgBox "星期六"Case 7MsgBox "星期日"End Select```以上是10个使用VBScript的if else语句的例子,分别涵盖了数字判断、字符串判断、条件判断等不同的场景。

飞狐函数大全(含例句)

飞狐函数大全(含例句)

★飞狐常用函数大全入口[含示意及用法]一.常数函数1.常数函数CAPITAL 流通盘大小用法:CAPITAL,返回流通盘大小,单位为手。

对于A股得到流通A股,B股得到B股总股本,指数为0注意:该函数返回常数CURRENTDATE 计算时的当前日期用法:CURRENTDATE,返回计算时的日期,该日期是从1900年开始的天数,例如2003年8月1日表示为1030801。

注意:该函数返回常数CURRENTTIME 计算时的当前时间返回计算时的时间。

用法:CURRENTTIME,返回计算时的时间,格式为时分秒,有效范围(000000-235959)注意:该函数返回常数DATACOUNT 序列数据量用法ATACOUNT,返回序列数据数量。

注意:该函数返回常数DATAPERIOD 数据周期类型当前数据周期类型。

用法ATAPERIOD。

返回值范围为0-12,分别表示分笔成交(0)、1分钟(1)、5分钟(2)、15分钟(3)、30分钟(4)、60分钟(5)、日(6)、周(7)、月(8)、年(9)、多日(10)、多分钟(11)、多秒(12)LBOUND(X) 序列下界序列最小下标。

用法:LBOUND(X),返回序列X的下界(最小下标),即为第一个有效数据下标,若无有效数据返回0可通过SETLBOUND(X,N)函数设置序列变量X的下界(最小下标)MINDIFF 最小变动价位返回当前证券最小变动价位。

用法:MINDIFF,对于深沪股票为0.01,深沪基金为0.001注意:该函数返回常数STKTYPECATEGORY 证券类型当前证券类型。

用法:STKTYPE返回值范围为0-13,分别表示指数、A股、B股、基金、债券、其它证券、外汇、期货、其它股票、商品现货、选择权、凭证权证、投资指数、板块指数UBOUND(X) 序列上界序列最大下标。

用法:UBOUND(X),返回序列的上界(最大下标)VOLUNIT 每手股数每手股数。

vbs编程必背50个程序

vbs编程必背50个程序

VBS编程必背50个程序什么是VBS编程?VBS,全称为Visual Basic Scripting,是一种被广泛应用于Windows系统的脚本语言。

它基于Visual Basic,但语法更加简单且易于学习和使用。

VBS可以用于编写脚本文件,实现各种任务,如自动化任务、系统管理以及图形用户界面等。

为什么要掌握VBS编程?VBS编程是一种非常有用的技能,特别是对于那些需要在Windows环境中进行自动化和批量处理的人来说。

掌握VBS编程可以帮助你提高工作效率,简化重复的任务,并增加系统管理和故障排除的能力。

下面是50个VBS编程的示例程序:1. Hello WorldMsgBox "Hello World!"这个简单的程序会弹出一个对话框,显示“Hello World!”。

2. 计算器Dim num1, num2, resultnum1 = InputBox("请输入第一个数字:")num2 = InputBox("请输入第二个数字:")result = num1 + num2MsgBox "计算结果为:" & result这个程序会要求你输入两个数字,然后将它们相加并显示结果。

3. 遍历文件夹Set fso = CreateObject("Scripting.FileSystemObject")Set folder = fso.GetFolder("C:\Path\To\Folder")For Each file In folder.FilesMsgBox Next这个程序会遍历指定文件夹中的所有文件,并依次弹出每个文件名。

4. 创建文件Set fso = CreateObject("Scripting.FileSystemObject")Set file = fso.CreateTextFile("C:\Path\To\File.txt")file.WriteLine "Hello World!"file.Close这个程序会创建一个文本文件,并在其中写入“Hello World!”。

飞狐公式入门

飞狐公式入门
INPUT语句的用法注释如下:
所属类别: 控制语句 参数数量: 0
申明并设置参数 语法: INPUT:pname1(default,min,max,step),pname2(dft,min,max,step)...; pname表示参数名, default表示缺省值,min表示最小值,max表示最大值, step表示优化步长,除default外都可省略。 例如: INPUT:N(5), M(10,1,100,2); 表示定义参数N,缺省值为5 定义参数M,缺省值为10,最小值为1,最大值为100,优化步长为2
ma5:ma(close,n1); ma10:ma(close,n2) ma20:ma(close,n3); ma30:ma(close,n4); ma60:ma(close,n5);
在公式编辑器的参数表中,输入参数n1----n5的最小、最大、缺省值,如下图所示。 为了验证公式代码是否正确,用鼠标左键点“调试公式”按钮,飞狐提示“行3:语句缺少分号”,仔细分析公式代码,原来是第2行少
别名: 简单移动平均 所属类别: 引用函数 参数数量: 2
求简单移动平均。 用法: MA(X,N),求X的N日移动平均值。 算法: (X1+X2+X3+...+Xn)/N 例如: MA(CLOSE,10)表示求10日均价
查询函数ma的注释,也可参考下图方法,只要鼠标移到公式代码中的函数名称处,随时可弹出浮动框获取公式代码中的函 数注释,下图中试试把鼠标移到close处看看会显示什么。
上一页 下一页
file://C:\Documents and Settings\Administrator\Local Settings\Temp\4... 2010-7-7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
相关文档
最新文档