version2版本新特性
● 初次赋值使用 =,如
● 再次赋值使用 :=,如
● 定义域处理,使用if,for,func等定义的内部变量不能在结构外使用
if (close > open){
a = 1 // 定义if内部变量,不可在if外部使用
b := 1 // 更改全局变量
}
plot(a) // 报错
plot(b) // 可以
● 数组处理
N2 = 2;
a = [1,2,3,N1,N2];
b = a{1} //数组使用下标{}访问
● 函数处理
if (a == 1) {
return 1;
}
return a * recursion(a-1);
}
int a = recursion(5);
func_ma(x, y) {
sum = 0.0
for(i = 0; i < y; i++){
sum := sum + x[i]/y
}
return sum
}
a = func_ma(high,10) // 计算10日均线 等价于 ma(high,10)
● 可以省略语句结尾的分号“ ; ”
● 支持条件绘图,可使用三元运算符对color进行赋值,如:
● 数据类型
float: 浮点数
string: 字符串
bool: 布尔值
byte: 字节
any: 任意类型
● plot和alert中仅支持普通表达式的计算,不支持函数调用或if等语句
plot(if close > open {close } else {open})
新版本:
plot(close > open ? close : open)
● 三元运算符的表达式不支持变量的定义,可以使用变量赋值
close > open ? a = close : a = open
新版本:
a = close > open ? close : open
● indicator函数仅可使用一次
indicator(precision = 2) // 报错
● plot和alert不能定义在局部定义域内,如if,for,func等
if close > open {
plot(close)
} else {
plot(open)
}
● 指标函数变量
// 可忽略[ ],如
mb, up, dn = boll(close,20, 2)
● 除法运算结果默认为float类型,如
● not 后可不使用括号,如
● 多行注释可使用/* */,单行注释使用//
/*
多行注释
*/
● 在for中可使用break和continue提前结束循环
if i == 5 {
break
}
// println 用作示例,实际使用时请使用plot或alert
println(i) // 0,1,2,3,4
}
for i=0;i<10;i++{
if i == 5 {
continue
}
// println 用作示例,实际使用时请使用plot或alert
println(i)
}
● 若在for中使用return,则会提前结束函数,在最外层for中使用return会提前结束脚本
if i == 5 {
return
}
// println 用作示例,实际使用时请使用plot或alert
println(i)
}
// 不会执行
println("end")
● for中使用指标或方法函数会出现重复计算,建议在for外部计算后再使用
ma5 = ma(close,5)
for i=0;i<10;i++{
a := ma(close,i) // 只会计算ma(close,0),与预期不符
}
● for循环支持使用range函数,目前仅支持遍历数组
for i in range(a){
// println 用作示例,实际使用时请使用plot或alert
println(i) // 0,1,2,3,4
}
● 序列变量的储存值只有500个周期,所有的历史数据引用最大值为499
a = close[499] // 可以
a = close[500] // 报错
● 数组的初始化最大值位1000
● 除法运算中,若除数为0,则返回空值或nan
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。