如果在Thinkscript中声明

时间:2015-05-06 15:35:37

标签: if-statement thinkscript

我是一个开始思考的程序员,我正在快速学习thinkcript的语法。但是,我在使用if语句时遇到了问题。我知道你可以在if块中有一个语句但是在if块中可以有多个语句吗?

不:if(条件)然后(this)else(that);

但是:if(condition)然后{(this); (即);};

2 个答案:

答案 0 :(得分:0)

有可能。只是错误的条件语句的绘图变量,因为它们反过来使用条件语句来绘制图形。

答案 1 :(得分:0)

thinkScript 本质上具有三种形式的 if 用法。所有三种形式都需要一个 else 分支。一种形式允许设置或绘制一个或多个值。其他两个只允许设置或绘制一个值。

  1. if 语句:可以在括号内为 plotdef 变量设置一个或多个值
def val1;
plot val2;
if (cond) {
  val1 = <value>;
  val2 = <value>;
} else {
  # commonly used options:

  # sets the variable to be Not a Number
  val1 = Double.NaN;

  # sets the variable to what it was in the previous bar
  # commonly used for recursive counting or retaining a past value across bars
  val2 = val2[1];
}
  1. if 表达式:用于设置值的多合一表达式。 只能根据条件设置一个值,但可以在其他语句中使用。此版本通常用于对条形图上的项目进行递归计数,以及根据条件显示不同的颜色。
def val1 = if <condition> then <value if true> else <value if false>;
  1. if 函数:类似于上面的,但更紧凑,这是 thinkScript(r) 版本的三元条件语句。区别在于truefalse必须是double 值。因此,它不能用于设置颜色,例如,或其他不代表双精度值的项目。
def var1 = if(<condition>, <value if true>, <value if false>);

以下示例由 the thinkScript API doc for the if function 修改而来,演示了使用所有三个版本。我添加了第二个变量来演示 if 语句如何根据相同条件一次设置多个值:

# using version 3, "if function"
plot Maximum1 = if(close > open, close, open);

# using version 2, "if expression"
plot Maximum2 = if close > open then close else open;

# using version 1, "if statement", with two variables, a `plot` and a `def`
plot Maximum3;
def MinimumThing;
if close > open {
    Maximum3 = close;
    MimimumThing = open;
} else {
    Maximum3 = open;
    MinimumThing = close;
}

作为旁注,虽然示例没有显示,但可以使用 def 关键字以及 plot 关键字通过这些语句定义变量的值。