保持敬畏之心
交易是一场持久战

Pine Script(1):运算符基础讲解

要想让咱们的交易想法在TradingView上跑起来,变成能实战的指标或策略,就离不开“运算符”。你可能一听“运算符”、“操作数”这些词就觉得头大,感觉很专业、很枯燥。别怕,这都是纸老虎,今天学长就用大白话给你讲清楚,保证你一听就懂。

咱们要跟电脑沟通,让它帮我们计算均线、判断金叉,就得说它能听懂的“话”。这些“话”里的核心,就是各种“动词”和“名词”。

  • 运算符: 说白了,就是代码里的“动词”,是具体干活的那个。比如加号 + 负责“相加”,大于号 > 负责“比较大小”。
  • 操作数: 就是被这些“动词”所操作的**“名词”**。在咱们交易世界里,这通常就是各种数据,比如收盘价 close、最高价 high、成交量 volume,或者一个具体的数字,比如 14(周期)。

把它们串起来,你就更好理解了。

举个最简单的例子,一行你肯定会用到的代码:high - low,这行代码在咱们交易员看来,是计算一根K线的振幅,对吧?

现在咱们用刚才的视角来拆解一下:

  • high(最高价)和 low(最低价),就是两个“名词”,也就是操作数。
  • 中间那个减号 -,就是“动-作”,也就是运算符。
  • high - low 整个组合起来,能算出一个具体的值(振幅),它就是一个能得出结果的完整“句子”,在编程里,我们就叫它表达式。

是不是很简单?所谓的运算符,就是连接各种数据、执行各种计算的“动作”符号。搞懂了它,你才算真正开始会说代码这门语言了。

下图直观地展示了运算符与操作数之间的区别:

大家别一看到“运算符”这三个字就头大。这玩意儿说白了,就是咱们在代码里发号施令的动词。搞懂它们,你才能让程序听你的话,帮你分析行情、构建指标。

想让代码为你所用,首先就得弄明白这些动词是怎么分类的。在Pine Script里,我们通常根据一个运算符需要跟几个“操作数”(也就是它要处理的值)来打交道,把它们分成三类:

  • 一元运算符: 这家伙最省心,只跟一个值打交道。比如你想取收盘价的负数,直接一个负号 -close 就搞定了。Pine Script里这样的运算符就仨:正号 +、负号 -,还有一个后面要讲的历史引用运算符 []
  • 二元运算符: 这是咱们的老朋友,最常见、用得最多的。它需要两个值才能干活,一个在左,一个在右。比如我们最常用的,判断K线是阳线还是阴线(close > open),或者计算昨日收盘价的两倍(close[1] * 2),这些都是二元运算。
  • 三元运算符: 这家伙比较特殊,整个Pine Script里就独一份 ?:。它需要三个“操作数”才能启动,你可以把它看作一个超级精简版的 if/else 语句,一句话就能搞定“如果条件A成立,就干B;否则,就干C”的逻辑。

热身完毕!搞清楚了这些基本分类,咱们就来上手本章最核心、最常用的几类运算符。这部分是基本功,务必扎实。

赋值与算术运算

赋值运算符是它帮你把计算结果存到变量里,算符运算就是我们小学就学过的算术运算符:

  • 加减乘除(+, -, *, /+- 不仅能做加减法,还能像前面说的那样,单独用作一元运算符。
  • 字符串连接(+:用 + 号把两段文字(也就是“字符串”)拼接起来。这在你想要自定义图表上显示的标签,或者设置个性化的警报信息时,特别有用。
  • 求模运算符(%:这个新手可能有点陌生。简单说就是“取余数”,它在什么场景下有用呢?举个例子,你想让策略“每隔5根K线”才执行某个特定操作,用它就能非常巧妙地实现。
访问历史K线数据

访问历史数据是Pine Script的精髓所在,咱们做交易分析,不管是看均线、MACD还是任何自定义指标,都离不开过去的数据。[] 这个历史引用运算符,就是你代码里的时光机。

我会手把手教你,怎么用这个 [] 来获取之前任何一根K线的收盘价、成交量,甚至是咱们自己计算的某个变量或指标在过去的值。这是构建一切策略的基础。

实现if/else判断

注意了,这里是很多从其他编程语言(比如Python、Java)转过来的朋友第一个会懵圈的地方。Pine Script里没有我们常见的 if/else 这种块状语句,但别慌它提供了更精简、更高效的替代方案:

就是我们前面提到的“独一份”的三元运算符 (?:)。它一个顶俩,用一行代码就搞定了“如果条件成立,就干A;不成立,就干B”的决策逻辑。非常高效,也是Pine推崇的编程风格。

布尔逻辑运算

讲完了条件判断,就必须说说它的燃料,布尔值(也就是 truefalse)。交易策略的本质,就是一系列“是”或“否”的逻辑判断。

  • 比较运算符:你是怎么判断金叉的?无非就是比较快线的值是不是大于慢线的值。这就需要用到大于 >、小于 <、等于 == 这些比较运算符。它们是产生 truefalse 结果的第一步。
  • 逻辑运算符:那如果你的入场信号更复杂呢?比如金叉发生了,并且RSI指标也大于50,想把这些条件组合起来,就需要 and(与)、or(或)这些逻辑运算符登场了。
创建你自己的函数

当你写着写着,发现某段计算逻辑(比如计算某个特定周期的ATR值)在好几个地方都用到了,总不能每次都复制粘贴吧?这时候,就该学着把这些重复劳动打包成一个自定义函数了。

我们会讲到 => 这个符号,它就是你创建自己专属工具的魔法棒,让你的代码更整洁、更高效。

运算的先后顺序

最后也是一个非常重要但极易被忽略的环节:运算符优先级。就像我们数学里“先乘除,后加减”一样,Pine Script里的运算符也有自己的“辈分”和“规矩”。搞不清楚这个,你的计算结果可能就谬以千里了。当然学长也会教你个简单的方法,就是用括号 () 来强制改变运算顺序,让程序100%按你的意图来计算,避免任何歧义。

赞(0)
未经允许不得转载:图道交易 » Pine Script(1):运算符基础讲解
分享到

评论 抢沙发