📘 Pine Script V5 · 函数篇

第10–17章 · 核心函数 & 绘图 & 策略
🧠 函数概述 主调/被调
主调函数indicator · strategy · library
被调函数所有辅助函数 (ta.*, math.*, etc.)
libraryV5 新增,可主可被,封装复用逻辑
UDF用户自定义函数 · 不支持递归
🔹 UDF 体内禁用 plot() fill() hline() 等绘图函数
📂 内置函数分类 按返回值/副作用
有返回值无副作用math.*, ta.*, request.*, str.*
无返回值有副作用indicator, strategy, library, bgcolor, plot*
有返回值有副作用hline(), plot(), label.new(), array.pop()
⚠️ 副作用:修改全局变量、输入输出、绘图等
📌 indicator 参数 13个
title标题 (必输)
shorttitle短标题 (默认=title)
overlay叠加主图? false
format刻度格式format.inherit
precision小数位数
scale刻度尺位置scale.right
timeframe时间周期"D", "4H"
timeframe_gaps缺口处理true
explicit_plot_zorderZ-index 堆叠顺序
max_bars_back回溯K线限制
max_lines_count最大线数50
max_labels_count最大标签数50
max_boxes_count最大方框数50
⚙️ indicator 参数示例
indicator("My Script", overlay=true, precision=2, timeframe="D") plot(ta.sma(close, 20))
timeframe_gapstrue → 平滑曲线;false → 阶梯线
explicit_plot_zordertrue → 按执行顺序堆叠;false → 自动Z-index
📌 max_lines_count 默认50,最大500
🎨 绘图函数 plot 系列 + 其他
plot线形图 (最常用)
plotarrow箭头
plotchar字符
plotshape图形符号
plotbar美式K线
plotcandle蜡烛线
bgcolor背景颜色
fill区域填充 (plot/hline之间)
hline水平线
box.* / line.* / table.*方框/线/表格
📈 plot 参数详解
series时间序列 (必输)
title标题
color颜色 (具名/十六进制/color.new)
linewidth线宽 (默认1)
style风格 (11种)
trackprice当前值虚线横线
histbase纵坐标基准
offset偏移量 (±K线数)
join连接虚线点
editable风格可编辑
show_last显示最近N个值
display可见性控制display.all / none
🎯 plot.style 样式 11种
line实线
linebr可中断实线
stepline阶梯折线
steplinebr可中断阶梯
cross十字虚线
circles圆点虚线
histogram直方图
columns柱状图
area面积图
areabr可中断面积
stepline_diamond菱形节点阶梯
⚠️ line/stepline/area 三对:遇到 na 时连续/不连续
🔹 plot系列其他函数
plotarrow正→向上,负→向下
plotbar美式K线 (OHLC)
plotcandle蜡烛线 (OHLC)
plotcharUnicode字符'❄'
plotshape预定义形状shape.xcross
plotshape(data, style=shape.xcross, location=location.abovebar)
🧰 非plot绘图函数
bgcolor背景颜色
fillplot/hline 之间填充
hline水平线
box.*方框 (new/set/delete)
line.*线 (new/set/delete)
linefill.*两条线之间填充
table.*表格 (new/cell)
bgcolor(close < open ? color.new(color.red,70) : color.new(color.green,70))
👁️ display 参数 可见性
display.all全部显示 (默认)
display.none全部隐藏 (供 fill/alert 使用)
display.data_window仅数据窗口
display.status_line仅状态行
display.pane仅窗格
display.price_scale价格刻度
组合:display.all - display.status_line
↔️ offset 偏移量
正数向右偏移
负数向左偏移
plot(close, offset=5, color=color.orange) // 右移5根K线 // Ichimoku 经典应用 plot(leadLine1, offset=displacement-1)
🔹 一目均衡表:先行线向右移动26日
🎨 fill 填充
plot之间fill(plot1, plot2, color)
hline之间fill(h1, h2, color)
渐变填充fill(h1,h2,top_val,bottom_val,top_col,bottom_col)
fill(p1, p2, color=color.new(color.green, 80))
📊 strategy 参数 核心
pyramiding同方向最大开仓数 (默认0)
default_qty_typefixed / cash / percent_of_equity
initial_capital初始本金 (默认1,000,000)
commission_typepercent / cash_per_contract / cash_per_order
slippage滑点 (tick为单位)
calc_on_order_fills订单成交后立即重算
calc_on_every_tick每个最小变动重算
process_orders_on_closeK线收盘后再次执行
📚 library 库函数 V5新增
定义library("Name", overlay)
导出export function() =>
导入import username/library/version as alias
export hi(float val = high) => var float ath = val ath := math.max(ath, val)
✍️ UDF 用户自定义
单行f(x,y) => x + y
多行缩进4空格,返回最后一行
限制不支持递归,不可嵌套
禁用plot/fill/indicator/strategy 等
CrossAbove(price, length) => emaValue = ta.ema(price, length) price > emaValue and price[1] < emaValue[1]
🧩 其他内置函数
math.*数学计算
ta.*技术指标 & 辅助
request.*请求数据 (security/financial)
str.*字符串处理
color.*配色 (from_gradient/rgb/new)
array.*数组操作
alert*提醒 (alert / alertcondition)
📌 关键提醒
plot 返回值可传递给 fillalertcondition
display.none隐藏绘图,但保留返回值/提醒
line/box/table系列函数最大计数默认50,最大500
UDF限制不能嵌套,不能调用绘图函数
pyramiding仅配合 strategy.entry() 有效
整理自《零基础学Pine Script》第10-17章 · 函数篇 · indicator / plot / strategy / library / UDF 速查