要想让咱们的交易想法在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推崇的编程风格。
布尔逻辑运算
讲完了条件判断,就必须说说它的燃料,布尔值(也就是 true
和 false
)。交易策略的本质,就是一系列“是”或“否”的逻辑判断。
- 比较运算符:你是怎么判断金叉的?无非就是比较快线的值是不是大于慢线的值。这就需要用到大于
>
、小于<
、等于==
这些比较运算符。它们是产生true
或false
结果的第一步。 - 逻辑运算符:那如果你的入场信号更复杂呢?比如金叉发生了,并且RSI指标也大于50,想把这些条件组合起来,就需要
and
(与)、or
(或)这些逻辑运算符登场了。
创建你自己的函数
当你写着写着,发现某段计算逻辑(比如计算某个特定周期的ATR值)在好几个地方都用到了,总不能每次都复制粘贴吧?这时候,就该学着把这些重复劳动打包成一个自定义函数了。
我们会讲到 =>
这个符号,它就是你创建自己专属工具的魔法棒,让你的代码更整洁、更高效。
运算的先后顺序
最后也是一个非常重要但极易被忽略的环节:运算符优先级。就像我们数学里“先乘除,后加减”一样,Pine Script里的运算符也有自己的“辈分”和“规矩”。搞不清楚这个,你的计算结果可能就谬以千里了。当然学长也会教你个简单的方法,就是用括号 ()
来强制改变运算顺序,让程序100%按你的意图来计算,避免任何歧义。