〓〓 飞狐交易师 VBScipt脚本语言参考手册 〓〓
来自:MACD论坛(bbs.shudaoyoufang.com)
作者:冰火岛坐看云起
浏览:8059
回复:6
简介:
飞狐公式系统支持VBS脚本语言
什么是 VBScript?
Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的最新成员,它将灵活的脚本应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机脚本和 Microsoft Internet Information Service 中的 Web 服务器脚本。
易学易用
如果您已了解 Visual Basic 或 Visual Basic for Applications,就会很快熟悉 VBScript。即使您没有学过 Visual Basic,只要学会 VBScript,就能够使用所有的 Visual Basic 语言进行程序设计。虽然您可以从本教程的几个 Web 页面中学习 VBscript,但是本教程并没有告诉您如何编程。要学习编程,请阅读由 Microsoft Press 出版的《Step by Step》。
VBScript应用简介
在各种高级语言中,熟悉和精通VB的人无疑是最多的。VBScript 是 VB 的一个子集,它提供的各种语句和语法、常量和变量、函数和过程的规则与VB完全相同,并且也提供了许多基本的计算、处理函数。VBScript 是标准的脚本语言,广泛应用于动态网页、大型电子商务系统、Windows系统管理等领域。因此,『飞狐交易师』选用 VBScript 作为自己的公式脚本语言(之一),使其公式系统具有强大的计算能力、扩展能力和生命力。
『飞狐交易师』采用嵌入脚本语言的方式引入VBScript,编制方法类似制作ASP、PHP动态网页。采用这种方式可以保持原有公式系统的兼容性,避免一些冲突(例如原条件函数IF与条件语句IF的关键字冲突)。另外,这种方式便于将来再引入新的脚本语言,这就大大提升了『飞狐交易师』公式系统的扩展性和生命力。
由于『飞狐交易师』原公式系统处理变量的方式与VBScript不同,因此,需要通过变量转换在两套语言之间传递数据。『飞狐交易师』为此设计提供了一种对象:FFL(『飞狐交易师』公式语言对象)供VBScript调用,通过赋值语句转入、转出『飞狐交易师』公式系统的变量。
FFL对象现设计有两种属性:(将来会不断扩充)
FFL.VarData("变量名")
传递数组变量数据 FFL.VarStartIndex("变量名")
传递数组变量有效数值起始位置,若脚本处理过程中不改变变量有效数值起始位,则无须调用
实例:达到利润目标后的止赢点计算
该实例综合应用了循环语句、条件语句和数组操作,请注意变量数据是怎样被转入、转出的。
背景:假定买入信号发生的条件是创200天新高,第一次达到条件时发出买入信号,略去随后的买入信号,利润目标是10%,达到目标发出卖出信号,这样的交易系统在原公式系统中无法实现,而用脚本语言就解决了这样的问题,请看代码:
{ 买入信号临时变量:收盘创200天新高 }
BUY:= CLOSE = HHV(CLOSE,200);
{ 初始化卖出信号临时数组变量给下面的脚本用,任意赋给一个有效数值起始位置为0的数组变量即可,注意,若SELL:=0则表示SELL为数值而非数组 }
SELL:= BUY;
{ 初始化收盘价临时数组变量给下面的脚本用 }
CLOSEPRICE:= CLOSE;
{ 用 <% ......%> 嵌入脚本语言,类似编写ASP }
<%
' 将公式系统变量转入VBScript
close = FFL.VarData("CLOSEPRICE")
buy = FFL.VarData( "BUY" )
sell = FFL.VarData("SELL")
' 该变量保存买入价,也表示开仓、平仓状态。如为0则表示空仓(平仓)
lastbuyprice = 0
' 遍历收盘价数组
for i = 0 to UBound( close )
sell( i ) = 0
' 若已买入而且未平仓略去随后的买入信号
if( lastbuyprice > 0 ) then
buy( i ) = 0
end if
'若满足买入条件取买入价,也用于设置开仓
if ( lastbuyprice = 0 ) AND (buy( i ) = 1) then
lastbuyprice = close( i )
end if
' 若已买入且满足卖出条件,产生卖出信号并平仓
if (lastbuyprice >0 ) AND ( close( i ) > ( 1.1 * lastbuyprice ) ) then
sell( i ) = 1
lastbuyprice = 0
end if
next
' 将VBScript变量转出为公式系统变量
FFL.VarData("BUY") = buy
FFL.VarData("SELL") = sell
%>
ENTERLONG: BUY;
EXITLONG: SELL;
有兴趣的用户可以将这段代码扩充为同时考虑最大损失、回落、横盘平仓点的情况。
类似地,运用脚本语言强大的语法、函数,当然也可以在技术指标、条件选股、五彩K线中实现原来不可想象的计算和处理。
[ 本帖最后由 冰火岛坐看云起 于 2007-7-23 17:51 编辑 ] |