输入/搜索内容
内置函数
Global
Version
Sleep
IsVirtual
Mail
Mail_Go
SetErrorFilter
GetPid
GetLastError
GetCommand
GetMeta
Dial
HttpQuery
HttpQuery_Go
Encode
UnixNano
Unix
GetOS
MD5
DBExec
UUID
EventLoop
__Serve
_G
_D
_N
_C
_Cross
JSON.parse
JSON.stringify
SetChannelData
GetChannelData
Log
Market
Trade
Account
Futures
NetSettings
Threads
threading
Thread
getThread
mainThread
currentThread
Lock
Condition
Event
Dict
pending
Thread
ThreadLock
ThreadEvent
ThreadCondition
ThreadDict
Web3
TA
Talib
talib.CDL2CROWS
talib.CDL3BLACKCROWS
talib.CDL3INSIDE
talib.CDL3LINESTRIKE
talib.CDL3OUTSIDE
talib.CDL3STARSINSOUTH
talib.CDL3WHITESOLDIERS
talib.CDLABANDONEDBABY
talib.CDLADVANCEBLOCK
talib.CDLBELTHOLD
talib.CDLBREAKAWAY
talib.CDLCLOSINGMARUBOZU
talib.CDLCONCEALBABYSWALL
talib.CDLCOUNTERATTACK
talib.CDLDARKCLOUDCOVER
talib.CDLDOJI
talib.CDLDOJISTAR
talib.CDLDRAGONFLYDOJI
talib.CDLENGULFING
talib.CDLEVENINGDOJISTAR
talib.CDLEVENINGSTAR
talib.CDLGAPSIDESIDEWHITE
talib.CDLGRAVESTONEDOJI
talib.CDLHAMMER
talib.CDLHANGINGMAN
talib.CDLHARAMI
talib.CDLHARAMICROSS
talib.CDLHIGHWAVE
talib.CDLHIKKAKE
talib.CDLHIKKAKEMOD
talib.CDLHOMINGPIGEON
talib.CDLIDENTICAL3CROWS
talib.CDLINNECK
talib.CDLINVERTEDHAMMER
talib.CDLKICKING
talib.CDLKICKINGBYLENGTH
talib.CDLLADDERBOTTOM
talib.CDLLONGLEGGEDDOJI
talib.CDLLONGLINE
talib.CDLMARUBOZU
talib.CDLMATCHINGLOW
talib.CDLMATHOLD
talib.CDLMORNINGDOJISTAR
talib.CDLMORNINGSTAR
talib.CDLONNECK
talib.CDLPIERCING
talib.CDLRICKSHAWMAN
talib.CDLRISEFALL3METHODS
talib.CDLSEPARATINGLINES
talib.CDLSHOOTINGSTAR
talib.CDLSHORTLINE
talib.CDLSPINNINGTOP
talib.CDLSTALLEDPATTERN
talib.CDLSTICKSANDWICH
talib.CDLTAKURI
talib.CDLTASUKIGAP
talib.CDLTHRUSTING
talib.CDLTRISTAR
talib.CDLUNIQUE3RIVER
talib.CDLUPSIDEGAP2CROWS
talib.CDLXSIDEGAP3METHODS
talib.AD
talib.ADOSC
talib.OBV
talib.ACOS
talib.ASIN
talib.ATAN
talib.CEIL
talib.COS
talib.COSH
talib.EXP
talib.FLOOR
talib.LN
talib.LOG10
talib.SIN
talib.SINH
talib.SQRT
talib.TAN
talib.TANH
talib.MAX
talib.MAXINDEX
talib.MIN
talib.MININDEX
talib.MINMAX
talib.MINMAXINDEX
talib.SUM
talib.HT_DCPERIOD
talib.HT_DCPHASE
talib.HT_PHASOR
talib.HT_SINE
talib.HT_TRENDMODE
talib.ATR
talib.NATR
talib.TRANGE
talib.BBANDS
talib.DEMA
talib.EMA
talib.HT_TRENDLINE
talib.KAMA
talib.MA
talib.MAMA
talib.MIDPOINT
talib.MIDPRICE
talib.SAR
talib.SAREXT
talib.SMA
talib.T3
talib.TEMA
talib.TRIMA
talib.WMA
talib.LINEARREG
talib.LINEARREG_ANGLE
talib.LINEARREG_INTERCEPT
talib.LINEARREG_SLOPE
talib.STDDEV
talib.TSF
talib.VAR
talib.ADX
talib.ADXR
talib.APO
talib.AROON
talib.AROONOSC
talib.BOP
talib.CCI
talib.CMO
talib.DX
talib.MACD
talib.MACDEXT
talib.MACDFIX
talib.MFI
talib.MINUS_DI
talib.MINUS_DM
talib.MOM
talib.PLUS_DI
talib.PLUS_DM
talib.PPO
talib.ROC
talib.ROCP
talib.ROCR
talib.ROCR100
talib.RSI
talib.STOCH
talib.STOCHF
talib.STOCHRSI
talib.TRIX
talib.ULTOSC
talib.WILLR
talib.AVGPRICE
talib.MEDPRICE
talib.TYPPRICE
talib.WCLPRICE
OS
结构体
内置变量

TA.MACD()函数用于计算指数平滑异同移动平均线(MACD)指标

TA.MACD(inReal)
TA.MACD(inReal, optInFastPeriod, optInSlowPeriod, optInSignalPeriod)

示例

javascript
function main(){ // 可以填入不同k线周期,比如PERIOD_M1,PERIOD_M30,PERIOD_H1...... var records = exchange.GetRecords(PERIOD_M15) var macd = TA.MACD(records, 12, 26, 9) // 观看日志可得知返回三个数组,分别对应DIF,DEA,MACD Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2]) }
python
def main(): r = exchange.GetRecords(PERIOD_M15) macd = TA.MACD(r, 12, 26, 9) Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2])
rust
fn main() { // 可以填入不同k线周期,比如PERIOD_M1,PERIOD_M30,PERIOD_H1...... let records = exchange.GetRecords(None, PERIOD_M15, None).unwrap(); let macd = TA.MACD(&records, 12, 26, 9); // 观看日志可得知返回三个数组,分别对应DIF,DEA,MACD Log!("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2]); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M15); auto macd = TA.MACD(r, 12, 26, 9); Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2]); }

返回值

类型描述

array

TA.MACD()函数的返回值为二维数组,其结构为:[DIF, DEA, MACD]

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

optInFastPeriod

number

optInFastPeriod参数用于设置快线周期。

optInSlowPeriod

number

optInSlowPeriod参数用于设置慢线周期。

optInSignalPeriod

number

optInSignalPeriod参数用于设置信号线周期。

参考

备注

发明者量化的TA指标库对常用指标算法进行了优化,支持JavaScriptPythonC++语言策略的调用,详见开源TA库代码

TA.MACD()函数的optInFastPeriodoptInSlowPeriodoptInSignalPeriod参数默认值分别为:12269

TA.KDJ()函数用于计算随机指标(KDJ)

TA.KDJ(inReal)
TA.KDJ(inReal, period, kPeriod, dPeriod)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M15) var kdj = TA.KDJ(records, 9, 3, 3) Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2]) }
python
def main(): r = exchange.GetRecords(PERIOD_M15) kdj = TA.KDJ(r, 9, 3, 3) Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2])
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M15, None).unwrap(); let kdj = TA.KDJ(&records, 9, 3, 3); Log!("k:", kdj[0], "d:", kdj[1], "j:", kdj[2]); }
c++
void main() { auto r = exchange.GetRecords(); auto kdj = TA.KDJ(r, 9, 3, 3); Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2]); }

返回值

类型描述

array

TA.KDJ()函数的返回值为二维数组,其结构为:[K, D, J]

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于传入 K 线数据。

period

number

period参数用于设置计算周期 1。

kPeriod

number

kPeriod参数用于设置计算周期 2。

dPeriod

number

dPeriod参数用于设置计算周期 3。

参考

备注

TA.KDJ()函数的periodkPerioddPeriod参数的默认值分别为:933

TA.RSI()函数用于计算相对强弱指标(RSI)

TA.RSI(inReal)
TA.RSI(inReal, optInTimePeriod)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M30) var rsi = TA.RSI(records, 14) Log(rsi) }
python
def main(): r = exchange.GetRecords(PERIOD_M30) rsi = TA.RSI(r, 14) Log(rsi)
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M30, None).unwrap(); let rsi = TA.RSI(&records, 14); Log!(rsi); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto rsi = TA.RSI(r, 14); Log(rsi); }

返回值

类型描述

array

TA.RSI()函数的返回值为一维数组。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

optInTimePeriod

number

optInTimePeriod参数用于设置计算周期。

参考

备注

TA.RSI()函数的optInTimePeriod参数的默认值为:14

TA.ATR()函数用于计算平均真实波幅指标(ATR)

TA.ATR(inPriceHLC)
TA.ATR(inPriceHLC, optInTimePeriod)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M30) var atr = TA.ATR(records, 14) Log(atr) }
python
def main(): r = exchange.GetRecords(PERIOD_M30) atr = TA.ATR(r, 14) Log(atr)
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M30, None).unwrap(); let atr = TA.ATR(&records, 14); Log!(atr); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto atr = TA.ATR(r, 14); Log(atr); }

返回值

类型描述

array

TA.ATR()函数的返回值为一维数组。

参数

名称类型必填描述

inPriceHLC

Record结构数组

inPriceHLC参数用于指定K线数据。

optInTimePeriod

number

optInTimePeriod参数用于设置计算周期。

参考

备注

TA.ATR()函数的optInTimePeriod参数默认值为:14

TA.OBV()函数用于计算能量潮指标(OBV)

TA.OBV(inReal)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M30) var obv = TA.OBV(records) Log(obv) }
python
def main(): r = exchange.GetRecords(PERIOD_M30) obv = TA.OBV(r) Log(obv)
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M30, None).unwrap(); let obv = TA.OBV(&records); Log!(obv); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto obv = TA.OBV(r); Log(obv); }

返回值

类型描述

array

TA.OBV()函数的返回值为一维数组。

参数

名称类型必填描述

inReal

Record结构数组

inReal参数用于指定K线数据(计算时使用K线数据中的收盘价与成交量)。

参考

TA.MA()函数用于计算移动平均线指标(Moving Average)

TA.MA(inReal)
TA.MA(inReal, optInTimePeriod)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M30) var ma = TA.MA(records, 14) Log(ma) }
python
def main(): r = exchange.GetRecords(PERIOD_M30) ma = TA.MA(r, 14) Log(ma)
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M30, None).unwrap(); let ma = TA.MA(&records, 14); Log!(ma); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto ma = TA.MA(r, 14); Log(ma); }

返回值

类型描述

array

TA.MA()函数的返回值为一维数组。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

optInTimePeriod

number

optInTimePeriod参数用于设置计算周期。

参考

备注

TA.MA()函数的optInTimePeriod参数的默认值为:9

TA.EMA()函数用于计算指数移动平均线(EMA)指标

TA.EMA(inReal)
TA.EMA(inReal, optInTimePeriod)

示例

javascript
function main(){ var records = exchange.GetRecords() // 判断K线Bar数量是否满足指标计算所需的周期 if (records && records.length > 9) { var ema = TA.EMA(records, 9) Log(ema) } }
python
def main(): r = exchange.GetRecords() if r and len(r) > 9: ema = TA.EMA(r, 9) Log(ema)
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); // 判断K线Bar数量是否满足指标计算所需的周期 if records.len() > 9 { let ema = TA.EMA(&records, 9); Log!(ema); } }
c++
void main() { auto r = exchange.GetRecords(); if(r.Valid && r.size() > 9) { auto ema = TA.EMA(r, 9); Log(ema); } }

返回值

类型描述

array

TA.EMA()函数的返回值为:一维数组。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于传入K线数据。

optInTimePeriod

number

optInTimePeriod参数用于设置计算周期。

参考

备注

TA.EMA()函数的optInTimePeriod参数的默认值为:9

TA.BOLL()函数用于计算布林带指标

TA.BOLL(inReal)
TA.BOLL(inReal, period, multiplier)

示例

javascript
function main() { var records = exchange.GetRecords() if(records && records.length > 20) { var boll = TA.BOLL(records, 20, 2) var upLine = boll[0] var midLine = boll[1] var downLine = boll[2] Log(upLine) Log(midLine) Log(downLine) } }
python
def main(): r = exchange.GetRecords() if r and len(r) > 20: boll = TA.BOLL(r, 20, 2) upLine = boll[0] midLine = boll[1] downLine = boll[2] Log(upLine) Log(midLine) Log(downLine)
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); if records.len() > 20 { let boll = TA.BOLL(&records, 20, 2.0); let [upLine, midLine, downLine] = boll; Log!(upLine); Log!(midLine); Log!(downLine); } }
c++
void main() { auto r = exchange.GetRecords(); if(r.Valid && r.size() > 20) { auto boll = TA.BOLL(r, 20, 2); auto upLine = boll[0]; auto midLine = boll[1]; auto downLine = boll[2]; Log(upLine); Log(midLine); Log(downLine); } }

返回值

类型描述

array

TA.BOLL()函数的返回值为二维数组,其结构为[upLine, midLine, downLine]

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

period

number

period参数用于设置计算周期。

multiplier

number

multiplier参数用于设置乘数(标准差倍数)。

参考

备注

TA.BOLL()函数的periodmultiplier参数的默认值分别为202

TA.Alligator()函数用于计算鳄鱼线指标(Alligator)

TA.Alligator(inReal)
TA.Alligator(inReal, jawLength, teethLength, lipsLength)

示例

javascript
function main(){ var records = exchange.GetRecords() var alligator = TA.Alligator(records) Log("jawLine:", alligator[0]) Log("teethLine:", alligator[1]) Log("lipsLine:", alligator[2]) }
python
def main(): records = exchange.GetRecords() alligator = TA.Alligator(records) Log("jawLine:", alligator[0]) Log("teethLine:", alligator[1]) Log("lipsLine:", alligator[2])
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); let alligator = TA.Alligator(&records, None, None, None); Log!("jawLine:", alligator[0]); Log!("teethLine:", alligator[1]); Log!("lipsLine:", alligator[2]); }
c++
void main() { auto records = exchange.GetRecords(); auto alligator = TA.Alligator(records); Log("jawLine:", alligator[0]); Log("teethLine:", alligator[1]); Log("lipsLine:", alligator[2]); }

返回值

类型描述

array

TA.Alligator()函数的返回值为二维数组,其结构为:[jawLine, teethLine, lipsLine]

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

jawLength

number

jawLength参数用于设置下颚线(Jaw)的周期。

teethLength

number

teethLength参数用于设置牙齿线(Teeth)的周期。

lipsLength

number

lipsLength参数用于设置上唇线(Lips)的周期。

参考

备注

TA.Alligator()函数的jawLengthteethLengthlipsLength参数默认值分别为:1385

TA.CMF()函数用于计算蔡金资金流量指标(Chaikin Money Flow)

TA.CMF(inReal)
TA.CMF(inReal, periods)

示例

javascript
function main() { var records = exchange.GetRecords() var cmf = TA.CMF(records) Log(cmf) }
python
def main(): records = exchange.GetRecords() cmf = TA.CMF(records) Log(cmf)
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); let cmf = TA.CMF(&records, None); Log!(cmf); }
c++
void main() { auto records = exchange.GetRecords(); auto cmf = TA.CMF(records); Log(cmf); }

返回值

类型描述

array

TA.CMF()函数的返回值为一维数组。

参数

名称类型必填描述

inReal

Record结构数组

inReal参数用于指定K线数据(计算时使用K线数据中的最高价、最低价、收盘价与成交量)。

periods

number

periods参数用于指定计算周期,默认值为20。

参考

TA.Highest()函数用于计算周期内最高价

TA.Highest(inReal)
TA.Highest(inReal, period, attr)

示例

javascript
function main() { var records = exchange.GetRecords() var highestForOpen = TA.Highest(records, 10, "Open") Log(highestForOpen) }
python
def main(): records = exchange.GetRecords() highestForOpen = TA.Highest(records, 10, "Open") Log(highestForOpen)
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); // Rust 的 TA.Highest 无属性名参数,先提取开盘价数值序列再计算(不包含当前Bar) let opens: Vec<f64> = records.iter().map(|r| r.Open).collect(); let highestForOpen = TA.Highest(&opens, 10); Log!(highestForOpen); }
c++
void main() { auto records = exchange.GetRecords(); auto highestForOpen = TA.Highest(records.Open(), 10); Log(highestForOpen); }

返回值

类型描述

number

TA.Highest()函数返回最近指定周期内某个属性的最大值,不包含当前Bar。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

period

number

period参数用于设置计算周期。

attr

string

attr参数用于指定属性,可选值:OpenCloseLowHighVolumeOpenInterest

参考

备注

例如调用TA.Highest(records, 30, "High")函数时,如果周期参数period设置为0,表示计算inReal参数传入的K线数据中的所有Bar;如果不指定属性参数attr,则将inReal参数传入的数据视为普通数组处理。

TA.Lowest()函数用于计算周期最低价

TA.Lowest(inReal)
TA.Lowest(inReal, period, attr)

示例

javascript
function main() { var records = exchange.GetRecords() var lowestForOpen = TA.Lowest(records, 10, "Open") Log(lowestForOpen) }
python
def main(): records = exchange.GetRecords() lowestForOpen = TA.Lowest(records, 10, "Open") Log(lowestForOpen)
rust
fn main() { let records = exchange.GetRecords(None, None, None).unwrap(); // Rust 的 TA.Lowest 无属性名参数,先提取开盘价数值序列再计算(不包含当前Bar) let opens: Vec<f64> = records.iter().map(|r| r.Open).collect(); let lowestForOpen = TA.Lowest(&opens, 10); Log!(lowestForOpen); }
c++
void main() { auto records = exchange.GetRecords(); auto lowestForOpen = TA.Lowest(records.Open(), 10); Log(lowestForOpen); }

返回值

类型描述

number

TA.Lowest()函数返回最近一定周期内某个属性的最小值,不包含当前Bar。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于指定K线数据。

period

number

period参数用于设置计算周期。

attr

string

attr参数用于设置属性,可选值:OpenCloseLowHighVolumeOpenInterest

参考

备注

例如调用TA.Lowest(records, 30, "Low")函数:如果周期参数period设置为0,则表示计算inReal参数传入的K线数据的所有Bar;如果不指定属性参数attr,则视inReal参数传入的K线数据为普通数组。

C++策略中使用TA.Highest()TA.Lowest()函数时需要注意:Highest()Lowest()函数各自只有2个参数,并且第一个参数传入的不是auto r = exchange.GetRecords()函数调用时获取的K线数据r,而是需要调用r的方法,传入具体的属性数据。例如传入r.Close()收盘价数据。CloseHighLowOpenVolume的调用方式与r.Close()相同。

C++语言策略的测试范例:

c++
void main() { Records r; r.Valid = true; for (auto i = 0; i < 10; i++) { Record ele; ele.Time = i * 100000; ele.High = i * 10000; ele.Low = i * 1000; ele.Close = i * 100; ele.Open = i * 10; ele.Volume = i * 1; r.push_back(ele); } for(int j = 0; j < r.size(); j++){ Log(r[j]); } // 注意:第一个参数传入的不是r,需要调用r.Close() auto highest = TA.Highest(r.Close(), 8); Log(highest); }

TA.SMA()函数用于计算简单移动平均线(SMA)指标

TA.SMA(inReal)
TA.SMA(inReal, optInTimePeriod)

示例

javascript
function main(){ var records = exchange.GetRecords(PERIOD_M30) var sma = TA.SMA(records, 14) Log(sma) }
python
def main(): r = exchange.GetRecords(PERIOD_M30) sma = TA.SMA(r, 14) Log(sma)
rust
fn main() { let records = exchange.GetRecords(None, PERIOD_M30, None).unwrap(); let sma = TA.SMA(&records, 14); Log!(sma); }
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto sma = TA.SMA(r, 14); Log(sma); }

返回值

类型描述

array

TA.SMA()函数的返回值为:一维数组。

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

inReal参数用于传入K线数据。

optInTimePeriod

number

optInTimePeriod参数用于设置计算周期。

参考

备注

TA.SMA()函数的optInTimePeriod参数默认值为:9