输入/搜索内容
内置函数
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
Threads
threading
Thread
getThread
mainThread
currentThread
Lock
Condition
Event
Dict
pending
Thread
ThreadLock
ThreadEvent
ThreadCondition
ThreadDict
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()函数用于计算指数平滑异同移动平均线指标

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

示例

测试TA.MACD()函数:

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])
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)

示例

测试TA.KDJ()函数的使用示例:

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])
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参数用于设置RSV周期。

kPeriod

number

kPeriod参数用于设置K值平滑周期。

dPeriod

number

dPeriod参数用于设置D值平滑周期。

参考

备注

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

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

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

示例

测试TA.RSI()函数:

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)
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()函数用于计算平均真实波幅指标(Average True Range)

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

示例

测试TA.ATR()函数:

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)
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()函数用于计算能量潮指标(On Balance Volume)

TA.OBV(inReal)
TA.OBV(inReal, inPriceV)

示例

测试TA.OBV()函数的示例:

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)
c++
void main() { auto r = exchange.GetRecords(PERIOD_M30); auto obv = TA.OBV(r); Log(obv); }

返回值

类型描述

array

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

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

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

inPriceV

Record结构数组

inPriceV参数用于指定成交量数据。

参考

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

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

示例

测试TA.MA()函数:

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)
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()函数用于计算指数移动平均线指标

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

示例

测试TA.EMA()函数:

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)
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)

示例

测试TA.BOLL()函数:

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)
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()函数用于计算鳄鱼线指标

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

示例

测试TA.Alligator()函数:

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])
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参数用于设置下颚线周期。

teethLength

number

teethLength参数用于设置牙齿线周期。

lipsLength

number

lipsLength参数用于设置上唇线周期。

参考

备注

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

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

TA.CMF(inReal)
TA.CMF(inReal, inPriceV)

示例

测试TA.CMF()函数的使用示例:

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)
c++
void main() { auto records = exchange.GetRecords(); auto cmf = TA.CMF(records); Log(cmf); }

返回值

类型描述

array

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

参数

名称类型必填描述

inReal

Record结构数组 / 数值数组

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

inPriceV

Record结构数组

inPriceV参数用于指定成交量数据。

参考

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

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

示例

测试TA.Highest()函数:

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)
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参数传入的K线数据视为普通数组。

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

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

示例

测试TA.Lowest()函数:

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)
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()函数用于计算简单移动平均线指标

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

示例

测试TA.SMA()函数:

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)
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