数据类型

来自tradeStar帮助系统
2013年8月20日 (二) 14:56Coogle (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

从数据性质上看,公式只使用两种类型,一种是数值型,另一种是字符串类型。

数值类型包括整数,浮点数(小数),逻辑真和假;字符串类型使用单引号表示。

从数据组织上看,上述两种类型分别可以是单值,序列,数组或引用。

  • 单值

单值是相对序列而言的,如果变量var1是单值,在本K线对var1修改,则前一根K线运算所赋给var1的值将会被覆盖,

若var1是序列,那么,前一根K线运算所赋给var1的值可以通过var1[1]来获得,也可以修改。

  • 序列

序列是对应K线图上的K线根数而言的,100根K线时,序列变量var1就有100个值,每个值对应1根K线,

分别是 var1[0], var1[1] ... var1[99]。序列会随着K线的增加而自动增长,开销要比单值大,

所以如果不需要引用非当前根K线的值时,使用单值变量就足够了。

其中[0]代表最近的一根K线。

但要注意一点,在智能策略,Run_By_Bar 并且 Run_Every_Bar模式下,最新的一根K线总是不计算的,每次都计算的是倒数第二根K线,所以,此时 [0]是代表倒数第二根K线而不是最后一根。而最早的一根K线也不是[datacount-1],而是[datacount-2]


  • 数组

数组可以看作是固定长度的序列,有固定的大小,由用户在声明时设定。

数组不会随着K线增长而增长,跟K线没有一一对应的关系。下面的例子定义了两个数组

 variable:
   NumericArray aa[100](0),
   NumericArray bb[20, 20](0);

aa大小为100, bb大小为400。数组的读写使用下标来进行:

一维数组aa的有效下标:aa[1], aa[2], aa[3] .... aa[100]

二维数组bb的有效下标:bb[x,y]; x=1,2...20; y=1,2....20;


  • 引用

引用类型使用于函数的参数传递,一般参数传递是数据拷贝的传递。

例如把变量cc传给当函数时,只是传递cc的值,函数内部对它的修改并不会影响cc;

但当函数参数类型是引用时,是把变量cc的地址传递给函数,函数内部对它修改就是对cc的修改

要了解更多参数调用,请查看参数和变量公共函数

综上所述,数据类型主要有以下8种:

void

单值 序列 数组 引用
数值 NumericSimple NumericSeries NumericArray NumericRef
字符串 StringSimple StringSeries StringArray StringRef

下面是一些特殊的常量值:

  • Invalid

数值无效值,所有于它的比较都返回假 Invalid != Invalid 返回真。 指标输出左右两端的Invalid数值都不会输出到图上,直到遇上第一个有效值为止。

  • Null

字符串空串

  • True

真,值为1

  • False

假,值为0

  • Default

用于函数调用,若函数的参数设定了默认值,函数调用时填default表示使用函数设定的默认值

公式的数据类型属于弱类型。

字符串转义字符 \, @

个人工具
名字空间

变换
操作
导航
工具箱