什么是区块链

CN
7年前

配置函数

indicator 

用于设置显示的精度,只能设置一次

indicator(precision)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

precision

整数

精度值,最大为16,最小为0

例子

// 设置脚本输出数据精度为4
indicator(precision = 4)

 

tradeConfig 

用于设置交易的配置,只能设置一次

tradeConfig(price, amount, total)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

price

字符串

last 最新价限价下单;over 超价下单下单,超价百分比跟随PC系统设置;queue 排队价;market 市价

amount

数值

下单数量,数量单位默认跟交易品种的默认单位一致,可以在启动实盘的时候做更改

例子

// 设置脚本输出数据精度为4
indicator(precision = 4)


行情数据

open

当前k线的开盘价

open

类型

数值序列数据

 

high

当前k线的最高价

high

类型

数值序列数据

 

low

当前k线的最低价

low

类型

数值序列数据

 

close

当前k线的收盘价。在实时监控中,收盘价即为最新价。

close

类型

数值序列数据

 

hl2

hl2是(最高价 + 最低价) / 2的快捷运算

hl2

类型

数值序列数据

 

hlc3

hlc3是(最高价 + 最低价 + 收盘价) / 3的快捷运算

hlc3

类型

数值序列数据

 

ohlc4

ohlc4是(开盘价 + 最高价 + 最低价 + 收盘价) / 4的快捷运算

ohlc4

类型

数值序列数据

 

volume

当前k线的成交量

volume

类型

数值序列数据

 

time

当前k线的开盘时间

time

类型

数值序列数据

 

timeclose

当前k线的收盘时间

timeclose

类型

数值序列数据

 

vbuy

资金流向买量

vbuy

类型

数值序列数据

 

vsell

资金流向卖量

vsell

类型

数值序列数据

 

oi_close

持仓量

oi_close

类型

数值序列数据

 

liq_short_size

买入(平空)张数

liq_short_size

类型

数值序列数据

 

liq_long_size

卖出(平多)张数

liq_long_size

类型

数值序列数据

 

liq_short_vol

买入(平空)币种量

liq_short_vol

类型

数值序列数据

 

liq_long_vol

卖出(平多)币种量

liq_long_vol

类型

数值序列数据

 

liq_short_count

买入(平空)额

liq_short_count

类型

数值序列数据

 

liq_long_count

卖出(平多)额

liq_long_count

类型

数值序列数据

 

funding

资金费率

funding

类型

数值序列数据

 

funding_predicted

下期预测资金费率

funding_predicted

类型

数值序列数据

 

备注

数值序列数据可以进行算术运算,运算的结果仍然是数值序列数据,详情见算术运算符章节

数值序列数据可以进行关系运算,运算的结果是布尔序列数据,可以作为预警条件的数据源,详情见关系运算符章节和相关计算函数

更多使用方法可以参考内置的脚本样例

 

交易函数

enterLong

合约开多 / 现货买入(每种指令您最多只能声明一次,重复声明指令将会产生编译错误)

enterLong(cond, price, amount)
语法版本需要 // @version=2 

类型

交易函数

参数说明

名称

类型

说明

cond

布尔数据

如close>open,需要是布尔系列值

price

字符串

last 最新价限价下单;over 超价下单下单,超价百分比跟随PC系统设置;queue 排队价;market 市价

amount

数值

下单数量,数量单位默认跟交易品种的默认单位一致,可以在启动实盘的时候做更改

返回值

例子

enterLong(close>open, price="market", amount=1)

 

exitLong

合约平多 / 现货卖出

exitLong(cond, price, amount)
语法版本需要 // @version=2 

类型

交易函数

参数说明

名称

类型

说明

cond

布尔数据

如close>open,需要是布尔系列值

price

字符串

last 最新价限价下单;over 超价下单下单,超价百分比跟随PC系统设置;queue 排队价;market 市价

amount

数值

下单数量,数量单位默认跟交易品种的默认单位一致,可以在启动实盘的时候做更改

返回值

例子

exitLong(close>open, price="market", amount=1)
 

enterShort

合约开空

enterShort(cond, price, amount)
语法版本需要 // @version=2 

类型

交易函数

参数说明

名称

类型

说明

cond

布尔数据

如close>open,需要是布尔系列值

price

字符串

last 最新价限价下单;over 超价下单下单,超价百分比跟随PC系统设置;queue 排队价;market 市价

amount

数值

下单数量,数量单位默认跟交易品种的默认单位一致,可以在启动实盘的时候做更改

返回值

例子

enterShort(close>open, price="market", amount=1)

 

exitShort

合约平空

exitShort(cond, price, amount)
语法版本需要 // @version=2 

类型

交易函数

参数说明

名称

类型

说明

cond

布尔数据

如close>open,需要是布尔系列值

price

字符串

last 最新价限价下单;over 超价下单下单,超价百分比跟随PC系统设置;queue 排队价;market 市价

amount

数值

下单数量,数量单位默认跟交易品种的默认单位一致,可以在启动实盘的时候做更改

返回值

例子

exitShort(close>open, price="market", amount=1)

 

多数据源函数

security 

从另外一个数据源中获取数据。

security(symbol, period, expr)
语法版本需要 // @version=2

类型

函数

参数说明

名称

类型

说明

symbol

字符串

请求的数据标识,使用syminfo.tickerid可获取当前窗口的标识

title

字符串

请求的时间周期

expr

表达式

需要计算和返回的表达式

例子

// 获取对应交易对的close数据
security('ethswapusdt:okcoinfutures', '5m', close) ;
// 获取对应交易对的ma数据
security('ethswapusdt:okcoinfutures', '5m', ma(close,10)) ;
// 获取当前主图的close数据
security(syminfo.tickerid,'1m',close) ;
// 获取OKX-BTC多空持仓人数比指数的close数据
security('i:lsprbtc:okex', '5m', close)
// 获取ethusdt永续的持仓量
security("interest:ethswapusdt:okcoinfutures", '5m', close)
// 获取ethusdt永续的资金费率
f = security('fundrate:ethswapusdt:okcoinfutures', '5m', fundingRate)
// 获取当前主图的当期资金费率
symbol = syminfo.tickerid
name = 'fundrate:' + symbol
security(name, '5m', fundingRate)
// 获取当前主图的下一期预测资金费率
security(name, '5m', estimatedRate)
// 获取eth的多空持仓数据
security('lspr:ethswapusdt:okcoinfutures', '5m', ratios)
// 获取精英持仓数据
security('elite:mkrswapusdt:binance', '5m', buyAccount)
// 获取合约持仓总量及交易量
security('oiav:ethswapusdt:okcoinfutures','5m',volume)
// 获取主动买入卖出数据
security('ttv:ethswapusdt:okcoinfutures','5m',buyVolume)
security('ttv:ethswapusdt:okcoinfutures','5m',sellVolume)
// 获取杠杆多空比数据
security('loanratio:ethswapusdt:okcoinfutures','5m',time)
security('loanratio:ethswapusdt:okcoinfutures','5m',ratios)
// 获取ethusdt永续的合约基差
security('basis:ethswapusdt:okcoinfutures', '5m', basis)
// 获取ethusdt永续的合约基差率
security('basis:ethswapusdt:okcoinfutures', '5m', basisRate)

 

指标函数

macd 

macd(指数平滑异同移动平均线), 利用长周期EMA和短周期EMA之间的差异状况,来判断中长期趋势的技术指标。

macd(source, N1, N2, M, maType1, maType2)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

短周期

N2

数值

长周期

M

数值

DEA周期

maType1

字符串

均值的方式,支持 MA/EMA/SMMA

maType2

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

dif 、dea、macd

例子

[dif, dea, macd] = macd(close, 12, 26, 9, 'EMA', 'EMA');
// 内部实现的代码
N1 = 12;
N2 = 26;
M = 9;
// maType1 配置的均值方式作用于 dif 的计算
dif = ema(close, N1) - ema(close, N2);
// maType2 配置的均值方式作用于 dea 的计算
dea = ema(dif, M);
macd = (dif - dea) * 2;

 

ma

ma(移动平均线),返回简单移动平均值(即算术平均值)。

ma(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

返回值

返回序列数据source在周期length下的简单移动平均值

例子

ma10 = ma(close,10);
func_ma(x,y) {
    sum = 0.0
    for (i = 0; i < y; i++){
        sum := sum + x[i]/y
    }
    return sum
}
func_ma10 = func_ma(close, 10)

 

ema

ema(指数平滑移动平均线),返回系数alpha为2/N+1的指数移动平均值。

ema(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

返回值

返回序列数据series在周期length下的指数平均值

例子

ema10 = ema(close,10);

 

smma

smma(平滑移动平均线),返回系数alpha为M/N的指数移动平均值。

smma(source, length, alpha)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

alpha

数值

系数,可选,不填默认为1

返回值

返回序列数据series在周期length下的指数平均值

例子

smma10 = smma(close,10);
smma10 = smma(close,10, 2);

 

wma

wma(加权移动平均线),返回加权移动平均值。

wma(source, length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

返回值

返回序列数据source在周期length下的加权移动平均线

例子

wma10 = wma(close,10);
func_wma(x,y) {
    sum = 0.0
 add = 0.0
    for (i = 0; i < y; i++) {
        sum := sum + x[i]*(y-i)
               add := add + (y-i)
    }
        sum := sum / add
    return sum
}
func_wma10 = func_wma(close, 10)

 

vwma

vwma(成交量加权移动平均线),返回成交量加权移动平均值。

vwma(source,volume,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

volume

数值

使用的因子,可替换为其他行情数据

length

数值

周期

返回值

返回序列数据source在周期length下的成交量加权移动平均线

例子

vwma10 = vwma(close,volume,10);
func_vwma(x,y) {
    ma(x*volume, y) / ma(volume, y)
}
func_vwma10 = func_vwma(close, 10)

 

boll 

boll(布林线指标),通过计算价格的标准差,再求价格的信赖区间,是路径型指标,该指标在图形上画出三条线,上下两条线可以分别看成价格的压力线和支撑线,中间为价格平均线。

boll(source, N, M)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

中轨线周期

M

数值

标准差倍数

返回值

boll、ub、lb

例子

[boll, ub, lb] = boll(close, 20, 2);
// 内部实现
N = 20;
M = 2;
boll = ma(close, N);
ub = boll + sd(close, N) * M;
lb = boll - sd(close, N) * M;

 

kdj 

kdj(随机指标),用于市场中短期趋势分析,在计算过程中主要研究高低价位与收盘价的关系,反映价格走势的强弱和超买超卖现象。

kdj(source, length, mac1, mac2, maType)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

mac1

数值

K线均值周期

mac2

数值

D线均值周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

k、d、j

例子

[k, d, j] = kdj(close, 9, 3, 3, 'smma');

// 内部实现
length = 9;
mac1 = 3;
mac2 = 3;
h = highest(high, length);
l = lowest(low, length);
rsv = 100 * ((close - l) / (h - l));
// maType配置的均值方式作用于 k 和 d 的计算
k=smma(rsv, mac1, 1);
d=smma(k, mac2, 1);
j=3 * k - 2 * d;

 

rsi 

rsi(相对强度指数),根据指数加权移动平均线的向上和向下变化数组来计算相对强度指数。

rsi(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

返回值

返回数值,表示相对强弱指标

例子

rsi14 = rsi(close, 14);

// 内部实现
length=14;
u = smma(max(close-close[1], 0), length);
d = smma(-min(close-close[1], 0), length);
rsi14 = d == 0 ? 100 : (u == 0 ? 0 : 100 * (u / (u + length)));

 

td

td(狄马克序列),用于推算趋势衰竭的时机,识别市场趋势或盘整过程中的潜在转折点

td(source)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

返回值

td

例子

td = td(close);

 

obv 

obv(能量潮指标),将市场的成交量与价格的关系数字化、直观化,以市场的成交量来衡量市场的推动力,从而研判价格的走势。

obv(length, maType)

类型

函数

参数说明

名称

类型

说明

length

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

obv、maobv

例子

[obv, maobv]=obv(10, 'MA');

// 内部实现
change = close - close[1];
obv = cum((change > 0 ? 1 : change < 0 ? -1 : 0 ) * volume);
maobv = ma(obv, 10);[obv, maobv]=obv(10, 'MA');

 

stochrsi

stochrsi(随机相对强弱指数),结合了随机指标和相对强弱指标两种非常流行的技术分析指标。

stochrsi(source, rsilength, stochlength, fast, slow, maType)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

rsilength

数值

rsi的均值周期

stochlength

数值

stoch的均值周期

fast

数值

stochrsi的均值周期

slow

数值

mastochrsi的均值周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

stchrsi、mastochrsi

例子

[stochrsi, mastochrsi] = stochrsi(close, 14, 14, 3, 3, 'MA');

// 内部实现
rsilength=14;
stochlength=14;
rsi14 = rsi(close, rsilength);
stoch = 100 * (rsi14 - lowest(rsi14, stochlength)) / (highest(rsi14, stochlength) - lowest(rsi14, stochlength));
stochrsi = ma(stoch, 3);
mastochrsi = ma(k, 3);

 

cci 

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

cci(source, length, maType)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

顺势指标关于周期回溯K线。

例子

cci = cci(close,20,'MA');

// 内部实现
length=20;
// maType配置的均值方式作用于 matp 的计算
matp = ma(close, length);
md = dev(close, length);
cci=(close-matp) / (0.015 * md);

 

skdj 

skdj(慢速随机指标),skdj指标优化了kdj指标,通过差值平均过滤了短期的波动。

skdj(source, length, mac1, mac2, maType)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

mac1

数值

k均值周期

mac2

数值

d均值周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

k、d

例子 

[k, d] = skdj(close, 9, 3, 3, "MA")

// 内部实现
length = 9;
mac1 = 3;
mac2 = 3;

h = highest(high, length);
l = lowest(low, length);
rsv =100*((close-l)/(h-l));
k = ma(rsv, mac1);
d = ma(k, mac2);

 

bbi 

bbi(多空指数),将不同周期移动平均线加权后的综合指标,一般选用3、6、12、24等4个参数

bbi(source, N1, N2, N3, N4, maType)

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

BBI周期1

N2

数值

BBI周期2

N3

数值

BBI周期3

N4

数值

BBI周期4

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

bbi

例子

bbi = bbi(close, 3, 6, 12, 24, 'MA');

// 内部实现
N1=3;
N2=6;
N3=12;
N4=24;

bbi = (ma(close, N1) + ma(close, N2) + ma(close, N3) + ma(close, N4)) / 4;

 

ao 

动量震荡指标(AO)是用于衡量市场动量的指标。AO计算34个周期和5个周期的简单移动平均线之间的差。

ao(N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期1

N2

数值

周期2

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

ao

例子

ao = ao(5, 34,"MA");

// 内部实现
N1=5;
N2=34;

avg = (high + low) / 2;
ma1 = ma(avg, N1);
ma2 = ma(avg, N2);

ao = ma1 - ma2;

 

dc 

唐奇安通道指标主要用于确定当价格达到上轨或下轨时潜在的突破或超买/超卖状况。

dc(N1)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期

返回值

mid 、up 、lw

例子

[mid, up, lw] = dc(20);

// 内部实现
N1 = 20;
up = highest(high, N1);
lw = lowest(low, N1);
mid = (up + lw) / 2;

 

ene 

Envelop轨道线技术指标由两条移动平均线组成,一条向上偏移而另一条向下偏移。波带边距偏移的最佳相对数字由行情波动率来确定选择: 后者越高,偏移越强烈

ene(source, N1, M1, M2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

周期

M1

数值

上轨周期

M2

数值

下轨周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

mid 、up 、lw

例子

[mid, up, lw] = ene(close, 10, 11, 9, "MA") ;

// 内部实现
N1 = 10 ;
M1 = 11 ;
M2 = 9 ;

ma_close = ma(close, N1) ;
up = (1 + M1 / 100) * ma_close ;
dn = (1 + M2 / 100) * ma_close ;
mid = (up + dn) / 2 ;

 

ichimoku 

一目均衡图

ichimoku(source, A, B, C, D)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

A

数值

转换线周期

B

数值

基准线周期

C

数值

先行带周期

D

数值

移位

返回值

cl 、bl 、ls 、lsa 、lsb

例子

// 线段未进行偏置
[cl, bl, ls, lsa, lsb] = ichimoku(close, 9, 26, 52, 26) ;

// 内部实现
cl = (highest(high, A) + highest(low, A))/2 ;
bl = (highest(high, B) + highest(low, B))/2 ;
ls = close ;
lsa = (cl + bl) / 2 ;
lsb = (highest(high, C) + highest(low, C))/2 ;

 

kc 

肯特纳通道

kc(source, N, M, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

计算周期

M

数值

因数

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

mid 、up、lw

例子

[mid, up, lw] = kc(close, 20, 1, "EMA") ;

// 内部实现
N = 20 ;
M = 1 ;
tr = max(high - low, abs(high - close[1]), abs(close[1] - low)) ;
atr = ema(tr, N) ;
ema_close = ema(close, N) ;
up = ema_close + atr * M ;
mid = ema_close ;
lw = ema_close - atr*M ;

 

atr  

真实波动振幅均值

atr( source, N, M, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

周期

M

数值

前柱数量

maType

数值

均值的方式,支持 MA/EMA/SMMA

返回值

atr

例子

atr = atr(close, 14, 1, "SMMA") ;

// 内部实现
N = 14 ;
M = 1 ;
tr = max(high - low, abs(high - close[M]), abs(close[M] - low)) ;
atr = smma(tr, N) ;

 

bbw 

极限宽指标

bbw(source, N, M)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

计算周期

M

数值

标准差倍数

返回值

bbw

例子

boll_width = bbw(close,20, 2) ;

// 内部实现
N=20 ;
M=2 ;
boll = ma(close, N) ;
sd = sd(close, N) ;
bbw = 2*M*sd/boll ;

 

brar 

情绪指标

brar(N, M)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N

数值

计算周期

M

数值

前柱数量

返回值

br 、ar

例子

[ar, br] = brar(26,1) ;

// 内部实现
N=26 ;
M=1 ;
ar = sum(high - open, N) / sum(open - low, N) * 100 ;
br = sum(max(0, high - close[M]), N) / sum(max(0, close[M] - low), N) * 100 ;

 

dma 

平行线差指标

dma(source, N1, N2, N3, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

短周期

N2

数值

长周期

N3

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

dma 、ama

例子

[dma, ama] = dma(close, 10, 50, 10, "MA") ;

// 内部实现
 N1 = 10 ;
 N2 = 50 ;
 N3 = 10 ;
 dma = ma(close, N1) - ma(close, N2) ;
 ama = ma(dma, N3) ;

 

dmi 

动向指标

dmi(N1, N2, N3, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

短周期

N2

数值

长周期

N3

数值

前柱数量

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

pdi 、mdi 、adx 、adxr

例子

[pdi, mdi, adx, adxr] = dmi(14, 6, 1, "SMMA") ;

// 内部实现
 N1 = 14 ;
 N2 = 6 ;
 N3 = 1 ;
 tr = max(high - low, abs(high - close[N3]), abs(close[N3] - low)) ;
 mtr = smma(tr, N1) ;
 hd = max(high - high[N3], 0) ;
 ld = max(low[N3] - low, 0) ;
 if hd > ld {
    ld := 0 ;
 }else if hd == ld {
    hd := 0 ;
    ld := 0 ;
 }else{
    hd := 0 ;
 }
dmp = smma(hd, N1) ;
dmm = smma(ld, N1) ;
pdi = dmp  / mtr * 100 ;
mdi = dmm  / mtr * 100 ;
adx = smma(abs(mdi - pdi)/ (mdi + pdi) * 100, N2) ;
adxr = smma(adx, N2) ;

 

dpo  

区间震荡线指标

dpo( source, N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

计算周期

N2

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

dpo 、madpo

例子

[dpo, madpo] = dpo(close, 21, 6, "MA") ;

// 内部实现
 N1 = 21 ;
 N2 = 6 ;
 ma_close = ma(close, N1) ;
 dpo = ref(ma_close, N1 / 2 + 1)  // dpo = ma_close[N1 / 2 + 1] ;
 madpo = ma(dpo, N2) ;

 

emv  

简单波动指标

emv(N1, N2, N3, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期1

N2

数值

周期2

N3

数值

前柱数量

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

emv 、maemv

例子

[emv, maemv] = emv(14, 9, 1, "MA") ;

// 内部实现
 N1 = 14 ;
 N2 = 9 ;
 N3 = 1 ;
 vol = ma(volume, N1) / volume ;
 a = ((high + low) - (high[N3] + low[N3]))/ (high + low) * 100 ;
 ma_hl  = ma(high - low, N1) ;
 emv = ma(vol*a*(high - low)/ma_hl, N1) ;
 maemv = ma(emv, N2) ;

 

mfi  

资金流量指标

mfi(N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期1

N2

数值

前柱数量

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

mfi

例子

mfi = mfi(14, 1) ;

// 内部实现
 N1 = 14 ;
 N2 = 1 ;
 tp = (high + close + low) / 3 ;
 hlc3change = tp - tp[N2] ;
/*
 pmf = tp * volume ;
 nmf = tp * volume ;
 if tp <= tp[N2] {
    pmf := 0 ;
}
if tp >= tp[N2]{
    nmf_1 := 0 ;
}
*/
pmf = volume * (hlc3change <= 0 ? 0 : tp) ;
nmf = volume * (hlc3change >= 0 ? 0 : tp) ;
sumpmf = sum(pmf, N1) ;
sumnmf = sum(nmf, N1) ;
mfi = sumpmf / (sumpmf + sumnmf) * 100 ;

 

mtm  

动量指标

mtm( source, N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

计算周期

N2

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

mtm, mamtm

例子

[mtm, mamtm] = mtm(close, 12, 6, "MA")

// 内部实现
 N1 = 12
 N2 = 6
 mtm = close - close[N1]
 mamtm = ma(mtm, N2)

 

psy  

心理线指标

psy( source, N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

计算周期

N2

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

psy、mapsy

例子

[psy, mapsy] = psy(close, 12, 6, "MA")

// 内部实现
 N1 = 12
 N2 = 6
 count = 0
 for (i = 0; i < N1; i++){
    if close[i] > close[i+1] {
        count++
    }
 }
 psy = count / N1 * 100
 mapsy = ma(psy, N2)

 

roc  

变化速率

roc( source, N1, N2, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

计算周期

N2

数值

移动平均周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

roc、maroc

例子

[roc, maroc] = roc(close, 12, 6, "MA")

// 内部实现
 N1 = 12
 N2 = 6
 roc = (close - close[N1]) / close[N1] * 100
 maroc = ma(roc, N2)

 

sar  

停损点指向指标

sar(source1,source2, N1, N2, N3, N4)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source1

序列数据

如close,更多取值见行情数据

source2

序列数据

如close,更多取值见行情数据

N1

数值

极值周期

N2

数值

初始值

N3

数值

步长

N4

数值

最大值

返回值

sar

例子

sar = sar(high, low, 4,2,2,20)

// 内部实现
N1 = 4
N2 = 2
N3 = 2
N4 = 20

highN = highest(high, N1)
lowN = lowest(low, N1)
start = N2 / 100
step = N3 / 100
limit = N4 / 100

var sar = low
var ep = high
var af = start

var up = true

if !na(sar[1]){
    sar := sar[1] + af[1] * (ep[1] - sar[1])

    if up[1]{
    up := true
        if sar > low {
            sar := highN
            af := start
            ep := low
            up := false

        }else{
            if high > ep[1] {
                af := af[1] + step
                ep := high
            }else{
                af := af[1]
                ep := ep[1]
            }
            if af >= limit{
                af := limit
            }
        }
    }else{
    up := false
        if sar < high {
            sar := lowN
            af  := start
            ep := high
            up := true
        }else{
            if low < ep[1] {
                af := af[1] + step
                ep := low
            }else{
                af := af[1]
                ep := ep[1]
            }
            if af >= limit {
                af := limit
            }
        }
    }
}
plot(sar)

 

trix  

三重指数平滑移动平均线

trix( source, N1, N2, N3, maType1, maType2)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N1

数值

周期1

N2

数值

周期2

N3

数值

前柱数量

maType1

字符串

均值的方式,支持 MA/EMA/SMMA

maType2

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

trix、matrix

例子

[trix, matrix] = trix(close, 12, 9, 1, "EMA", "MA")

// 内部实现
N1 = 12
N2 = 9
N3 = 1
tr = ema(ema(ema(close, N1), N1), N1)
trix = (tr - tr[N3]) / tr[N3] * 100
matrix = ma(trix, N2)

 

vr  

成交量比率

vr(N1, N2, N3, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期1

N2

数值

周期2

N3

数值

前柱数量

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

mr、mavr

例子

[vr, mavr] = vr(26, 6, 1, "MA")

// 内部实现
N1 = 26
N2 = 6
N3 = 1
th = sum(close>close[N3] ? volume: 0 , N1)
tl = sum(close < close[N3] ? volume : 0, N1)
tq = sum(close == close[N3] ? volume : 0, N1)
vr = (th*2 + tq) / (tl*2 + tq)*100
mavr = ma(vr, N2)

 

wr  

威廉姆斯指标

wr(N1)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

N1

数值

周期1

返回值

wr

例子

wr = wr(10)

// 内部实现
N1 = 10
wr = (highest(high, N1) - close) / (highest(high, N1) - lowest(low, N1) * -100

 

alligator  

鳄鱼指标

alligator(source1,source2, N1, N2, N3, N4, N5, N6, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source1

序列数据

如close,更多取值见行情数据

source2

序列数据

如close,更多取值见行情数据

N1

数值

jaw周期

N2

数值

teeth周期

N3

数值

lips周期

N4

数值

jaw偏移

N5

数值

teeth偏移

N6

数值

lips偏移

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

jr、tr、lr

例子

[jr, tr, lr] = alligator(high, low, 13, 8, 5, 8, 5, 3,"SMMA")

// 内部实现
N1 = 13
N2 = 8
N3 = 5
N4 = 8
N5 = 5
N6 = 3
mid = (high + low) / 2
jaw = smma(mid, N1)
teeth = smma(mid, N2)
lips = smma(mid, N3)

 

bias  

乖离率

bias( source, N, maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

计算周期

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

bias

例子

 bias = bias(close, 6, "MA")

// 内部实现
 N1 = 6
 ma_close = ma(close, N1)
 bias = (close - ma_close)/ma_close

 

supertrend

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

supertrend(factor, atrPeriod)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

factor

数值

atr的乘数

atrPeriod

数值

atr的计算周期

返回值

supertrend, direction

例子

[supertrend, direction] = supertrend(3,10)

// 内部实现
indicator(precision = 8)
src = hl2
factor = 3
atr = atr(close, 10, 1, "SMMA")
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 = nan
float superTrend = nan
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

plot(direction < 0 ? superTrend : nan, title = 'Up direction')
plot(direction > 0 ? superTrend : nan, title = 'Down direction')

 

alma  

alma(Arnaud Legoux移动平均线),使用高斯分布作为移动平均值的权重

alma(source, length, offest, sigma)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

offest

数值

控制平滑度

sigma

数值

改变alma平滑度

返回值

返回序列数据source的Arnaud Legoux移动平均值

例子

alma_9 = alma(close, 9, 0.85, 6)

 

cmo  

钱德动量摆动指标

cmo(source, length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

周期

返回值

钱德动量摆动指标值

例子

cmo = cmo(close, 5)
// 内部实现
mom = change(close)
sm1 = sum((mom >= 0) ? mom : 0.0, 5)
sm2 = sum((mom >= 0) ? 0.0 : -mom, 5)
cmo = 100 * (sm1 - sm2) / (sm1 + sm2)

 

iii  

盘中强度指数

iii()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = iii()
// 内部实现
a = (2 * close - high - low) / ((high - low) * volume)

 

nvi  

负量指标

nvi()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = nvi()
// 内部实现
nvi = 1.0
prevNvi = (nz(nvi[1], 0.0) == 0.0)  ? 1.0: nvi[1]
if (nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0){
        nvi := prevNvi
}else{
        nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi
}

 

pvi  

正量指标

pvi()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = pvi()
// 内部实现
pvi = 1.0
prevPvi = (nz(pvi[1], 0.0) == 0.0)  ? 1.0: pvi[1]
if (nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0){
        pvi := prevPvi
}else{
        pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi
}

 

pvt  

价格趋势指标

pvi()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = pvt()
// 内部实现
a = cum((change(close) / close[1]) * volume)

 

tr  

真实波动幅度

tr()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = tr()
// 内部实现
tr = max(high - low, abs(high - close[1]), abs(low - close[1]))

 

wad  

威廉多空力度线

wad()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = tr()
// 内部实现
tr = max(high - low, abs(high - close[1]), abs(low - close[1]))

 

wvad  

威廉变异离散量

wvad()
语法版本需要 // @version=2 

类型

函数

参数说明

无参数输入

返回值

序列数据

例子

a = tr()
// 内部实现
tr = max(high - low, abs(high - close[1]), abs(low - close[1]))

 

ad  

累积/分布指数

ad(period)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

period

周期

进行求和的周期,0为对历史求和

返回值

序列数据

例子

a = ad(0)
// 内部实现
ad = ((Close - Low) - (High - Close))/(High - Low) * volume
adl = cum(ad)

 

kcw  

肯特纳通道宽度

kcw( source, N, M,maType)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

N

数值

计算周期

M

数值

因数

maType

字符串

均值的方式,支持 MA/EMA/SMMA

返回值

width

例子

width = kcw(close, 20, 1, "EMA") ;
// 内部实现
N = 20 ;
M = 1 ;
tr = max(high - low, abs(high - close[1]), abs(close[1] - low)) ;
atr = ema(tr, N) ;
ema_close = ema(close, N) ;
up = ema_close + atr * M ;
mid = ema_close ;
lw = ema_close - atr*M ;
width = (up - lw) / mid

 

swma

swma(对称加权移动平均线),返回对称加权移动平均值。

swma(source)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

返回值

返回序列数据source的对称加权移动平均线

例子

swma = swma(close)
// 内部实现
func_swma(x) {
    return x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6
}
func_swma = func_swma(close)

 

hma

Hull Moving Average.船体移动平均线

hma(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

大于0的整数

返回值

返回 '  length' 柱的 'source' 的船体移动平均线

例子

//  最近5根线中close的hma
hma(close, 5)

 

stoch

随机指标

stoch(source, source,1 source2, length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

大于0的整数

返回值

随机指标值

例子

// close,high,low的随机指标值
stoch(close, high, low, 5)

 

trma

三角移动平均线

trma(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

大于0的整数

返回值

返回 'length' 柱的 'source' 的三角移动平均线

例子

//  最近5根线中close的trma
trma(close, 5)

// 内部实现
a = ma(close, ceil(5/ 2))
trma = ma(a, ceil(5/2))

 

adma

考夫曼均值

adma(source,length,P, Q)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

如close,更多取值见行情数据

length

数值

大于0的整数

P

数值

大于0的整数,快线频率

Q

数值

大于0的整数,慢线频率

返回值

返回 'length' 柱的 'source' 的考夫曼均值

例子

//  最近9根线中close的adma
adma(close, 9, 2, 30)

// 内部实现
direction = abs(close - close[9])
volatility = sum(abs(close - close[1]), 9)
er = direction / volatility
fastsc = 2 / (2 + 1)
slowsc = 2 / (30 + 1)
smooth = er * (fastsc - slowsc) + slowsc
constant = smooth * smooth
last = ema(close, 9)[1]
amaclose = last + constant * (close - last)

 

计算函数

highest 

用于计算序列数据在周期内的最高值。

highest(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回最高值的序列数据

例子

// 最近十根k线收盘价的最高值
hhv=highest(close, 10);

 

lowest 

用于计算序列数据在周期内的最低值。

lowest(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回最低值的序列数据

例子

// 最近十根k线收盘价的最低值
llv=lowest(close, 10);

 

max 

用于获取多个值中的最大值

max(source, source1, source2...)

类型

函数

参数说明

名称

类型

说明

source

序列数据/数值

 如close,更多取值见行情数据

返回值

返回最大值的序列数据

例子

// 返回多个数值中的最大值
max0 = max(open, close, high, hl2);
// 支持数值
max1 = max(close - open, 0);

 

min 

用于获取多个值中的最小值 

min(source1, source2, source3...)

类型

函数

参数说明

名称

类型

说明

source

序列数据/数值

 如close,更多取值见行情数据

返回值

返回最小值的序列数据

例子

// 返回多个数值中的最小值
min0 = min(open, close, high, hl2);
// 支持数值
min1 = min(close - open, 0);

 

cum

用于计算序列数据内的数值的总和

cum(source)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

返回序列数据,返回传入参数的序列数据的所有数值的总和

例子

// 计算成交量累计值
volumeCum = cum(volume);

 

sum

用于计算序列数据的周期的总和

sum(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回序列数据,返回周期内的序列数据的总和

例子

// 最近十根k线收盘价的总和值
summation = sum(close, 10);

 

abs

用于计算数据的绝对值

abs(source)

类型

函数

参数说明

名称

类型

说明

source

序列数据/数值

 如close,更多取值见行情数据

返回值

返回序列数据,返回参数的绝对值

例子

// 计算柱子的高度
barHeight = abs(close - open);

 

sd 

用于计算有偏估计标准偏差,即估算标准差

sd(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回序列数据,标准差

例子

// 最近十根k线收盘价的标准差
sta = sd(close, 10);

 

dev 

用于计算指定周期序列数据与当前ma指标函数之间的平均偏差

dev(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回平均偏差的序列数据

例子

// 最近十根k线收盘价与当前ma指标函数之间的平均偏差
dev0 = dev(close, 10);

 

na 

用于判断数值是否为非有效数字

na(source)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

返回布尔序列数据,如果不是有效数字,则为true,否则为false

例子

isna = na(close);

 

nz 

使用序列数据中的指定数(或零)替换掉NaN值

nz(source, source1)
nz(source)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

两个参数时:如果是有效数字,则返回source,否则返回source1

一个参数时:如果是有效数字,则返回source,否则返回0

例子

v = nz(close, open);

 

cross 

判断是否交叉(即上穿或者下穿)

cross(source, source1)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

返回布尔序列数据,交叉则为返回true,否则为false

例子

// 判断收盘价是否会和27000交叉
v = cross(close, 27000);

 

crossup 

判断序列数据是否上穿另一个序列数据

crossup(source, source1)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

返回布尔序列数据,上穿则为返回true,否则为false

例子

// 判断收盘价是否会上穿27000
v = crossup(close, 27000);

 

crossdown 

判断序列数据是否下穿另一个序列数据

crossdown(source, source1)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

返回值

返回布尔序列数据,下穿则为返回true,否则为false

例子

// 判断收盘价是否会下穿27000
v = crossdown(close, 27000);

 

ref 

引用周期前的序列数据,和引用操作符 `[]` 等价,需要注意最多只能引用最近500个数据点

ref(source, length)

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length 

数值

周期

返回值

返回序列数据

例子

// v 等于第前十根的k线收盘价,等价于 v = close[10];
v = ref(close, 10);

 

parse_time 

转换时间字符串为时间戳,秒级

parse_time(source, format, timezone)

类型

函数

参数说明

名称

类型

说明

source

字符串

 需要转换的时间字符串,如'2019-01-01 00:00:00'

format

字符串

 可选参数,默认为'yyyy-MM-dd HH:mm:ss',需要符合该格式,如'yy-MM-dd mm:ss'

timezone

字符串

可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = parse_time('2019-01-01 00:00:00');
tz = "yy-MM-dd HH:mm:ss";
b = parse_time('19-01-01 00:00:00',tz);
c = parse_time('19-01-01 00:00:00',tz,'UTC+0');

 

len 

获取数组长度

len(ary)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

ary

数组

 仅支持数组或字典类型,其它类型返回0

返回值

返回序列数据

例子

int[] a = [1, 2, 3] ;
ary_len = len(a) ;  // 3

 

log 

计算自然对数,任何 'number'  > 0的自然对数是唯一y,使得e^y = 'number'

log(number)
语法版本需要 // @version=2

类型

函数

参数说明

名称

类型

说明

number

正数

 任何大于0的数值

返回值

'number'的自然对数

例子

log(10)    //  2.3

 

log10

'number' 的常用(或以10为底)对数是必须乘以10才能获得 'number' 的幂。10^y = 'number'

log10(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

正数

 任何大于0的数值

返回值

'number' 的以10为底的对数。

例子

log10(10)    //  1

 

sqrt 

任何 'number' >= 0的平方根是唯一 y >= 0,使得 y^2 = 'number'

sqrt(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

正数

 任何大于0的数值

返回值

'number'的平方根

例子

sqrt(4) // 2

 

round 

四舍五入到最接近的整数

round(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

'number'的值四舍五入到最接近的整数

例子

round(3.6) // 4
round(3.2) // 3

 

sin

正弦函数返回一个角度的三角正弦

sin(angle)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

angle

自然数

 弧度制的数

返回值

角的三角正弦

例子

sin(3.1415) // 0
sin(3.1415/2) // 1

 

cos

余弦函数返回一个角度的三角余弦

cos(angle)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

angle

自然数

 弧度制的数

返回值

角的三角余弦

例子

cos(3.1415) // -1
cos(3.1415/2) // 0

 

tan

正切函数返回一个角度的三角正切

tan(angle)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

angle

自然数

 弧度制的数

返回值

角的三角正切

例子

tan(3.1415) // 0

 

asin

反正弦函数返回一个数字的三角反正弦

asin(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 需要在-1到1的范围内,否则返回nan

返回值

角的三角反正弦

例子

sin(asin(y)) // y

 

acos

反余弦函数返回一个数字的三角反余弦

acos(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 需要在-1到1的范围内,否则返回nan

返回值

角的三角反余弦

例子

cos(acos(y)) // y

 

atan

反正切函数返回一个数字的三角反正切

atan(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何数值

返回值

角的三角反正切

例子

tan(atan(y)) // y

 

ceil

向上取整到最接近的整数

ceil(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

'number'的值向上取整到最接近的整数

例子

ceil(3.6) // 4
ceil(3.2) // 4

 

floor

向下取整到最接近的整数

floor(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

'number'的值向下取整到最接近的整数

例子

floor(3.6) // 3
floor(3.2) // 3

 

exp

计算e的number次方

exp(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

e的'number'次方

例子

exp(2) // 7.3891....

 

sign

返回number的符号,大于0为1,等于0为0,小于0为-1

sign(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

number的标志

例子

sign(123)  // 1
sign(0) // 0
sign(-12.23) // -1

 

todegress

将弧度制的角度转换成度为单位的角度

todegress(radians)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

radians

数值

 以弧度为单位的角度

返回值

以度为单位的角度

例子

todegress(3.14159) // ~180

 

toradians

将弧度制的角度转换成度为单位的角度

toradians(radians)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

radians

数值

 以度为单位的角度

返回值

以弧度为单位的角度

例子

toradians(180) // ~3.1415

 

pow

幂计算

pow(base, exponent)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

base

数值

 可进行运算的数值

exponent

数值

 指数

返回值

base的exponent次方值

例子

pow(2, 3)  // 8

 

avg

用于获取多个值的平均值

avg(source, source1, source2...)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

数值/序列数据

 如close,更多取值见行情数据

返回值

返回平均值的数据

例子

// 返回多个数值中的最大值
avg0 = avg(open, close, high, hl2);
// 支持数值
avg1 = avg(close - open, 0);

 

inrange

某值是否在范围内

inrange(dst, min, max)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

dst

数值/序列数据

 如close,更多取值见行情数据

min

数值/序列数据

 如close,更多取值见行情数据

max

数值/序列数据

 如close,更多取值见行情数据

返回值

返回输入数值是否在范围内

例子

inrange(1, 0, 5) // true
inrange(close, low, high) // true

 

random

生成限定范围内的随机数值

random(min, max, seed)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

min

数值/序列数据

 如close,更多取值见行情数据

max

数值/序列数据

 如close,更多取值见行情数据

seed

整数

 在固定的范围内,使用相同的seed会生成重复的值

返回值

返回随机数值

例子

random(1, 4, 2) // 1.5019
random(1, 4) // 随机数

 

reverse

取相反数

reverse(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

'number'的值取相反值

例子

reverse(3.6) // -3.6
reverse(-3) // 3

 

frac

取number的小数部分

frac(number)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

number

自然数

 任何自然数

返回值

'number'的小数部分

例子

frac(3.6) // 0.6
frac(3.2) // 0.2

 

change

比较当前 `source` 值与它的值 `length` K线之前的值并返回差值

change(source, length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

数值/序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数,可选,默认为1

返回值

数值为数值时的值之间的差异,当使用bool是返回0或1,与之前的不同返回1

例子

change(close) // 与前一根k线close比较,得到差值
change(close, 3) // 与三根k线前的close比较,得到差值

 

correlation

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

correlation(source, source1,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

相关系数

例子

// high与close在周期10内的相关系数
correlation(high, close, 10)

 

cog

重心点。基于统计学和斐波那契黄金比例的指标

cog(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

重心值

例子

// close周期为5的重心值
cog(close, 5)

 

falling

在length周期内是否下跌

falling(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

如果下跌返回true

例子

// close在最近5个周期是否下跌
falling(close, 5)

 

highestbars

最高值的k线偏移量

highestbars(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

偏移到最高k线

例子

//  最近5根线中close最大值对应的k线偏移量
highestbars(close, 5)

 

linreg

线性回归值,linreg = intercept + slope * (length - 1 - offset),其中 intercept 和 slope 是使用 `source` 系列的最小二乘法计算的值

linreg(source,length,offest)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

offest

数值

 整数

返回值

线性回归值

例子

//  预测最接近线性的当前k线的值
linreg(close, 5, 0)

 

lowestbars

最低值的k线偏移量

lowestbars(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

偏移到最低k线

例子

//  最近5根线中close最小值对应的k线偏移量
lowestbars(close, 5)

 

median

中位数

median(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

序列的中位数

例子

//  最近5根线中close的中位数
median(close, 5)

 

mode

众数

mode(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

最常出现的值。如果不存在,则返回最小值

例子

//  最近5根线中close出现频率最高的数
mode(close, 5)

 

percentile_linear_interpolatio

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

percentile_linear_interpolation(source, length, percentage)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

percentage

数值

 0至100内的数

返回值

`source`K线返回的`length`系列的第P个百分位数。

例子

//  最近5根线中close的50百分数
percentile_linear_interpolation(close, 5, 50)

 

percentile_nearest_ran

使用最近的排名计算百分比

percentile_nearest_rank(source, length, percentage)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

percentage

数值

 0至100内的数

返回值

`source`K线返回的`length`系列的第P个百分位数。

例子

//  最近5根线中close的50百分数
percentile_nearest_rank(close, 5, 50)

 

percentrank

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

percentrank(source, length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

`source`K线返回的`length`百分比排名

例子

//  最近5根线中close的排名
percentrank(close, 5)

 

pivothigh

枢轴高点的值                                         

pivothigh(source,  leftbars, rightbars)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

leftbars

数值

 大于0的整数

rightbars

数值

 大于0的整数

返回值

高点的价格或nan

例子

//  比左两根k线和右两根k线高的close
pivothigh(close, 2, 2)

 

pivotlow

枢轴低点的值                                         

pivotlow(source,  leftbars, rightbars)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

leftbars

数值

 大于0的整数

rightbars

数值

 大于0的整数

返回值

低点的价格或nan

例子

//  比左两根k线和右两根k线低的close
pivotlow(close, 2, 2)

 

tarange

序列中最小值与最大值的差                                         

tarange(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

序列中最小值与最大值的差

例子

//  最近5根线中close的差值
tarange(close, 5)

 

rising

在length周期内是否上升                                         

rising(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

如果上升返回true

例子

// close在最近5个周期是否上升
rising(close, 5)

  

valuewhen

返回K线上`source`系列的值,其中`condition`在最近第n次出现时为true                                         

valuewhen(condition, source, occurrence)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

condition

序列数据

 判断条件

source

序列数据

 如close,更多取值见行情数据

occurrence

数值

 大于0的整数

返回值

source在条件成立时的值

例子

slow = ma(close, 7)
fast = ma(close, 14)
a1 = cross(slow, fast)
a2 = valuewhen(a1, close, 1)

 

variance

方差                                         

variance(source,length,bias)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

bias

布尔值

 true时为有偏估计;false为无偏估计;可选,默认为true

返回值

方差

例子

// close周期为5的方差
variance(close, 5)
// close周期为5的无偏估计方差
variance(close, 5, false)

 

count

在一定周期内满足条件的K线周期数                                         

count(cond,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

length

数值

 大于0的整数

返回值

周期数

例子

// 在20个周期内close大于open的数量
count(close>open, 20)

 

barslast

上次满足条件后K线周期数,若当前k线满足则为0                                         

barslast(cond)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

返回值

周期数

例子

// 上次close大于open到现在的k线数量
barslast(close>open)
// 内部实现
bars_last(x) {
    count = nan
    for i = 0; i <= 100;i++ {
        if x[i] {
            count := i
            break
        }
    }
    return count
}

 

barslastcount

连续满足条件的K线周期数,若当前k线不满足则为0                                         

barslastcount(cond)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

返回值

周期数

例子

// 统计连续收阳的周期数
barslastcount(close>open)
// 内部实现
bars_last_count(x) {
    count = nan
    for i = 0; i <= 100;i++ {
        if !x[i] {
            count := i
            break
        }
    }
    return count
}

 

harmean

调和平均数                                         

harmean(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

调和平均值

例子

// close周期为5的调和平均值
harmean(close, 5)

 

hbars

高于当前值的第N个到现在的k线周期数,只计算最近500个周期,若不存在为0                                         

hbars(source, N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

周期数

例子

// 上一次高于当前close的周期数
hbars(close, 1)

 

lbars

低于当前值的第N个到现在的k线周期数,只计算最近500个周期,若不存在为0                                         

lbars(source, N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

周期数

例子

// 上一次低于当前close的周期数
lbars(close, 1)

 

hbars1

高于输入值的第N个到现在的k线周期数,只计算最近500个周期,若不存在为0                                         

hbars1(input, source, N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

input

数据

 比较的基准值

source

序列数据

 如close,更多取值见行情数据

N

数值

 大于0的整数

返回值

周期数

例子

// 上一次close高于当前ma5的周期数
ma5 = ma(close, 5)
hbars1(ma5, close, 1)

 

lbars1

低于输入值的第N个到现在的k线周期数,只计算最近500个周期,若不存在为0

lbars1(input, source, N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

input

数据

 比较的基准值

source

序列数据

 如close,更多取值见行情数据

N

数值

 大于0的整数

返回值

周期数

例子

// 上一次close低于当前ma5的周期数
ma5 = ma(close, 5)
lbars1(ma5, close, 1)

 

condbars

满足两个条件中间的k线周期数,只计算最近500个周期,若不存在为0

condbars(cond, cond1)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

返回值

周期数

例子

// ma3上穿ma5与ma3下穿ma5之间的周期数
ma3 = ma(close, 3)
ma5 = ma(close, 5)
up = crossup(ma3, ma5)
dn = crossdown(ma3, ma5)
k = condbars(up, dn)

 

avedev

平均绝对偏差

avedev(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

偏差值

例子

// close在5个周期内的平均绝对偏差
avedev(close, 5)
// 内部实现
_avedev(x, y) {
    sum = 0
    ret = 0
    for i = 0; i <= y-1;i++ {
        sum += x[i] / y
    }
    for i = 0; i <= y-1;i++ {
        ret += abs(x[i] - sum)
    }
    return ret / y
}

 

devsq

偏差平方和

devsq(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

偏差值

例子

// close在5个周期内的偏差平方和
devsq(close, 5)
// 内部实现
_devsq(x, y) {
    sum = 0
    ret = 0
    for i = 0; i <= y-1;i++ {
        sum += x[i] / y
    }
    for i = 0; i <= y-1;i++ {
        ret += pow(x[i] - sum, 2)
    }
    return ret
}

 

kurtosis

峰度系数

kurtosis(source,length)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

length

数值

 大于0的整数

返回值

峰度值

例子

// close在5个周期内的峰度系数
kurtosis(close, 5)
// 内部实现
n = 5
avg = ma(close, 5)
k2 = variance(close, 5, false)
sum = 0
for i = 0; i <= n-1;i++ {
    sum += pow(close[i] - avg, 4)
}
ret = (n+1)*n / ((n-1)*(n-2)*(n-3))*sum / pow(k2, 2) - 3*pow(n-1, 2)/(n-2)/(n-3)

 

normpdf

正态分布概率密度

normpdf(source,mu, sigma)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

mu

数值

 位置参数

sigma

数值

 尺度参数

返回值

密度分布

例子

// 参数为MU和SIGMA的正态分布密度函数在source处的值
normpdf(close, 0, 1)

 

nompow

自然数幂方和

numpow(source,N, M)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

N

数值

 大于0的整数

M

数值

 任意数值

返回值

幂方和

例子

// close在5个周期内的幂方和
numpow(close, 5, 2)

 

covariance

协方差

covariance(source,source2, N, bias)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

N

数值

 大于0的整数

bias

布尔值

 true时为有偏估计;false为无偏估计;可选,默认为true

返回值

协方差

例子

// close和open在5个周期内的协方差
covariance(close, open, 5, false)

 

slope

线性回归的斜率

slope(source,N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

source

序列数据

 如close,更多取值见行情数据

N

数值

 大于0的整数

返回值

斜率

例子

// close在5个周期线性拟合的斜率
slope(close, 5)

 

every

是否一直满足条件

every(cond,N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

N

数值

 周期,大于0的整数

返回值

布尔值

例子

// 在5个周期内一直是阳线
every(close>open, 5)

 

exist

是否存在满足条件的周期

exist(cond,N)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

cond

布尔数据

 如close>open,需要是布尔系列值

N

数值

 周期,大于0的整数

返回值

布尔值

例子

// 在5个周期内存在阳线
exist(close>open, 5)

 

second

获取UNIX时间的秒

second(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = second(1698768000)
b = second(time, "UTC+2")

 

minute

获取UNIX时间的分

minute(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = minute(1698768000)
b = minute(time, "UTC+2")

 

hour

获取UNIX时间的小时

hour(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = hour(1698768000)
b = hour(time, "UTC+2")

 

dayofmonth

获取UNIX时间的每月日期

dayofmonth(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = dayofmonth(1698768000)
b = dayofmonth(time, "UTC+2")

 

dayofweek

获取UNIX时间的每周日期

dayofweek(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = dayofweek(1698768000)
b = dayofweek(time, "UTC+2")

 

month

获取UNIX时间的月份

month(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = month(1698768000)
b = month(time, "UTC+2")

 

year

获取UNIX时间的年份

year(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = year(1698768000)
b = year(time, "UTC+2")

 

weekofyear

获取UNIX时间的周数

weekofyear(time, timezone)
语法版本需要 // @version=2 

类型

函数

参数说明

名称

类型

说明

time

以秒为单位的时间

 可使用time或timeclose进行赋值,也可使用如1698768000的秒级时间

timezone

字符串

 可选参数,默认为'UTC+8',填写格式为'UTC+n'或'UTC-n'

返回值

返回序列数据

例子

a = weekofyear(1698768000)
b = weekofyear(time, "UTC+2")

 

画图函数

plot

将系列数据绘制在K线图表上(线图)

plot(series, title, color, linewidth, lineDash, display)

类型

绘图函数

参数说明

名称

类型

默认值

说明

series

序列数据

(必要参数)

要绘制的数据系列

title

字符串

(必要参数)

绘图标题

color

字符串

rgba(255,255,255,1)

绘图的颜色,支持rgba,十六进制,以及常用颜色

rgb取值0-255,不透明度a取值0-1(1为完全不透明)

linewidth

数值

1

绘制线的宽度

lineDash

数值数组

[0]

虚线; [1,2] 1是虚线长度,2紧跟着的间隔

display

布尔值

true

是否展示

返回值

返回绘图

例子

plot(dif, title='DIF', color='rgba(47,210,178,1)', lineWidth=1, lineDash=[0], display=true);
plot(dif, title='DIF');

 

plotColumn

将系列数据绘制在K线图表上(柱状图)

plotColumn(series, title, color, fill, display)

类型

绘图函数

参数说明

名称

类型

默认值

说明

series

序列数据

(必要参数)

要绘制的数据系列

title

字符串

(必要参数)

绘图标题

color

字符串

rgba(255,255,255,1)

绘图的颜色,支持rgba,十六进制,以及常用颜色

rgb取值0-255,不透明度a取值0-1(1为完全不透明)

fill

布尔值

true

颜色是否填充整个柱子

display

布尔值

true

是否展示

返回值

返回绘图

例子

plotColumn(ma3, title='柱状图', color='blue', fill=true, display=true);
plotColumn(dif, title='DIF');

 

plotText 

将文字绘制在K线图表上

plotText(cond, title,text,refSeries,bgColor,color,fontSize,placement,display)
语法版本需要 // @version=2 
PC端需要 2.7.4 及以上

类型

绘图函数

参数说明

名称

类型

默认值

说明

cond

序列数据

(必要参数)

是否进行文字绘制的bool系列

title

字符串

(必要参数)

绘图标题

text

字符串

(必要参数)

绘图文字

refSeries

序列数据

(必要参数)

绘制引用的序列数据

bgColor

字符串

rgba(255,255,255,1)

文字背景的颜色,支持rgba,十六进制,以及常用颜色rgb取值0-255,不透明度a取值0-1(1为完全不透明)

color

字符串

rgba(255,255,255,1)

文字背景的颜色,支持rgba,十六进制,以及常用颜色rgb取值0-255,不透明度a取值0-1(1为完全不透明)

fontSize

数值

14

文字大小

placement

字符串

'top'

文字位置,支持类型:top(绘制在k线上方), bottom(绘制在k线下方)

display

布尔值

true

是否展示

返回值

返回绘图

例子

plotText(close < open, title = 'plotText',text = 'UP',refSeries = close,bgColor='blue',color='red',fontSize=14,placement='bottom',display=true);

 

plotShape 

将图形绘制在K线图表上

plotShape(cond, title,refSeries,shape,color,fill,placement,display)
语法版本需要 // @version=2 
PC端版本需要 2.7.4 及以上

 

类型

绘图函数

参数说明

名称

类型

默认值

说明

cond

序列数据

(必要参数)

是否进行图形绘制的bool系列

title

字符串

(必要参数)

绘图标题

refSeries

序列数据

(必要参数)

绘制引用的序列数据

shape

字符串

(必要参数)

绘制的图形,可选 circle,triangleUp,triangleDown,arrowUp,arrowDown

color

字符串

rgba(255,255,255,1)

图形背景的颜色,支持rgba,十六进制,以及常用颜色rgb取值0-255,不透明度a取值0-1(1为完全不透明)

fill

布尔值

true

是否填充

placement

字符串

'top'

图形位置,支持类型:top(绘制在k线上方), bottom(绘制在k线下方)

display

布尔值

true

是否展示

返回值

返回绘图

例子

plotShape(close < open, title = 'plotShape',refSeries = close,shape = 'circle',color='blue',fill = true,placement='bottom',display=true);

 

fill 

使用提供的颜色填充两个绘图之间的背景

fill(series1, series2, color, display)

类型

绘图函数

参数说明

名称

类型

默认值

说明

series1

序列数据

(必要参数)

第一个数据序列

series2

序列数据

(必要参数)

第二个数据序列

color

字符串

rgba(255,255,255,1)

绘图的颜色,支持rgba,十六进制,以及常用颜色

display

布尔值

true

是否展示

返回值

返回绘图

例子

fill(ma3, ma7, 'red');

 

预警函数

alertcondition

创建预警条件,在创建预警对话框中可用。 请注意,alertcondition不会创建预警,它只会在创建预警对话框中为您提供预警条件选项。 此外,alertcondition效果在图表上是看不见的。

alertcondition(source, title, direction)

类型

函数

参数说明

名称

类型

默认值

说明

source

布尔值

(必要参数)

布尔类型的序列数据

title

字符串

(必要参数)

警报条件的标题

direction

字符串

(非必要参数)

警报条件的方向,取值为buy或sell,buy为看涨,sell为看跌(PC 2.7.4 及以上版本才有效)

例子

[dif, dea, macd] = macd(close, 12, 26, 9, 'EMA', 'EMA');
cross_down_zero = crossdown(dea, 0);
alertcondition(cross_down_zero, title='MACD(12,26,9)下穿零轴',direction = 'sell');

 

条件表达式

?:

三元运算 (如果...那么...否则...),适用于判断选择

condition ? expr1 : expr2

例子

// 如果是阳柱,赋值 1 否则赋值 -1
a = close > open ? 1 :  -1 ;

 

iff

三元运算 (如果...那么...否则...),适用于判断选择

iff(condition ,expr1 ,expr2)
语法版本需要 // @version=2 

例子

// 如果是阳柱,赋值 1 否则赋值 -1
a = iff(close > open, 1 , -1)

 

if else

判断分支,(如果...否则...),适用于判断选择

if(condition){
       expr1 ;
}
else{
       expr2 ;
}

例子

// 如果是阳柱,赋值 1 否则赋值 -1
if(close > open) {
       a=1;
}else{
       a=-1;

 

for 

循环结构,限制循环数量为500次,若单次循环超过500则报错

● init: 一般为赋值表达式,给控制变量赋初值;
● condition: 关系表达式或逻辑表达式,循环控制条件;
● post: 一般为赋值表达式,给控制变量增量或减量。

for (init; condition; post) { 
  statement;
}
for (condition){
  statement;
}
语法版本需要 // @version=2 

例子

b = nan;
for(i=0;i<10;i++){
    b := i;
}

 

range

用于遍历数组或dict类结构

for key, value = range dict

例子

a = {"key1":10,'key2':20}
any b, c
for key,value = range a {
    b := key
    c := value
}

 

引用运算符

[ ] 

历史数据引用,适用于序列数据,需要注意最多只能引用最近500个数据点

series[1]

例子

// 假设当前是2020年3月12日,以下是附近的日线k线数据
// 2020年3月12日, close: 40
// 2020年3月11日, close: 30
// 2020年3月10日, close: 20
// 2020年3月9日, close: 10
close // 取值40
close[1] // 取值30
close[2] // 取值20
close[3] // 取值10

 

{ }

引用数组中的数据,下标从0开始,数组最大长度为1000

ary{0}
语法版本需要 // @version=2 

例子

ary = [1,2,3] ;
a = ary{0} ; // 1
a := ary{1} ; // 2

 

算术运算符

+

加法,适用于数值表达式

expr1 + expr2

例子

hlc = (high+open+close) / 3;

 

-

减法或负号,适用于数值表达式

expr1 - expr2
- expr

例子

h = close - open;

 

*

乘法,适用于数值表达式

expr1 * expr2

例子

// 将收盘价放大三倍
v = close * 3;

 

/

除法,适用于数值表达式

expr1 / expr2

例子

hlc = (high+open+close) / 3;

 

%

余数,适用于数值表达式

expr1 % expr2

例子

// v 的值是1
v = 10 % 3;

 

^

次方运算,适用于数值表达式,如2次方、3次方

expr1 ^ expr2

例子

// v 的值是8
v = 2^3;

 

++ 

自增运算;适用于数值表达式,每次执行语句后加1

expr++

例子

b = 2;
b++;
c = b; // c的值等于3 

 

-- 

自减运算;适用于数值表达式,每次执行语句后减1

expr--

例子

b = 2;
b--; 
c = b; // c的值等于1 

 

关系运算符

<

小于号,判断左侧数值是否小于右侧数值

expr1 < expr2

例子

// 阴柱
c = close < open;

 

>

大于号,判断左侧数值是否大于右侧数值

expr1 > expr2

例子

// 阳柱
c = close > open;

 

==

全等于,判断左侧数值是否等于右侧数值

expr1 == expr2

例子

// k线无实体
c = close == open;

 

!=

不等于,判断左侧数值是否不等于右侧数值

expr1 != expr2

例子

// k线有实体
c = close != open;

 

>=

大于等于,判断左侧数值是否大于或等于右侧数值

expr1 >= expr2

例子

// 阳柱或k线无实体
c = close >= open;

 

<=

小于等于,判断左侧数值是否小于或等于右侧数值

expr1 <= expr2

例子

// 阴柱或k线无实体
c = close <= open;

 

逻辑运算符

&&

逻辑“与”判断;当‘&&’左右均为true时,则返回结果则为true。否则为flase

expr1 && expr2

例子

// K线两连阳
condition=close > open  &&  close[1] > open[1];

 

and 

与'&&'的用法一致

expr1 and expr2

例子

// K线两连阳
condition=close > open  and  close[1] > open[1];

 

||

逻辑“或”判断;当‘||’左右至少有一个为true时,则返回结果为true,否则为flase

expr1 || expr2

例子

// 最近两根k线最少有一根阳线
condition=close > open  ||  close[1] > open[1];

 

or 

与'||'的用法一致

expr1 or expr2

例子

// 最近两根k线最少有一根阳线
condition=close > open  or  close[1] > open[1];

 

逻辑“非”判断;若数值为true,运算后则为false;若数值为false,运算后则为 true

 ! expr

例子

// 当前k线不是阳线(阴线或者是横线),等价于 condition=close <= open
condition = !(close > open);

 

not

和 ! 等价

not expr1

例子

// 当前k线不是阳线(阴线或者是横线),等价于 condition=close <= open
condition=not (close > open);

 

赋值运算符

=

适用于数值表达式,将等号右侧的数值赋值给左侧

例子

// 计算收盘价与开盘价的差价,将差价值保存到change中
change = close - open;  

 

:=

适用于数值表达式,对变量重新赋值

例子

change = nan ;
// 计算收盘价与开盘价的差价,将差价值保存到change中
change := close - open ;  

 

+= 

适用于数值表达式,将两个变量的值相加后,将得到的值保存在变量中

例子

// 等价于 a=a+b
a += b;

 

-= 

适用于数值表达式,将两个变量的值相减后,将得到的值保存在变量中

例子

// 等价于 a=a-b
a -= b;

 

*= 

适用于数值表达式,将两个变量的值相乘后,将得到的值保存在变量中

例子

// 等价于 a=a*b
a *= b;

 

/= 

适用于数值表达式,将两个变量的值相除后,将得到的值保存在变量中

例子

// 等价于 a=a/b
a /= b;

 

%= 

适用于数值表达式,将两个变量的值求余数后,将得到的值保存在变量中

例子

// 等价于 a=a%b
a %= b;

 

^= 

适用于数值表达式,将两个变量的值进行次方运算后,将得到的值保存到变量中

例子

// 等价于 a=a^b
a ^= b;

 

其他符号

'

单引号,用来表示字符串

'string'

例子

a = ‘警报提示内容’;

 

''

双引号,同单引号一样可用来表示字符串

“string”

例子

a = “警报提示内容”;

 

//

注释,双斜杠右侧的内容不会被编译,用于代码说明

//

例子

 // ohlc4是 (开盘价 + 最高价 + 最低价 + 收盘价) / 4 的快捷运算
a = ohlc4;

 

/* */

注释,符号中间的内容不会被编译,用于代码说明

/* */

例子

 /*
ohlc4是 (开盘价 + 最高价 + 最低价 + 收盘价) / 4 的快捷运算
*/
a = ohlc4;

 

数据类型

nan

表示“不可用”的关键字,表示变量没有赋值

语法版本需要 // @version=2 

例子

int a = nan ;
b = na(a) ; // true

 

var

var是用于分配和一次性初始化变量的关键字

语法版本需要 // @version=2 

例子

var int a = 4;
var b = nan;
var c;    // c 无值,无法进行计算

 

varip

varip是用于分配和一次性初始化变量的关键字,使用varip声明的变量和字段在同一根K线上的脚本执行之间保留其值,在实时k线上会进行更新

语法版本需要 // @version=2 

例子

varip int a = 4;
varip b = nan; // any 类型
varip c;    // c 无值,无法进行计算

 

int

整数类型

(重载) 将number转为整数

语法版本需要 // @version=2 

例子

int a = 4;
a = 4;    // 判断为int类型

例子(重载)

int(3.6) // 3
int(-3.2) // -3

 

float

浮点数类型

(重载) 将number转为浮点数

语法版本需要 // @version=2 

例子

float a = 4.0;
a = 4.0;     // 判断为float类型

例子(重载)

float(3.6) // 3.6
float(-3.2) // -3.2

 

string

字符串类型

语法版本需要 // @version=2 

例子

string a = '4';

 

bool

布尔类型,布尔值有true和false

(重载) 将number转为布尔值,大于0为true

语法版本需要 // @version=2 

例子

bool a = true;
a = true;
bool b = false;
b = false;

例子(重载)

bool(3.6) // true
bool(-3.2) // false

 

any

可变更任意类型

语法版本需要 // @version=2 

例子

any a = 4;
any b = 4.0;
any c = '4';
any d = true;

 

dict

字典类型

语法版本需要 // @version=2 

例子

dict a = {"a":1, 'b':2};

 

type[]

数组类型

语法版本需要 // @version=2 

例子

int[] a = [1, 2, 3];
float[] b = [1.0, 2.0, 3.0];
c = [1, 2.0, 3, '4'];

dict a = {"a":1,"b":2};
dict b = {"a":1,"b":2};
dict[] c = [a,b];

 

class

自定义结构体

语法版本需要 // @version=2 

例子

class LinkedNode{
  any value;
  LinkedNode next;
  LinkedNode(any v){
    // 定义LinkedNode内部变量,若使用value = v 则在函数内部重新定义了一个新的变量
    value := v ;
    next := nil ;
  }
  GetValue(){
    return value ;
  }
}
LinkedNode[] a = [LinkedNode(1),LinkedNode(2),LinkedNode(3)] ; 
for i=0;i println(a{i}.GetValue()) ; 
}
// 若不定义类型,则无法使用GetValue()方法
b = [LinkedNode(1),LinkedNode(2),LinkedNode(3)] ; 
for i=0;i println(b{i}.GetValue()) ; // 报错
}
 

函数定义

func

自定义函数结构

例子

ma10 = ma(close,10)
func_ma(x,y) {
    sum = 0.0 ;
    for (i = 0; i < y; i++){
        sum := sum + x[i]/y ;
    }
    return sum ;
}
func_ma10 = func_ma(close, 10) ;

 

 

 

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

HTX:注册并领取8400元新人礼
广告
分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接