tradeblazer mysql_公式系统 - TradeBlazer公式基础 - Bar数据

在介绍Bar数据之前,首先,我们需要讨论一下TradeBlazer公式的计算方法,针对上面介绍的各种公式类型,包含公式应用,在公式进行计算时,都是建立在基本数据源(Bar数据)之上,我们这里所谓的Bar数据,是指商品在不同周期下形成的序列数据,在单独的每个Bar上面包含开盘价、收盘价、最高价、最低价、成交量及时间。期货等品种还有持仓量等数据。

所有的Bar按照不同周期组合,并按照时间从先到后进行排列,由此形成为序列数据,整个序列称之为Bar数据。

以下列出所有的Bar数据系统函数:

函数名

简写

描述

Date

D

当前Bar的日期。

Time

T

当前Bar的时间。

Open

O

当前Bar的开盘价。

High

H

当前Bar的最高价,Tick时为当时的委卖价。

Low

L

当前Bar的最低价,Tick时为当时的委买价。

Close

C

当前Bar的收盘价。

Vol

V

当前Bar的成交量。

OpenInt

当前Bar的持仓量。

CurrentBar

当前Bar的索引值,从0开始计数。

BarStatus

当前Bar的状态值,0表示为第一个Bar,1表示为中间的普通Bar,2表示最后一个Bar。

计算方法

TradeBlazer公式在计算时按照Bar数据的Bar数目,从第一个Bar到最后一个Bar,依次进行计算,如果公式中出现了调用Bar数据函数的,则取出当前Bar的相应值,进行运算。如下图箭头所示,公式执行从上至下,Bar从左到右执行。

例如,现在有如下语句需要执行,Bar数据如下表所示:

Value1 = Close - Open;

CurrentBar

Date

Time

Open

High

Low

Close

Vol

OpenInt

Value1

0

2005/04/04

15:00

2970

2979

2951

2974

18

78

4

1

2005/04/05

15:00

2960

2960

2946

2960

14

76

0

2

2005/04/06

15:00

2951

2980

2951

2963

30

74

12

3

2005/04/07

15:00

3048

3048

2968

2995

120

84

-53

4

2005/04/08

15:00

2985

2987

2985

2987

10

80

2

...

...

...

...

...

...

...

...

...

...

如上表所示,从CurrentBar = 0 开始,依次计算每个Bar进行计算;

在公式的编写中,经常会遇到当前Bar的数据和上一个Bar,上N个Bar数据进行比较,计算的情况,针对这种情况,TradeBlazer公式提供了一种处理机制:回溯。即对数据的向前引用,比如,获取上一个Bar的收盘价:Close[1],获取10天前的成交量:Vol[10]。以下提供一个简单的例子来说明如何进行回溯处理。

假定有如下语句:

If (Close > Close[1])

{

Buy(1,Close);

}

以上公式执行一个简单的操作,当前Bar的收盘价大于上一个Bar的收盘价,即执行按照当前收盘价买入1手的动作。根据上表的数据,公式将在CurrentBar为2和3的时候调用Buy指令。

如果您足够仔细的话,您会发现:对于上面的一段公式的执行,有一个小小的问题,当第一次计算公式时,即CurrentBar = 0时,这个时候需要获取上一个Bar的数据,但是当前Bar已经是第一个Bar,这个时候就存在着问题,如何来获取此时的Close[1]呢,TradeBlazer公式将默认Close[1]为无效值,即系统函数中的InvalidNumeric,Close > Close[1]的表达式计算结果是一个Bool值,其结果也是一个无效值,对于Bool值,我们将False作为其无效值。因此,第一个Bar计算时,Buy指令不会被执行。

对于技术分析这类公式来说,假定Bar数据的总数共有100,相同的代码将从CurrentBar = 0到CurrentBar = 99 共执行100遍,分别输出公式中的结果值。

注意:在执行TradeBlazer公式时,可能出现数据不存在的情况,可通过系统函数HistoryDataExist进行判断,如果该函数返回True,即为Bar数据有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值