搜索
查看: 8059|回复: 6

〓〓 飞狐交易师 VBScipt脚本语言参考手册 〓〓

[复制链接]

签到天数: 103 天

发表于 2005-8-12 12:06 | 显示全部楼层

〓〓 飞狐交易师 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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
金币:
奖励:
热心:
注册时间:
2003-10-8

回复 使用道具 举报

发表于 2005-8-16 08:11 | 显示全部楼层
谢谢!
金币:
奖励:
热心:
注册时间:
2003-4-15

回复 使用道具 举报

发表于 2007-7-23 12:00 | 显示全部楼层
:) :mad: :*22*: :*P :*29*: :*19*:
金币:
奖励:
热心:
注册时间:
2007-3-27

回复 使用道具 举报

发表于 2007-8-16 01:42 | 显示全部楼层
谢谢!谢谢!谢谢!谢谢!谢谢!
金币:
奖励:
热心:
注册时间:
2003-7-11

回复 使用道具 举报

签到天数: 1 天

指标公式及程序化交易

发表于 2010-8-19 12:51 | 显示全部楼层
zhaolehaojiu,顶起来
金币:
奖励:
热心:
注册时间:
2002-4-29

回复 使用道具 举报

发表于 2010-9-10 22:48 | 显示全部楼层
顶一个。。。。。。。。。。。。。。。。。。
金币:
奖励:
热心:
注册时间:
2010-4-4

回复 使用道具 举报

发表于 2010-9-15 08:34 | 显示全部楼层
居然还支持VBSCRIPT 很好很强大~ !
金币:
奖励:
热心:
注册时间:
2007-8-18

回复 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站声明:MACD仅提供交流平台,请交流人员遵守法律法规。
值班电话:18209240771   微信:35550268

举报|意见反馈|手机版|MACD俱乐部

GMT+8, 2025-4-15 15:08 , Processed in 0.037760 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表