logo资料库

Pine 脚本语言参考手册.pdf

第1页 / 共142页
第2页 / 共142页
第3页 / 共142页
第4页 / 共142页
第5页 / 共142页
第6页 / 共142页
第7页 / 共142页
第8页 / 共142页
资料共142页,剩余部分请下载后查看
TradingView ZH 商品代码 搜索 登录 开始免费试用 观点 市场 脚本 筛选器 经纪商 图表 更多 搜索 运算子 != % * + - / < <= == > >= ?: [] and for if not or var 内置变量 内置函数 版本 v3 v4 Pine脚本语言参考手册 运算子 != 不等于。适用于任何类型的表达式。 expr1 != expr2 返回值 布尔值,或一系列布尔值。 % 模数(整数余数)。 适用于数值表达式。 expr1 % expr2 返回值 整数或浮点值,或一系列值 备注 在Pine脚本中,当计算整数的余数时,商将被截断。 即,将其四舍五入到最小绝对值。 所得值将具有与股息 示例:-1 % 9 = -1 - 9 * truncate(-1/9) = -1 - 9 * truncate(-0.111) = -1 - 9 * 0 = -1。 * 乘法。适用于数值表达式。 expr1 * expr2 返回值 整数或浮点值,或一系列值 + 添加或一元正号。适用于数值表达式或字符串。 expr1 + expr2 + expr 返回值 字符串的二进制`+`返回expr1和expr2的合并 数字返回整数或浮点值,或一系列值:
二进制'+'返回expr1加expr2。 一元“+”返回expr(对一元运算符对称不添加任何内容)。 备注 您可以使用带数字的算术运算符以及变量数列。 在使用数列的情况下,操作符应用于元素。 - 减法或一元负号。 适用于数值表达式。 expr1 - expr2 - expr 返回值 返回整数或浮点值,或一系列值: 二进制'+'返回expr1减expr2。 一元的`-`返回expr的否定式。 备注 您可以使用带数字的算术运算符以及变量数列。 在使用数列的情况下,操作符应用于元素。 / 除法。适用于数值表达式。 expr1 / expr2 返回值 整数或浮点值,或一系列值 < 小于。适用于数值表达式。 expr1 < expr2 返回值 布尔值,或一系列布尔值。 <= 小于或等于。适用于数值表达式。 expr1 <= expr2 返回值 布尔值,或一系列布尔值。 == 等于。 适用于任何类型的表达。
expr1 == expr2 返回值 布尔值,或一系列布尔值。 > 大于。适用于数值表达式。 expr1 > expr2 返回值 布尔值,或一系列布尔值。 >= 大于或等于。适用于数值表达式。 expr1 >= expr2 返回值 布尔值,或一系列布尔值。 ?: 三元条件运算符。 expr1 ? expr2 : expr3 例子 // Draw circles at the bars where open crosses close s2 = cross(open, close) ? avg(open,close) : na plot(s2, style=plot.style_circles, linewidth=2, color=color.red) // Combination of ?: operators for 'switch'-like logic c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? c plot(hl2, color=c) 返回值 如果expr1被评估为true,则expr2,否则为expr3。 零值(0和NaN,+ Infinity,-Infinity)被视为false,其他值 备注 如果您不需要,请使用na作为“else”分支。 您可以结合使用两个或多个?:运算符,以实现类似于“switch”的语句(请参见上面的示例)。 您可以使用带数字的算术运算符以及变量数列。 在使用数列的情况下,操作符应用于元素。 另见 iff na [] 系列下标。 提供对expr1系列的以前值的访问。 expr2是过去k线的数目,必须是数值。 浮动将被向下舍入。
expr1[expr2] 例子 // [] can be used to "save" variable value between bars a = 0.0 // declare `a` a := a[1] // immediately set current value to the same as previous. `na` in the beginning of hi if high == low // if some condition - change `a` value to another a := low 返回值 一系列数值 另见 floor and 逻辑 AND。适用于布尔表达式。 expr1 and expr2 返回值 布尔值,或一系列布尔值。 for For语句允许重复执行一些指令。 要访问和使用for语句,应在第一行代码中设定Pine Script语言的版本> = 2,例如://@version=4 var_declarationX = for counter = from_num to to_num [by step_num]   var_decl0   var_decl1   …   continue   …   break   …   var_declN   return_expression 哪里: counter - 一个变量循环计数器。 from_num - 计数器的起始值 to_num - 计数器的结束值。 当计数器大于to_num(或者在from_num> to_num的情况下小于to_num)时, step_num - 循环步骤。 在循环步骤= 1的情况下可以省略。 如果from_num大于to_num循环步骤将自动改变 var_decl0 , ... var_declN , return_expression - 循环体。它必须移动4个空格或1个标签。 return_expression - 返回值。 循环完成或中断时,返回值将赋予var_declarationX。 continue - 一个关键词。只能在循环中使用。 它将循环切换到下一次迭代。 break - 一个关键字。只能在循环中使用。它打破了循环。 例子 //@version=4 study("My sma") my_sma(price, length) => sum = price
for i = 1 to length-1 sum := sum + price[i] sum / length plot(my_sma(close,14)) 备注 变量'sum'是一个可变变量,运算符可以给它一个新值:=循环体。 另请注意,我们建议对移动平均线使用内置 另见 sum if If语句定义了在满足表达式条件时必须执行的语句块。 要访问和使用if语句,应该在第一行代码中指定Pine脚本语言的版本> = 2,例如://@version=4 第4版的Pine脚本语言允许您使用“else if”语法。 通用编码来自: var_declarationX = if condition   var_decl_then0   var_decl_then1   …   var_decl_thenN else if [optional block]   var_decl_else0   var_decl_else1   …   var_decl_elseN else   var_decl_else0   var_decl_else1   …   var_decl_elseN   return_expression_else 在哪 var_declarationX - 此变量获取if语句的值 条件 — 如果条件为true,则使用block ‘then’中的逻辑(var_decl_then0, var_decl_then1, 等)。 如果条件为false,则使用block 'else'中的逻辑(var_decl_else0, var_decl_else1, 等)。 return_expression_then , return_expression_else - 模块中的最后一个表达式或者来自块else的表达式将 将是结果值。 if语句的返回值的类型取决于return_expression_then和return_expression_else类型(它们的类型必须匹配: 能返回一个整数值)。 例子 // This code compiles x = if close > open close else open // This code doesn’t compile else x = if close > open close else "open" 可以省略else block。在这种情况下,如果条件为false,则将为var_declarationX变量分配一个“empty”值(na 例子
x = if close > open close // If current close > current open, then x = close. // Otherwise the x = na. 可以使用多个“else if” blocks或什么都不使用: 例子 x = if open > close 5 else if high > low close else open Block “then”,“else if”和“else”缩进了4个空格。如果语句可以包含彼此,则每个句子加4个空格: 例子 x = if close > open b = if close > close[1] close else close[1] b else open 可以忽略if语句的结果值(“var_declarationX =”可以省略)。 如果您需要表达式的副作用,例如在策略交易 例子 if (crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", oca_type=strategy.oca.cancel, comment="BBandLE") else strategy.cancel(id="BBandLE") not 逻辑求反(NOT)。 适用于布尔表达式。 not expr1 返回值 布尔值,或一系列布尔值。 or 逻辑 OR。适用于布尔表达式。 expr1 or expr2 返回值 布尔值,或一系列布尔值。 var
var 是用于分配和一次性初始化变量的关键字。 通常,不包含关键字var的变量赋值语法会导致每次更新数据时都会覆盖变量的值。 与此相反,当使用关键字 态”,只有在满足if-expressions中的条件时才更改它。 从版本4开始提供。 var variable_name = expression 哪里: variable_name - Pine Script中允许的用户变量的任何名称(可以包含大写和小写的拉丁字符,数字和下划线 expression - 任何算术表达式,就像定义常规变量一样。 将计算表达式并将其分配给变量一次。 例子 //@version=4 study("Var keyword example") var a = close var b = 0.0 var c = 0.0 var green_bars_count = 0 if close > open plot(a) plot(b) plot(c) var y = close c := y var x = close b := x green_bars_count := green_bars_count + 1 if green_bars_count >= 10 变量 'a' 保持系列中每个柱线的第一根柱线的收盘价。 变量'b'保持系列中第一个“绿色”价格棒的收盘价。 变量'c'保持系列中第十个“绿色”条的收盘价。 内置变量 accdist 累积/分布指数 类型 series[float] adjustment.dividends 常数股息调整(应用股息调整)。 类型 const string 另见 adjustment.none adjustment.splits tickerid adjustment.none 无调整类型的常量(不应用调整)。 类型 const string
另见 adjustment.splits adjustment.dividends tickerid adjustment.splits 分割调整类型的常量(应用分割调整)。 类型 const string 另见 adjustment.none adjustment.dividends tickerid bar_index 目前的价格棒指数。 编号从零开始,第一个条的索引为0。 类型 series[integer] 例子 plot(bar_index) plot(bar_index > 5000 ? close : 0) 备注 请注意, bar_index 已替换版本4中的 n 变量。 请注意,K线索引从第一根历史K线起算为0。 请注意,使用此变量/函数可能会导致指标重新绘制。 barmerge.gaps_off 合并所请求数据的策略。 数据不间断地合并,所有的差距都以先前最近的现有值填满。 类型 const bool 另见 security barmerge.gaps_on barmerge.gaps_on 给所请求的数据合并策略。 数据与可能的差距(na值)合并。 类型 const bool 另见 security barmerge.gaps_off barmerge.lookahead_off 合并所请求数据位置的策略。 所请求的条形图与当前的条形图按照k线收盘时间合并。 这种合并策略禁止从 类型
分享到:
收藏