浏览次数:10652 发表于:2012-04-06 09:01 来源: 开拓者量化网
TradeBlazer公式支持两大类的控制语句:条件语句 和 循环语句。
条件语句包括以下四类表达方式:
If语句是一个条件语句,当特定的条件满足后执行一部分操作。
语法如下:
If (Condition) { TradeBlazer公式语句; }
Condition是一个逻辑表达式,当Condition为True的时候,TradeBlazer公式语句将会被执行,Condition可以是多个条件表达式的逻辑组合,Condition必须用()括起来。
TradeBlazer公式语句是一些语句的组合,如果TradeBlazer公式语句是单条,您可以省略{},二条或者二条以上的语句必须使用{}。
例如,您可以计算图表中上升缺口(当前Bar的开盘价高于上一个Bar的最高价)出现了多少次,只要在图表中使用If语句,当找到一个满足条件的Bar时,即条件为真时,变量加1,脚本如下:
Vars NumericSeries Counter(0); Begin If ( Open > High[1]) { Counter = Counter[1] + 1; ... } ... End
在TradeBlazer公式中,If语句被广泛使用,如K线型态和特征走势,都需要大量的使用If语句,当条件满足的时候,在满足条件的Bar上面进行标记。例如,下面的语句就是特征走势的例子:
If(High > High[1] AND Low < Low[1]) { PlotNumeric("Outside Bar",High); }
If语句在不是用括号的情况,只执行下面的第一条语句,如下的语句,Alert不会只在条件为True时执行,而是每次都执行。
If(High > High[1] AND Low < Low[1]) PlotNumeric("Outside Bar",High); Alert("Outside Bar");
要想Alert只在条件为True时执行,您需要按照下面的格式编写:
If(High > High[1] AND Low < Low[1]) { PlotNumeric("Outside Bar",High); Alert("Outside Bar"); }
If-Else语句是对指定条件进行判断,如果条件满足执行If后的语句。否则执行Else后面的语句。
语法如下:
If (Condition) { TradeBlazer公式语句1; }Else { TradeBlazer公式语句2; }
Condition是一个逻辑表达式,当Condition为True的时候,TradeBlazer公式语句1将会被执行;Condition为 False时,TradeBlazer公式语句2将会被执行。Condition可以是多个条件表达式的逻辑组合,Condition必须用()括起来。
TradeBlazer公式语句是一些语句的组合,如果TradeBlazer公式语句是单条,您可以省略{},二条或者二条以上的语句必须使用{}。
例如,比较当前Bar和上一个Bar的收盘价,如果Close > Close[1],Value1 = Value1 + Vol;否则Value1 = Value1 - Vol,脚本如下:
If (Colse > Close[1]) Value1 = Value1 + Vol; Else Value1 = Value1 - Vol;
If-Else-If是在If-Else的基础上进行扩展,支持条件的多重分支。
语法如下:
If (Condition1) { TradeBlazer公式语句1; }Else If(Condition2) { TradeBlazer公式语句2; }Else { TradeBlazer公式语句3; }
Condition1是一个逻辑表达式,当Condition1为True的时候,TradeBlazer公式语句1将会被执 行,Condition1为False时,将会继续判断Condition2的值,当Condition2为True时,TradeBlazer公式语句 2将会被执行。Condition2为False时,TradeBlazer公式语句3将会被执行。Condition1,Condition2可以是多 个条件表达式的逻辑组合,条件表达式必须用()括起来。
TradeBlazer公式语句是一些语句的组合,如果TradeBlazer公式语句是单条,您可以省略{},二条或者二条以上的语句必须使用{}。
If-Else-If的语句可以根据需要一直扩展,在最后的Else之后再加If(Condition)和新的执行代码即可。当然您也可以省略最后的Else分支,语法如下:
If (Condition1) { TradeBlazer公式语句1; }Else If(Condition2) { TradeBlazer公式语句2; }
If-Else的嵌套是在If-Else的执行语句中包含新的条件语句,即一个条件被包含在另一个条件中。
语法如下:
If (Condition1) { If (Condition2) { TradeBlazer公式语句1; }Else { TradeBlazer公式语句2; } }Else { If (Condition3) { TradeBlazer公式语句3; }Else { TradeBlazer公式语句4; } }
Condition1是一个逻辑表达式,当Condition1为True的时候,将会继续判断Condition2的值,当Condition2 为True时,TradeBlazer公式语句1将会被执行。Condition2为False时,TradeBlazer公式语句2将会被执行。当 Condition1为False的时候,将会继续判断Condition3的值,当Condition3为True时,TradeBlazer公式语句 3将会被执行。Condition3为False时,TradeBlazer公式语句4将会被执行。 Condition1,Condition2,Condition3可以是多个条件表达式的逻辑组合,条件表达式必须用()括起来。
TradeBlazer公式语句是一些语句的组合,如果TradeBlazer公式语句是单条,您可以省略{},二条或者二条以上的语句必须使用{}。
例如,在一个交易指令中,条件设置如下:当前行情上涨的时候,如果收盘价高于开盘价时,则产生一个以收盘价买入1张合约;否则产生一个以开盘价买入 1张合约。当前行情没有上涨的时候,如果收盘价高于开盘价,则产生一个以收盘价卖出1张合约;否则产生一个以开盘价卖出1张合约。脚本如下:
If (Open > High[1]) { If (Close>Open) { Buy(1,Open); }Else { Buy(1,Close); } }Else { If (Close > Open) { Sell(1,Open); }Else { Sell (1,Close); } }
地址:深圳市南山区粤海街道滨海社区海天一路 19、17、18号软件产业基地 4 栋 4 层 408
邮编:518054
电话:0755-83410021 传真:0755-83417337 Email:webmaster@tb18.net
Copyright @ 2007 - 2024
深圳开拓者科技有限公司 All Rights Reserved. 版权所有 未经许可 请勿转载
粤ICP备07044698号