首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thinkscript中的If语句

Thinkscript中的If语句
EN

Stack Overflow用户
提问于 2015-05-06 15:35:36
回答 2查看 3.4K关注 0票数 1

我是一个刚开始的thinkscript程序员,我学习thinkscript的语法非常快。然而,我对if的声明有困难。我知道在if块中可以有一个语句,但是在一个if块中有多个语句是可能的吗?

不:如果(条件)那么(这个)其他(那);

但是:如果(条件)那么{(这个);(那个);};

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-01 20:14:00

thinkScript本质上有三种if用法。这三种表单都需要一个else分支。一个表单允许设置或绘制一个或多个值。另外两个只允许设置或绘制一个值。

  1. if语句:可以在括号内为plotdef变量设置一个或多个值。
代码语言:javascript
复制
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表达式:用于设置值的所有一体表达式.只能根据条件设置一个值,但可以在其他语句中使用。此版本通常用于跨条形递归计数项,并根据条件显示不同的颜色。
代码语言:javascript
复制
def val1 = if <condition> then <value if true> else <value if false>;
  1. if函数:类似于上面的函数,但更紧凑,这是thinkScript(R)的三元条件语句的版本。它的不同之处在于,真假值必须是双值。因此,它不能用于设置颜色,比如说,或其他不代表双值的项。
代码语言:javascript
复制
def var1 = if(<condition>, <value if true>, <value if false>);

下面的示例是从 function修改的,演示了使用所有三个版本。我添加了第二个变量来演示if语句如何根据相同的条件一次设置多个值:

代码语言:javascript
复制
# 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关键字来定义变量的值。

票数 2
EN

Stack Overflow用户

发布于 2015-05-11 20:09:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30081360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档