输入/搜索内容
内置函数
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
结构体
内置变量

exchange.GetAccount()函数用于请求交易所账户信息。GetAccount()函数是交易所对象exchange的成员函数,exchange对象的成员函数(方法)仅与exchange相关,后续文档不再赘述。

exchange.GetAccount()

示例

设置交易对与合约代码,获取当前账户信息。

javascript
function main(){ // 切换交易对 exchange.IO("currency", "BTC_USDT") // 以OKX期货为例,设置合约为当周合约,当前交易对为BTC_USDT,所以当前合约为BTC的U本位当周合约 exchange.SetContractType("this_week") // 获取当前账户资产数据 var account = exchange.GetAccount() // USDT作为保证金的可用余额 Log(account.Balance) // USDT作为保证金的冻结金额 Log(account.FrozenBalance) // 当前资产权益 Log(account.Equity) // 当前资产作为保证金的所有持仓的未实现盈亏 Log(account.UPnL) }
python
def main(): exchange.IO("currency", "BTC_USDT") exchange.SetContractType("this_week") account = exchange.GetAccount() Log(account["Balance"]) Log(account["FrozenBalance"]) Log(account["Equity"]) Log(account["UPnL"])
rust
fn main() { // 切换交易对 exchange.IO(("currency", "BTC_USDT")).unwrap(); // 以OKX期货为例,设置合约为当周合约,当前交易对为BTC_USDT,所以当前合约为BTC的U本位当周合约 exchange.SetContractType("this_week").unwrap(); // 获取当前账户资产数据 let account = exchange.GetAccount().unwrap(); // USDT作为保证金的可用余额 Log!(account.Balance); // USDT作为保证金的冻结金额 Log!(account.FrozenBalance); // 当前资产权益 Log!(account.Equity); // 当前资产作为保证金的所有持仓的未实现盈亏 Log!(account.UPnL); }
c++
void main() { exchange.IO("currency", "BTC_USDT"); exchange.SetContractType("this_week"); auto account = exchange.GetAccount(); Log(account.Balance); Log(account.FrozenBalance); Log(account.Equity); Log(account.UPnL); }

返回值

类型描述

Account / 空值

查询账户资产信息,查询成功时返回Account结构,查询失败时返回空值。

参考

备注

如果交易所对象设置为加密货币期货合约交易所,并且切换为以USDT作为保证金的合约(切换方法请参阅exchange.SetCurrencyexchange.SetContractType函数),此时资产以USDT作为保证金,记录在Account结构的BalanceFrozenBalance属性中。

如果交易所对象设置为加密货币期货合约交易所,并且切换为币本位合约,此时资产以币作为保证金,记录在Account结构的StocksFrozenStocks属性中。

使用币安期货统一账户时,调用exchange.GetAccount()函数请求账户信息,封装的数据为所有资产折算为**USD**后的金额,显示在Account结构的Balance字段中。如需计算其它资产的折算金额,可将USD折算金额除以(待折算资产的)指数价格,再除以(待折算资产的)质押率即可算出。

exchange.GetAssets函数用于请求交易所账户的资产信息。

exchange.GetAssets()

示例

获取交易所账户的资产信息,exchange.GetAssets()函数返回一个以Asset结构体为元素的数组。

javascript
function main() { // exchange.SetCurrency("BTC_USDT") // 可以设置交易对 // exchange.SetContractType("swap") // 可以设置合约 var assets = exchange.GetAssets() Log(assets) }
python
def main(): # exchange.SetCurrency("BTC_USDT") # 可以设置交易对 # exchange.SetContractType("swap") # 可以设置合约 assets = exchange.GetAssets() Log(assets)
rust
fn main() { // exchange.SetCurrency("BTC_USDT"); // 可以设置交易对 // exchange.SetContractType("swap").unwrap(); // 可以设置合约 let assets = exchange.GetAssets().unwrap(); Log!(assets); }
c++
void main() { // exchange.SetCurrency("BTC_USDT"); // 可以设置交易对 // exchange.SetContractType("swap"); // 可以设置合约 auto assets = exchange.GetAssets(); Log(assets); }

返回值

类型描述

Asset数组 / 空值

exchange.GetAssets()函数请求数据成功时返回Asset结构体数组,请求数据失败时返回空值。

参考

备注

期货交易所对象的GetAssets()函数返回当前交易对(币本位、USDT本位、USDC本位等)下的保证金资产。

exchange.GetName()函数用于获取当前交易所对象所绑定的交易所名称。

exchange.GetName()

示例

javascript
function main() { Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance") }
python
def main(): Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance")
rust
fn main() { Log!("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance"); }
c++
void main() { Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance"); }

返回值

类型描述

string

exchange.GetName()函数返回由FMZ量化交易平台定义的交易所名称。

参考

备注

exchange.GetName()函数通常用于识别策略代码中的exchangeexchanges[1]exchanges[2]等交易所对象。加密货币期货合约交易所的名称带有固定前缀Futures_

exchange.GetLabel()函数用于获取配置交易所对象时设置的自定义标签。

exchange.GetLabel()

示例

javascript
function main() { Log("exchange label:", exchange.GetLabel()) }
python
def main(): Log("exchange label:", exchange.GetLabel())
rust
fn main() { Log!("exchange label:", exchange.GetLabel()); }
c++
void main() { Log("exchange label:", exchange.GetLabel()); }

返回值

类型描述

string

exchange.GetLabel()函数返回配置交易所对象时设置的自定义标签。

参考

备注

通过设置的标签,可在策略代码中识别exchangeexchanges[1]exchanges[2]等交易所对象。

exchange.GetCurrency()函数用于获取当前设置的交易对。

exchange.GetCurrency()

示例

javascript
function main() { Log("Current trading pair:", exchange.GetCurrency()) }
python
def main(): Log("Current trading pair:", exchange.GetCurrency())
rust
fn main() { Log!("Current trading pair:", exchange.GetCurrency()); }
c++
void main() { Log("Current trading pair:", exchange.GetCurrency()); }

返回值

类型描述

string

exchange.GetCurrency()函数返回当前exchange交易所对象所设置的交易对。

参考

备注

交易对格式统一采用大写形式,并使用下划线分隔baseCurrencyquoteCurrency,例如:BTC_USDT

exchange.SetCurrency()函数用于切换交易所对象exchange当前的交易对。

exchange.SetCurrency(currency)

示例

javascript
function main() { var ticker = exchange.GetTicker() Log(ticker) Log(exchange.GetAccount()) // 切换交易对,注意切换后行情数据、账户信息的变化 exchange.SetCurrency("LTC_USDT") Log("Switched to LTC_USDT") ticker = exchange.GetTicker() Log(ticker) Log(exchange.GetAccount()) }
python
def main(): ticker = exchange.GetTicker() Log(ticker) Log(exchange.GetAccount()) exchange.SetCurrency("LTC_USDT") Log("Switched to LTC_USDT") ticker = exchange.GetTicker() Log(ticker) Log(exchange.GetAccount())
rust
fn main() { let ticker = exchange.GetTicker(None).unwrap(); Log!(ticker); Log!(exchange.GetAccount()); // 切换交易对,注意切换后行情数据、账户信息的变化 exchange.SetCurrency("LTC_USDT"); Log!("Switched to LTC_USDT"); let ticker = exchange.GetTicker(None).unwrap(); Log!(ticker); Log!(exchange.GetAccount()); }
c++
void main() { auto ticker = exchange.GetTicker(); Log(ticker); Log(exchange.GetAccount()); exchange.SetCurrency("LTC_USDT"); Log("Switched to LTC_USDT"); ticker = exchange.GetTicker(); Log(ticker); Log(exchange.GetAccount()); }

参数

名称类型必填描述

currency

string

currency参数用于指定要切换的交易对。交易对格式统一为大写,并使用下划线分隔baseCurrencyquoteCurrency,例如:BTC_USDT

参考

备注

1、兼容exchange.IO("currency", "BTC_USDT")的切换方式,详见excahnge.IO

2、支持在回测系统中切换交易对,但回测系统中切换交易对时,计价币的名称不能改变。例如:BTC_USDT可以切换为LTC_USDT,但不能切换为LTC_BTC

3、切换为非回测页面初始设置的交易对后,交易币的数量为0。例如:回测时回测页面上初始设置的交易对为BTC_USDTBTC数量为3个,USDT数量为10000。此时立即切换为LTC_USDT,切换后交易币数量为0,即账户中LTC数量为0;切换后的交易对共享USDT数量,即数量仍为10000。

exchange.GetQuoteCurrency()函数用于获取当前交易对的计价币名称,即quoteCurrency

exchange.GetQuoteCurrency()

示例

javascript
function main() { exchange.SetCurrency("BTC_USDT") Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency()) // exchange.SetCurrency("ETH_BTC") // Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency()) }
python
def main(): exchange.SetCurrency("BTC_USDT") Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency()) # exchange.SetCurrency("ETH_BTC") # Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency())
rust
fn main() { exchange.SetCurrency("BTC_USDT"); Log!("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency()); // exchange.SetCurrency("ETH_BTC"); // Log!("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency()); }
c++
void main() { exchange.SetCurrency("BTC_USDT"); Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency()); // exchange.SetCurrency("ETH_BTC") // Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency()) }

返回值

类型描述

string

exchange.GetQuoteCurrency()函数返回当前交易对的计价币名称。

参考

备注

例如:exchange交易所对象当前的交易对为BTC_USDT时,exchange.GetQuoteCurrency()函数返回USDT;如果当前交易对为ETH_BTC,则exchange.GetQuoteCurrency()函数返回BTC