资源加载中... loading...

FMZ PINE Script 文档

Author: 发明者量化-小小梦, Created: 2022-05-06 14:27:06, Updated: 2024-10-12 15:27:04

列值。

  • length (series int) K线数量(长度).
  • mult (simple int/float) 标准差因子。

另见 ta.sma ta.stdev ta.kc

ta.bbw

布林带的宽度。布林带宽度是上轨和下轨到中线的距离。

ta.bbw(series, length, mult) 

例子

plot(ta.bbw(close, 5, 4), color=color.yellow)

// the same on pine
f_bbw(src, length, mult) =>
    float basis = ta.sma(src, length)
    float dev = mult * ta.stdev(src, length)
    ((basis + dev) - (basis - dev)) / basis

plot(f_bbw(close, 5, 4))

返回值 布林带宽度。

参数

  • series (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).
  • mult (simple int/float) 标准差因子。

另见 ta.bb ta.sma ta.stdev

ta.cci

CCI(商品路径指数)的计算方法是商品的典型价格与其简单移动平均线之间的差值除以典型价格的平均绝对偏差。该指数按0.015的倒数进行缩放,以提供更多可读的数字。

ta.cci(source, length) 

返回值 lengthK线返回的source的商品渠道指数。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

ta.change

当前值与前一个值之间的差分,source - source[length]。

ta.change(source, length) 
ta.change(source) 

返回值 减法的结果。

参数

  • source (series int/float) 源系列。
  • length (series int) 从当前k线偏移到上一个k线。 可选,如未给予,则使用length = 1。

另见 ta.mom ta.cross

ta.mom

source价格和source价格lengthK线之前的动量。这只是一个差分:source - source[length]。

ta.mom(source, length) 

返回值 source价格和source价格lengthK线之前的动量。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) 从当前k线偏移到上一个k线。

另见 ta.change

ta.cmo

钱德动量摆动指标。计算最近的上涨点数之和与最近的下跌点数之和,然后将两者相减,然后将结果除以同一时期内所有价格变动的总和

ta.cmo(series, length) 

例子

plot(ta.cmo(close, 5), color=color.yellow)

// the same on pine
f_cmo(src, length) =>
    float mom = ta.change(src)
    float sm1 = math.sum((mom >= 0) ? mom : 0.0, length)
    float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length)
    100 * (sm1 - sm2) / (sm1 + sm2)

plot(f_cmo(close, 5))

返回值 钱德动量摆动指标

参数

  • series (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

另见 ta.rsi ta.stoch math.sum

ta.percentile_linear_interpolation

使用最近的两个排名之间的线性插值方法计算百分比。

ta.percentile_linear_interpolation(source, length, percentage) 

返回值 lengthK线返回的source系列的第P个百分位数。

参数

  • source (series int/float) 待执行的系列值(来源)。
  • length (series int) 过去的K线数量(长度)
  • percentage (simple int/float) 百分比,从0到100的范围内的数字

备注 请注意,使用此方法计算的百分比并非都是输入数据集一员。

另见 ta.percentile_nearest_rank

ta.percentile_nearest_rank

根据最近的排名方法计算百分比。

ta.percentile_nearest_rank(source, length, percentage) 

返回值 lengthK线返回的source系列的第P个百分位数。

参数

  • source (series int/float) 待执行的系列值(来源)。
  • length (series int) 过去的K线数量(长度)
  • percentage (simple int/float) 百分比,从0到100的范围内的数字

备注 使用少于过去100 k线长度的最近排名法可导致相同的数字用于多个百分位数。 最近排名法计算的百分比都是输入数据集一员。 第100个百分点被定义为输入数据集中的最大值。

另见 ta.percentile_linear_interpolation

ta.percentrank

百分比等级是以前的值小于或等于给定系列当前值的百分比。

ta.percentrank(source, length) 

返回值 lengthK线返回的source百分比排名。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

ta.variance

方差是一系列与其均值的平方偏差的期望值 (ta.sma),它非正式地衡量一组数字与其均值的距离。

ta.variance(source, length, biased) 

返回值 length K线返回的source的方差。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).
  • biased (series bool) 确定应该使用哪个估计。可选。默认值为true。

备注 如果biased为true,函数将使用对整个总体的有偏估计进行计算,如果为false - 对样本的无偏估计。

另见 ta.dev ta.stdev

ta.tr

ta.tr(handle_na) 

返回值 真实范围。它是math.max(high - low, math.abs(high - close[1]), math.abs(low - close[1]))。

参数

  • handle_na (simple bool) 如何处理 NaN 值。 如果为 true,并且前一天的收盘价为 NaN,则 tr 将被计算为当天的高-低点。否则(如果为false) tr 在这种情况下将返回 NaN。另请注意,ta.atr 使用 ta.tr(true)。

备注 ta.tr(false)ta.tr完全相同。

另见 ta.atr

ta.mfi

资金流量指标。资金流量指标是一种技术指标,它使用价格和成交量来确定资产中的超买或超卖状况。

ta.mfi(series, length) 

例子

plot(ta.mfi(hlc3, 14), color=color.yellow)

// the same on pine
pine_mfi(src, length) =>
    float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length)
    float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length)
    mfi = 100.0 - (100.0 / (1.0 + upper / lower))
    mfi

plot(pine_mfi(hlc3, 14))

返回值 资金流量指标

参数

  • series (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

另见 ta.rsi math.sum

ta.kc

肯特纳通道。肯特那通道是一个技术指标,包含了中间的移动平均线以及上下轨的通道。

ta.kc(series, length, mult) 
ta.kc(series, length, mult, useTrueRange) 

例子

[middle, upper, lower] = ta.kc(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)


// the same on pine
f_kc(src, length, mult, useTrueRange) =>
    float basis = ta.ema(src, length)
    float span = (useTrueRange) ? ta.tr : (high - low)
    float rangeEma = ta.ema(span, length)
    [basis, basis + rangeEma * mult, basis - rangeEma * mult]
    
[pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true)

plot(pineMiddle)
plot(pineUpper)
plot(pineLower)

返回值 肯特纳通道

参数

  • series (series int/float) 待执行的系列值。
  • length (simple int) K线数量(长度).
  • mult (simple int/float) 标准差因子。
  • useTrueRange (simple bool) 可选参数。指定是否使用真实范围; 默认为true。 如果值为false,则将使用表达式(high-low)来计算范围。

另见 ta.ema ta.atr ta.bb

ta.kcw

肯特纳通道宽度。肯特那通道宽度是上,下通道之间的差除以中间通道的值。

ta.kcw(series, length, mult) 
ta.kcw(series, length, mult, useTrueRange) 

例子

plot(ta.kcw(close, 5, 4), color=color.yellow)

// the same on pine
f_kcw(src, length, mult, useTrueRange) =>
    float basis = ta.ema(src, length)
    float span = (useTrueRange) ? ta.tr : (high - low)
    float rangeEma = ta.ema(span, length)
    
    ((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis

plot(f_kcw(close, 5, 4, true))

返回值 肯特纳通道宽度。

参数

  • series (series int/float) 待执行的系列值。
  • length (simple int) K线数量(长度).
  • mult (simple int/float) 标准差因子。
  • useTrueRange (simple bool) 可选参数。指定是否使用真实范围; 默认为true。 如果值为false,则将使用表达式(high-low)来计算范围。

另见 ta.kc ta.ema ta.atr ta.bb

ta.correlation

相关系数。描述两个系列倾向于偏离其ta.sma值的程度。

ta.correlation(source1, source2, length) 

返回值 相关系数。

参数

  • source1 (series int/float) 源系列。
  • source2 (series int/float) 目标系列。
  • length (series int) 长度(K线数量)

另见 request.security

ta.cross

ta.cross(source1, source2) 

返回值 如果两个系列相互交叉则为true,否则为false。

参数

  • source1 (series int/float) 第一数据系列。
  • source2 (series int/float) 第二数据系列。

另见 ta.change

ta.crossover

source1-series被定义为跨越source2-series,如果在当前K线上,source1的值大于source2的值,并且在前一个K线上,source2的值source1小于source2`的值。

ta.crossover(source1, source2) 

返回值 如果source1穿过source2则为true,否则为false。

参数

  • source1 (series int/float) 第一数据系列。
  • source2 (series int/float) 第二数据系列。

ta.crossunder

source1-series 被定义为在 source2-series 下交叉,如果在当前K线上,source1的值小于source2的值,并且在前一根K线上,source1的值大于source2的值。

ta.crossunder(source1, source2) 

返回值 如果source1source2下交叉,则为true,否则为false。

参数

  • source1 (series int/float) 第一数据系列。
  • source2 (series int/float) 第二数据系列。

ta.atr

函数ATR(真实波动幅度均值)返回真实范围的RMA。真实波动幅度是max(high - low, abs(high - close[1]), abs(low - close[1]))。

ta.atr(length) 

例子

plot(ta.atr(14))

//the same on pine
pine_atr(length) =>
    trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    //true range can be also calculated with ta.tr(true)
    ta.rma(trueRange, length)

plot(pine_atr(14))

返回值 真实波动幅度均值(ATR)

参数 length (simple int) 长度(K线数量)

另见 ta.tr ta.rma

ta.sar

抛物线转向(抛物线停止和反向)是J. Welles Wilder, Jr.设计的方法,以找出交易市场价格方向的潜在逆转。

ta.sar(start, inc, max) 

例子

plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)

// The same on Pine
pine_sar(start, inc, max) =>
  var float result = na
  var float maxMin = na
  var float acceleration = na
  var bool isBelow = na
  bool isFirstTrendBar = false
  
  if bar_index == 1
    if close > close[1]
      isBelow := true
      maxMin := high
      result := low[1]
    else
      isBelow := false
      maxMin := low
      result := high[1]
    isFirstTrendBar := true
    acceleration := start
  
  result := result + acceleration * (maxMin - result)
  
  if isBelow
    if result > low
      isFirstTrendBar := true
      isBelow := false
      result := math.max(high, maxMin)
      maxMin := low
      acceleration := start
  else
    if result < high
      isFirstTrendBar := true
      isBelow := true
      result := math.min(low, maxMin)
      maxMin := high
      acceleration := start
      
  if not isFirstTrendBar
    if isBelow
      if high > maxMin
        maxMin := high
        acceleration := math.min(acceleration + inc, max)
    else
      if low < maxMin
        maxMin := low
        acceleration := math.min(acceleration + inc, max)
  
  if isBelow
    result := math.min(result, low[1])
    if bar_index > 1
      result := math.min(result, low[2])
    
  else
    result := math.max(result, high[1])
    if bar_index > 1
      result := math.max(result, high[2])
  
  result
  
plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)

返回值 抛物线转向指标。

参数

  • start (simple int/float) 开始。
  • inc (simple int/float) 增加
  • max (simple int/float) 最大.

ta.barssince

从上次条件为true起,计算K线数量。

ta.barssince(condition) 

例子

// get number of bars since last color.green bar
plot(ta.barssince(close >= open))

返回值 如状况为true的k线数目。

备注 如果在当前K线之前从未满足该条件,则该函数返回na。 请注意,使用此变量/函数可能会导致指标重新绘制。

另见 ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest

ta.cum

source 的累积(全部的)总和。换句话说,它是source的所有元素的总和。

ta.cum(source) 

返回值 系列总和。

参数

  • source (series int/float)

另见 math.sum

ta.dmi

dmi函数返回动向指数DMI。

ta.dmi(diLength, adxSmoothing) 

例子

len = input.int(17, minval=1, title="DI Length")
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
[diplus, diminus, adx] = ta.dmi(len, lensig)
plot(adx, color=color.red, title="ADX")
plot(diplus, color=color.blue, title="+DI")
plot(diminus, color=color.orange, title="-DI")

返回值 三个DMI系列的元组:正方向运动(+DI)、负方向运动(-DI) 和平均方向运动指数(ADX)。

参数

  • diLength (simple int) DI Period。
  • adxSmoothing (simple int) ADX平滑周期

另见 ta.rsi ta.tsi ta.mfi

ta.falling

测试 source 系列对于 length K线long是否正在下跌。

ta.falling(source, length) 

返回值 如果当前 source 值小于 length K线返回的任何先前 source 值,则为true,否则为false。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

另见 ta.rising

ta.rising

测试 source 系列对于 length K线long是否正在上涨。

ta.rising(source, length) 

返回值 如果当前 source 值大于 length K线返回的任何先前 source 值,则为true,否则为false。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

另见 ta.falling

ta.pivothigh

此函数返回枢轴高点的价格。 如果没有枢轴高点,则返回“NaN”。

ta.pivothigh(source, leftbars, rightbars) 
ta.pivothigh(leftbars, rightbars) 

例子

leftBars = input(2)
rightBars=input(2)
ph = ta.pivothigh(leftBars, rightBars)
plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)

返回值 此点的价格或者 ‘NaN’.

参数

  • source (series int/float) 可选参数。数据序列计算值。预设值’High’。
  • leftbars (series int/float) 左力量。
  • rightbars (series int/float) 右长度。

备注 如果参数’leftbars’或’rightbars’是系列,你应该使用max_bars_back函数作为’source’变量。

ta.pivotlow

此函数返回枢轴低点的价格。 如果没有枢轴低点,它返回“NaN”。

ta.pivotlow(source, leftbars, rightbars) 
ta.pivotlow(leftbars, rightbars) 

例子

leftBars = input(2)
rightBars=input(2)
pl = ta.pivotlow(close, leftBars, rightBars)
plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)

返回值 此点的价格或者 ‘NaN’.

参数

  • source (series int/float) 可选参数。 数据系列计算值。 默认为“Low”。
  • leftbars (series int/float) 左力量。
  • rightbars (series int/float) 右长度。

备注 如果参数’leftbars’或’rightbars’是系列,你应该使用max_bars_back函数作为’source’变量。

ta.highest

过去k线的给定数目的最高值。

ta.highest(source, length) 
ta.highest(length) 

返回值 系列中的最高值。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

备注 两个 args 版本:source 是一个系列,length 是返回的K线数。 一个 arg 版本:length 是返回的K线数。算法使用high作为 source 系列。

另见 ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.highestbars

过去k线的给定数目的最高值偏移。

ta.highestbars(source, length) 
ta.highestbars(length) 

返回值 偏移到最高k线。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

备注 两个 args 版本:source 是一个系列,length 是返回的K线数。 一个 arg 版本:length 是返回的K线数。算法使用high作为 source 系列。

另见 ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen

ta.stoch

随机指标。计算方程:100 * (close - lowest(low, length)) / (highest(high, length) - lowest(low, length))。

ta.stoch(source, high, low, length) 

返回值 随机

参数

  • source (series int/float) 源系列。
  • high (series int/float) 高系列
  • low (series int/float) 低系列
  • length (series int) 长度(K线数量)

另见 ta.cog

ta.supertrend

超级趋势指标。超级趋势指标是一个跟随趋势的指标。

ta.supertrend(factor, atrPeriod)

例子

//@version=5
indicator("Pine Script™ Supertrend")

[supertrend, direction] = ta.supertrend(3, 10)
plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
  src = hl2
  atr = ta.atr(atrPeriod)
  upperBand = src + factor * atr
  lowerBand = src - factor * atr
  prevLowerBand = nz(lowerBand[1])
  prevUpperBand = nz(upperBand[1])

  lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
  upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
  int direction = na
  float superTrend = na
  prevSuperTrend = superTrend[1]
  if na(atr[1])
    direction := 1
  else if prevSuperTrend == prevUpperBand
    direction := close > upperBand ? -1 : 1
  else
    direction := close < lowerBand ? 1 : -1
  superTrend := direction == -1 ? lowerBand : upperBand
  [superTrend, direction]

[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

返回值 两个超趋势系列的元组:超趋势线和趋势方向。可能的值为 1(向下方向)和 -1(向上方向)。

参数

  • factor (series int/float) ATR将乘以的乘数。
  • atrPeriod (simple int) 平均真实波幅长度

另见 ta.macd

ta.lowest

过去k线的给定数目的最低值。

ta.lowest(source, length) 
ta.lowest(length) 

返回值 系列中的最低值。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

备注 两个 args 版本:source 是一个系列,length 是返回的K线数。 一个 arg 版本:length 是返回的K线数。算法使用low作为source系列。

另见 ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.lowestbars

过去k线的给定数目的最低值偏移。

ta.lowestbars(source, length) 
ta.lowestbars(length) 

返回值 偏移到最低k线。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) 返回K线数。

备注 两个 args 版本:source 是一个系列,length 是返回的K线数。 一个 arg 版本:length 是返回的K线数。算法使用low作为source系列。

另见 ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen

ta.valuewhen

返回第n次最近出现的“condition”为true的K线的“source”系列值。

ta.valuewhen(condition, source, occurrence) 

例子

slow = ta.sma(close, 7)
fast = ta.sma(close, 14)
// Get value of `close` on second most recent cross
plot(ta.valuewhen(ta.cross(slow, fast), close, 1))

参数

  • condition (series bool) 要搜索的条件。
  • source (series int/float/bool/color) 要从满足条件的K线返回的值。
  • occurrence (simple int) 条件的出现。编号从0开始并按时间回溯,因此“0”是最近出现的“condition”,“1”是第二个最近出现的,依此类推。必须是整数 >= 0。

备注 此功能需要在每根K线上执行。不建议在for或while循环结构中使用它,因为它的行为可能出乎意料。请注意,使用此功能可能会导致指标重绘。

另见 ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest

ta.vwap

成交量加权平均价格

ta.vwap(source) 

返回值 成交量加权平均

参数

  • source (series int/float) 源系列。

另见 ta.vwap

ta.vwma

vwma 函数返回 length K线的 source 的成交量加权移动平均值。等同于:sma(source * volume, length) / sma(volume, length)。

ta.vwma(source, length) 

例子

plot(ta.vwma(close, 15))

// same on pine, but less efficient
pine_vwma(x, y) =>
    ta.sma(x * volume, y) / ta.sma(volume, y)
plot(pine_vwma(close, 15))

返回值 lengthK线返回的source的成交量加权移动平均线。

参数

  • source (series int/float) 待执行的系列值。
  • length (series int) K线数量(长度).

另见 ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma

ta.wpr

威廉姆斯指标Williams %R。。该振荡指标显示当前收盘价与过去“一段时间内”的高/低价之间的关系。

ta.wpr(length) 

例子

plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))

返回值 Williams %R。

参数

  • length (series int) K线数量。

另见 ta.mfi ta.cmo

plot

plot

在图表上绘制一系列数据。

plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display) 

例子

plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true)

// You may fill the background between any two plots with a fill() function:
p1 = plot(open)
p2 = plot(close)
fill(p1, p2, color=color.new(color.green, 90))

返回值 可用于fill的绘图对象。

参数

  • series (series int/float) 要绘制的数据系列。 必要参数。
  • title (const string) 绘图标题。
  • color (series color) 绘图的颜色。您可以使用如’color = red’或’color =#ff001a’的常量以及如 'color = close >= open ? green : red’的复杂表达式。 可选参数。
  • linewidth (input int) 绘制线的宽度。默认值为1。不适用于每种样式。
  • style (plot_style) plot类型。可能的值有:plot.style_line、plot.style_stepline、plot.style_stepline_diamond、plot.style_histogram、plot.style_cross、plot.style_area、plot.style_columns、plot.style_circles、plot.style_linebr、plot.style_areabr。默认值为plot.style_line。
  • trackprice (input bool) 如果为true,则水平价格线将显示在最后一个指标值的水平。默认为false。
  • histbase (input int/float) 以plot.style_histogram,plot.style_columns或plot.style_area样式绘制图时,用作参考水平的价格值。默认值为0.0。
  • offset (series int) 在k线特定数量上向左或向右移动绘图。 默认值为0。
  • join (input bool) 如果为true,则绘图点将与线连接,仅适用于plot.style_cross和plot.style_circles样式。 默认值为false。
  • editable (const bool) 如果为true,则绘图样式可在格式对话框中编辑。 默认值为true。
  • show_last (input int) 如已设置,则定义在图表上绘制的k线数(从最后k线返回过去)。
  • display (plot_display) 控制显示绘图的位置。可能的值为:display.none、display.all。预设值为display.all。
  • overlay (const bool) FMZ平台扩展的参数,用于设置当前函数在主图(设置true)或者副图(设置false)上画图显示,默认值为false。不指定该参数则按照strategy或者indicator中的overlay参数设置,strategy或者indicator没有设置overlay参数,则按照默认参数处理。

另见 plotshape plotchar bgcolor

plotshape

在图表上绘制可视形状。

plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display) 

例子

data = close >= open
plotshape(data, style=shape.xcross)

参数

  • series (series bool) 作为形状绘制的一系列数据 。 除了location.absolute之外,系列被视为所有位置值的一系列布尔值。 必要参数。
  • title (const string) 绘图标题。
  • style (input string) 绘图类型。可能的值有:shape.xcross,shape.cross,shape.triangleup,shape.triangledown,shape.flag,shape.circle,shape.arrowup,shape.arrowdown,shape.labelup,shape.labeldown,shape.square,shape.diamond。 默认值为shape.xcross。
  • location (input string) 形状在图表上的位置。 可能的值有:location.abovebar,location.belowbar,location.top,location.bottom,location.absolute。 默认值为location.abovebar。
  • color (series color) 形状的颜色。 您可以使用如’color = red’或’color =#ff001a’的常量以及如 'color = close >= open ? green : red’的复杂表达式。 可选参数。
  • offset (series int) 在k线特定数量上向左或向右移动形状。 默认值为0。
  • text (const string) 文字以形状显示。 您可以使用多行文本,分隔行使用’\n’转义序列。示例:‘line one\nline two’。
  • textcolor (series color) 文字的颜色。 您可以使用如 ‘textcolor=red’ 或’textcolor=#ff001a’ 的常量,以及如’textcolor = close >= open ? green : red’的复杂表达式。 可选参数。
  • editable (const bool) 如果为true,则plotshape样式可在格式对话框中编辑。 默认值为true。
  • show_last (input int) 如已设置,则定义在图表上绘制的形状数(从最后k线返回过去)。
  • size (const string) 图表上字符的大小。 可能的值有: size.auto, size.tiny, size.small, size.normal, size.large, size.huge。默认值为size.auto
  • display (plot_display) 控制显示绘图的位置。可能的值为:display.none、display.all。预设值为display.all。
  • overlay (const bool) FMZ平台扩展的参数,用于设置当前函数在主图(设置true)或者副图(设置false)上画图显示,默认值为false。不指定该参数则按照strategy或者indicator中的overlay参数设置,strategy或者indicator没有设置overlay参数,则按照默认参数处理。

另见 plot plotchar bgcolor

plotchar

在图表上使用任何给定的Unicode字符绘制可视形状。

plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display) 

例子

data = close >= open
plotchar(data, char='❄')

参数

  • series (series bool) 作为形状绘制的一系列数据 。 除了location.absolute之外,系列被视为所有位置值的一系列布尔值。 必要参数。
  • title (const string) 绘图标题。
  • char (input string) 作为视觉形状使用的字符
  • location (input string) 形状在图表上的位置。 可能的值有:location.abovebar,location.belowbar,location.top,location.bottom,location.absolute。 默认值为location.abovebar。
  • color (series color) 形状的颜色。 您可以使用如’color = red’或’color =#ff001a’的常量以及如 'color = close >= open ? green : red’的复杂表达式。 可选参数。
  • offset (series int) 在k线特定数量上向左或向右移动形状。 默认值为0。
  • text (const string) 文字以形状显示。 您可以使用多行文本,分隔行使用’\n’转义序列。示例:‘line one\nline two’。
  • textcolor (series color) 文字的颜色。 您可以使用如 ‘textcolor=red’ 或’textcolor=#ff001a’ 的常量,以及如’textcolor = close >= open ? green : red’的复杂表达式。 可选参数。
  • editable (const bool) 如果为true,则plotchar样式可在格式对话框中编辑。 默认值为true。
  • show_last (input int) 如已设置,则定义在图表上绘制的图表数(从最后k线返回过去)。
  • size (const string) 图表上字符的大小。 可能值有:size.auto,size.tiny,size.small,size.normal,size.large,size.huge。 默认值为size.auto
  • display (plot_display) 控制显示绘图的位置。可能的值为:display.none、display.all。预设值为display.all。
  • overlay (const bool) FMZ平台扩展的参数,用于设置当前函数在主图(设置true)或者副图(设置false)上画图显示,默认值为false。不指定该参数则按照strategy或者indicator中的overlay参数设置,strategy或者indicator没有设置overlay参数,则按照默认参数处理。

另见 plot plotshape bgcolor

plotcandle

在图表上绘制蜡烛。

plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)

例子

indicator("plotcandle example", overlay=true)
plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)

参数

  • open (series int/float) 数据开放系列用作蜡烛开放值。必要参数。
  • high (series int/float) 高系列数据用作蜡烛的高值。必要参数。
  • low (series int/float) 低系列数据被用作蜡烛的低值。 必要参数。
  • close (series int/float) 关闭系列数据作为关闭k线的值。 必要参数。
  • title (const string) plotcandle的标题。 可选参数。
  • color (series color) 蜡烛的颜色。您可以使用如’color = red’或’color =#ff001a’的常量以及像’color = close >= open ? green : red’的复杂表达式。可选参数。
  • wickcolor (series color) 蜡烛灯芯的颜色。一个可选参数。
  • editable (const bool) 如果为true,则plotcandle样式可在格式对话框中编辑。 默认值为true。
  • show_last (input int) 如已设置,则定义在图表上绘制的蜡烛数(从最后k线返回过去)。
  • bordercolor (series color) 蜡烛的边框颜色。一个可选参数。
  • display (plot_display) 控制显示绘图的位置。可能的值为:display.none、display.all。预设值为display.all。
  • overlay (const bool) FMZ平台扩展的参数,用于设置当前函数在主图(设置true)或者副图(设置false)上画图显示,默认值为false。不指定该参数则按照strategy或者indicator中的overlay参数设置,strategy或者indicator没有设置overlay参数,则按照默认参数处理。

备注 如果开高低收都是NaN,那么K线不需要显示出来。 开、高、低、收的最大值将被设置为“高”,最小值被设置为“低”。

另见 plotbar

plotarrow

在图表上绘制向上和向下箭头:向上箭头绘制在每个正值指示器上,而向下箭头绘制在每个负值上。 如果指标返回na,则不会绘制箭头。 箭头具有不同的高度,指标的绝对值越大,绘制箭头越长。

plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)

例子

codiff = close - open
plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)

参数

  • series (series int/float) 要绘制成箭头的数据系列。 必要参数。
  • title (const string) 绘图标题。
  • colorup (series color) 向上箭头的颜色。可选参数。
  • colordown (series color) 向下箭头的颜色。可选参数。
  • offset (series int) 在K线特定数量上向左或向右移动箭头。 默认值为0。
  • minheight (input int) 以像素为单位最小可能的箭头高度。默认值为5。
  • maxheight (input int) 以像素为单位的最大可能的箭头高度。默认值为100
  • editable (const bool) 如果为true,则plotarrow样式可在格式对话框中编辑。 默认值为true。
  • show_last (input int) 如已设置,则定义在图表上绘制的箭数(从最后k线返回过去)。
  • display (plot_display) 控制显示绘图的位置。可能的值为:display.none、display.all。预设值为display.all。
  • overlay (const bool) FMZ平台扩展的参数,用于设置当前函数在主图(设置true)或者副图(设置false)上画图显示,默认值为false。不指定该参数则按照strategy或者indicator中的overlay参数设置,strategy或者indicator没有设置overlay参数,则按照默认参数处理。

另见 plot plotshape plotchar barcolor bgcolor

array

array.pop

该函数从阵列中删除最后一个元素并返回其值。

array.pop(id)

例子

// array.pop example
a = array.new_float(5,high)
removedEl = array.pop(a)
plot(array.size(a))
plot(removedEl)

返回值 被删除元素的值。

参数

  • id (any array type) 阵列对象。

另见 array.new_float array.set array.push array.remove array.insert array.shift

array.shift

该函数删除阵列的第一个元素并返回其值。

array.shift(id)

例子

// array.shift example
a = array.new_float(5,high)
removedEl = array.shift(a)
plot(array.size(a))
plot(removedEl)

返回值 被删除元素的值。

参数

  • id (any array type) 阵列对象。

另见 array.unshift array.set array.push array.remove array.includes

array.unshift

该函数将值插入阵列的初始位置。

array.unshift(id, value)

例子

// array.unshift example
a = array.new_float(5, 0)
array.unshift(a, open)
plot(array.get(a, 0))

参数

  • id (any array type) 阵列对象。
  • value (series <type of the array's elements>) 要添加到阵列初始位置的值。

另见 array.shift array.set array.insert array.remove array.indexof

array.size

该函数返回阵列中元素的数量。

array.size(id)

例子

// array.size example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
// note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
array.push(slice, open)
// size was changed in slice and in original array
plot(array.size(a))
plot(array.size(slice))

返回值 阵列中元素的数量。

参数

  • id (any array type) 阵列对象。

另见 array.new_float array.sum array.slice array.sort

array.slice

该函数从现有阵列创建分片。如果分片中的对象发生更改,则更改将同时应用于新阵列和原始阵列。

array.slice(id, index_from, index_to)

例子

// array.slice example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
// take elements from 0 to 4
// *note that changes in slice also modify original array 
slice = array.slice(a, 0, 5)
plot(array.sum(a) / 10)
plot(array.sum(slice) / 5)

返回值 阵列分片的浅拷贝。

参数

  • id (any array type) 阵列对象。
  • index_from (series int) 从零开始的索引以开始提取。
  • index_to (series int) 从零开始的索引在完成提取之前。该函数提取此索引之前的元素。

另见 array.new_float array.get array.sort

array.abs

返回一个阵列,其中包含原始阵列中每个元素的绝对值。

array.abs(id)

参数

  • id (int[]/float[]) 阵列对象。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search

该函数返回值的索引,如果未找到该值,则返回-1。要搜索的阵列必须按升序排序。

array.binary_search(id, val)

例子

// array.binary_search
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search(a, 0) // 1
plot(position)

参数

  • id (int[]/float[]) 阵列对象。
  • val (series int/float) 在阵列中搜索的值。

备注 二进制搜索适用于按升序预先排序的阵列。它首先将阵列中间的元素与目标值进行比较。如果元素与目标值匹配,则返回其在阵列中的位置。如果元素的值大于目标值,则在阵列的下半部分继续搜索。如果元素的值小于目标值,则在阵列的上半部分继续搜索。通过递归地执行此操作,该算法逐渐消除了阵列中目标值不能位于的越来越小的部分。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_leftmost

如果找到值,该函数将返回该值的索引。当未找到值时,该函数返回下一个最小元素的索引,如果它在阵列中,则在值所在位置的左侧。要搜索的阵列必须按升序排序。

array.binary_search_leftmost(id, val)

例子

// array.binary_search_leftmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_leftmost(a, 3) // 2
plot(position)

参数

  • id (int[]/float[]) 阵列对象。
  • val (series int/float) 在阵列中搜索的值。

备注 二进制搜索适用于按升序预先排序的阵列。它首先将阵列中间的元素与目标值进行比较。如果元素与目标值匹配,则返回其在阵列中的位置。如果元素的值大于目标值,则在阵列的下半部分继续搜索。如果元素的值小于目标值,则在阵列的上半部分继续搜索。通过递归地执行此操作,该算法逐渐消除了阵列中目标值不能位于的越来越小的部分。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_rightmost

如果找到该值,该函数将返回该值的索引。当未找到该值时,该函数返回该值在阵列中所在位置右侧的元素的索引。阵列必须按升序排序。

array.binary_search_rightmost(id, val)

例子

// array.binary_search_rightmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_rightmost(a, 3) // 3
plot(position)

参数

  • id (int[]/float[]) 阵列对象。
  • val (series int/float) 在阵列中搜索的值。

备注 二进制搜索按升序对已排序的阵列起作用。它首先将阵列中间的元素与目标值进行比较。如果元素与目标值匹配,则返回其在阵列中的位置。如果元素的值大于目标值,则在阵列的下半部分继续搜索。如果元素的值小于目标值,则在阵列的上半部分继续搜索。通过递归地执行此操作,该算法逐渐消除了阵列中目标值不能位于的越来越小的部分。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort

该函数对阵列的元素进行排序。

array.sort(id, order)

例子

// array.sort example
a = array.new_float(0,0)
for i = 0 to 5
    array.push(a, high[i])
array.sort(a, order.descending)
if barstate.islast
    runtime.log(str.tostring(a))

参数

  • id (int[]/float[]/string[]) 阵列对象。
  • order (sort_order) 排序顺序:order.ascending(默认)或order.descending。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort_indices

返回一个索引阵列,当用于索引原始阵列时,将按其排序顺序访问其元素。它不会修改原始阵列。

array.sort_indices(id, order)

例子

// array.sort_indices
a = array.from(5, -2, 0, 9, 1)
sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3]
indexOfSmallestValue = array.get(sortedIndices, 0) // 1
smallestValue = array.get(a, indexOfSmallestValue) // -2
plot(smallestValue)

参数

  • id (int[]/float[]/string[]) 阵列对象。
  • order (sort_order) 排序顺序:order.ascending 或 order.descending。可选。默认值为 order.ascending。

另见 array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.clear

该函数从阵列中删除所有元素。

array.clear(id)

例子

// array.clear example
a = array.new_float(5,high)
array.clear(a)
array.push(a, close)
plot(array.get(a,0))
plot(array.size(a))

参数

  • id (any array type) 阵列对象。

另见 array.new_float array.insert array.push array.remove array.pop

array.concat

该函数用于合并两个阵列。它将所有元素从第二个阵列推送到第一个阵列,然后返回第一个阵列。

array.concat(id1, id2)

例子

// array.concat example
a = array.new_float(0,0)
b = array.new_float(0,0)
for i = 0 to 4
    array.push(a, high[i])
    array.push(b, low[i])
c = array.concat(a,b)
plot(array.size(a))
plot(array.size(b))
plot(array.size(c))

返回值 第一个阵列具有来自第二个阵列的合并元素。

参数

  • id1 (any array type) 第一个阵列对象。
  • id2 (any array type) 第二个阵列对象。

另见 array.new_float array.insert array.slice

array.copy

该函数创建现有阵列的副本。

array.copy(id)

例子

// array.copy example
length = 5
a = array.new_float(length, close)
b = array.copy(a)
a := array.new_float(length, open)
plot(array.sum(a) / length)
plot(array.sum(b) / length)

返回值 阵列的副本。

参数

  • id (any array type) 阵列对象。

另见 array.new_float array.get array.slice array.sort

array.stdev

该函数返回阵列元素的标准差。

array.stdev(id, biased)

例子

// array.stdev example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.stdev(a))

返回值 阵列元素的标准差。

参数

  • id (int[]/float[]) 阵列对象。
  • biased (series bool) 确定应该使用哪个估计。可选。默认值为true。

备注 如果biased为true,函数将使用对整个总体的有偏估计进行计算,如果为false - 对样本的无偏估计。

另见 array.new_float array.max array.min array.avg

array.standardize

该函数返回标准化元素的阵列。

array.standardize(id)

例子

// array.standardize example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
b = array.standardize(a)
plot(array.min(b))
plot(array.max(b))

返回值 标准化元素的阵列。

参数

  • id (int[]/float[]) 阵列对象。

另见 array.max array.min array.mode array.avg array.variance array.stdev

array.variance

该函数返回阵列元素的方差。

array.variance(id, biased)

例子

// array.variance example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.variance(a))

返回值 阵列元素的方差。

参数

  • id (int[]/float[]) 阵列对象。
  • biased (series bool) 确定应该使用哪个估计。可选。默认值为true。

备注 如果biased为true,函数将使用对整个总体的有偏估计进行计算,如果为false - 对样本的无偏估计。

另见 array.new_float array.stdev array.min array.avg array.covariance

array.covariance

该函数返回两个阵列的协方差。

array.covariance(id1, id2, biased)

例子

// array.covariance example
a = array.new_float(0)
b = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
    array.push(b, open[i])
plot(array.covariance(a, b))

返回值 两个阵列的协方差。

参数

  • id1 (int[]/float[]) 阵列对象。
  • id2 (int[]/float[]) 阵列对象。
  • biased (series bool) 确定应该使用哪个估计。可选。默认值为true。

备注 如果biased为true,函数将使用对整个总体的有偏估计进行计算,如果为false - 对样本的无偏估计。

另见 array.new_float array.max array.stdev array.avg array.variance

array.fill

该函数将阵列的元素设置为单个值。如果未指定索引,则设置所有元素。如果仅提供起始索引(默认为0),则设置从该索引开始的元素。如果同时使用两个索引参数,则会设置从开始索引到但不包括结束索引的元素(默认值为na)。

array.fill(id, value, index_from, index_to)

例子

// array.fill example
a = array.new_float(10)
array.fill(a, close)
plot(array.sum(a))

参数

  • id (any array type) 阵列对象。
  • value (series <type of the array's elements>) 用于填充阵列的值。
  • index_from (series int) 起始索引,默认为0。
  • index_to (series int) 结束索引,默认为na。必须大于要设置的最后一个元素的索引。

另见 array.new_float array.set array.slice

array.includes

如果在阵列中找到该值,则该函数返回true,否则返回false。

array.includes(id, value)

例子

// array.includes example
a = array.new_float(5,high)
p = close
if array.includes(a, high)
    p := open
plot(p)

返回值 如果在阵列中找到该值,则为true,否则为false。

参数

  • id (any array type) 阵列对象。
  • value (series <type of the array's elements>) 要在阵列中搜索的值。

另见 array.new_float array.indexof array.shift array.remove array.insert

array.insert

该函数通过在适当位置添加新元素来更改阵列的内容。

array.insert(id, index, value)

例子

// array.insert example
a = array.new_float(5, close)
array.insert(a, 0, open)
plot(array.get(a, 5))

参数

  • id (any array type) 阵列对象。
  • index (series int) 插入值的索引。
  • value (series <type of the array's elements>) 要添加到阵列的值。

另见 array.new_float array.set array.push array.remove array.pop array.unshift

array.join

该函数通过连接阵列的所有元素来建立并返回新字符串,用指定的分隔符字符串分隔。

array.join(id, separator)

例子

// array.join example
a = array.new_float(5, 5)
runtime.log(array.join(a, ","))

参数

  • id (int[]/float[]/string[]) 阵列对象。
  • separator (series string) 用于分隔每个阵列元素的字符串。

另见 array.new_float array.set array.insert array.remove array.pop array.unshift

array.lastindexof

此函数返回值最后一次出现的索引。如果找不到该值,则返回 -1。

array.lastindexof(id, value)

例子

// array.lastindexof example
a = array.new_float(5,high)
index = array.lastindexof(a, high)
plot(index)

返回值 元素的索引。

参数

  • id (any array type) 阵列对象。
  • value (series <type of the array's elements>) 要在阵列中搜索的值。

另见 array.new_float array.set array.push array.remove array.insert

array.max

该函数返回最大值,或给定阵列中的第n个最大值。

array.max(id, nth)

例子

// array.max
a = array.from(5, -2, 0, 9, 1)
secondHighest = array.max(a, 2) // 1
plot(secondHighest)

返回值 阵列中的最大值或第n个最大值。

参数

  • id (int[]/float[]) 阵列对象。
  • nth (series int) 返回的第n个最大值,其中0是最大值。可选。默认为零。

另见 array.new_float array.min array.sum

array.min

该函数返回最小值,或给定序列中的第n个最小值。

array.min(id, nth)

例子

// array.min
a = array.from(5, -2, 0, 9, 1)
secondLowest = array.min(a, 1) // 0
plot(secondLowest)

返回值 阵列中的最小值或第n个最小值。

参数

  • id (int[]/float[]) 阵列对象。
  • nth (series int) 要返回的第n个最小值,其中0是最小值。可选。默认为零。

另见 array.new_float array.max array.sum

array.median

该函数返回阵列元素的中位数。

array.median(id)

例子

// array.median example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.median(a))

More

wuhuoyan 想要币安u合约多个交易对同时运行怎么搞

轻轻的云 请教下,pine能多交易对吗? 也是和JS一样遍历交易对吗??谢谢。

lisa20231 謝謝提供詳細的文檔

artistry 大佬!这 pine script 怎么在平台上使用 okex 的模拟盘?

artistry 这等于是 tradingview平台的策略直接copy到发明者平台就可以使用了吧!

发明者量化-小小梦 PINE语言只能做单品种策略,多品种策略最好还是用python , javascript , c++编写设计。

发明者量化-小小梦 嗯,是的,OKX比较特殊,他们的模拟环境和实盘环境是一样的地址,只是在其它地方做了区别。所以没办法用切换基地址,去切换到模拟盘。

轻轻的云 用不了okx模拟盘。。。。。[捂脸]

发明者量化-小小梦 这个多品种的架构问题不好解决,因为每个交易所接口不一样,对接口频率限定也不一样,会产生很多问题。

发明者量化-小小梦 好的,感谢云总提出建议,这边报下这个需求。

轻轻的云 感觉最好能和JS混编,JS可以更好的适应各种交易方式。

趋势猎手 以后会考虑多品种吗?收盘价每个品种遍历就行

发明者量化-小小梦 不客气。

轻轻的云 好的,谢谢梦大。

发明者量化-小小梦 您好,暂时PINE语言策略只能做单品种。

发明者量化-小小梦 不客气,感谢您的支持。文档还会继续完善。

发明者量化-小小梦 是的。

发明者量化-小小梦 PINE模版类库,参数上可以设置切换交易所基地址。文档开头的:PINE语言交易类库模版参数。