购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第9章
循环结构

循环结构是在一定条件下反复执行某个程序块的流程结构,被反复执行的程序块叫作循环体,循环语句由循环体和循环的终止条件两部分组成。

在Pine Script中有两类循环语句,即for语句和while语句。两者的区别:①for语句是重复一定次数的计次循环语句;②while语句是一直重复执行循环,直到条件不满足时才结束循环。

9.1 for语句

for语句包含for和for...in两种,前者适用于一般变量,后者专用于数组变量。

for语句格式如下所示。

● []:表示其内的部分为可选项,可以选择性地省略。

● <>:表示其内的部分为必选项,必须提供相应的值或信息。

● var_declaration:变量定义。

● counter_identifier:循环计数器。

● from_num:计数器的起始值。

● to_num:计数器的结束值。

● step_num:计算器的步长。

● return_expression:返回值的表达式。

● local_block_loop:有循环的局部程序块。

下面举两个for语句的示例:示例1是一个简单的for循环,示例2结合了if语句的for语句。

示例1:使用for语句对过去14天的收盘价进行逐一比较,首先统计有多少天的收盘价高于当前的收盘价,并将结果保存到一个计数器变量中。然后将统计结果绘制为图表,并将其添加到副图中。

将以上脚本添加到图表中,如图9-1所示。

图9-1 for语句的示例1

示例2:使用for语句对过去lookbackInput(默认50天)的收盘价进行逐一比较。在每一次循环中,将历史数据的最高价与当前K线的最高价进行比较,如果历史数据最高价高于当前K线的最高价,则higherBars计数器累加1。反之,如果历史数据最高价低于当前K线的最高价,则lowerBars计数器累加1。最后在图表上用标签显示统计结果。

将以上脚本添加到图表中,以深证指数(399001)为例,如图9-2所示。

图9-2 for语句的示例2

9.2 for...in语句

for...in语句适用于数组变量。for...in语句格式如下所示。

● []:表示其内的部分为可选项,可以选择性地省略。

● <>:表示其内的部分为必选项,必须提供相应的值或信息。

● var_declaration:变量声明。

● array_element:数组元素。

● array_id:数组id。

● local_block_loop:有循环的局部程序块。

● return_expression:返回值的表达式。

下面举一个示例,使用for...in语句统计指定时点的OHLC的值有多少个高于ta.sma(close,20)。若OHLC中的任何一个值都高于ta.sma(close,20),则返回值result累加1。最后根据返回值在副图上绘制图表。

将以上脚本添加到图表中,如图9-3所示。

图9-3 for...in语句的示例

9.3 while语句

while语句是一种基于条件控制的迭代结构,其循环体内的局部程序块会不断重复执行,直到条件表达式的值为假(false)时才终止循环。

while语句格式如下所示。

● []:表示其内的部分为可选项,可以选择性地省略。

● <>:表示其内的部分为必选项,必须提供相应的值或信息。

● var_declaration:变量定义。

● expression:表达式。

● local_block_loop:循环的局部程序块。

● return_expression:返回值的表达式。

示例1:用while语句改写前面的for语句的例子“for example 2”。

示例2:使用while语句计算10的阶乘,并将结果输出到屏幕。这里的10!=1×2×3×4×5×6×7×8×9×10=3628800。

将以上脚本添加到图表中,如图9-4所示。

图9-4 while语句示例2

9.4 小结

本章介绍了三种循环语句:for语句、for...in语句和while语句。这些循环语句在计算机编程中起着重要的作用,可以用于复杂的循环逻辑计算和控制程序的执行流程等。熟悉循环语句的使用方法,能够帮助我们更加高效地编写程序。 /e7s+gEpAO5W2L4ch9puqCd1c8OYnIHJ0HkwNIjz+vBQMV0demxbv0CXzVkI/ijK

点击中间区域
呼出菜单
上一章
目录
下一章
×