输入/搜索内容
内置函数
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.Buy()函数用于下买单。Buy()函数是交易所对象exchange的成员函数。Buy()函数操作交易所对象exchange所绑定的交易所账户。exchange对象的成员函数(方法)的用途仅与exchange相关,本文档后续不再赘述。

exchange.Buy(price, amount)
exchange.Buy(price, amount, ...args)

示例

  • exchange.Buy()返回的订单编号,可用于查询订单信息和取消订单。

    javascript
    function main() { var id = exchange.Buy(100, 1); Log("id:", id); }
    python
    def main(): id = exchange.Buy(100, 1) Log("id:", id)
    rust
    fn main() { let id = exchange.Buy(100, 1).unwrap(); Log!("id:", id); }
    c++
    void main() { auto id = exchange.Buy(100, 1); Log("id:", id); }
  • 加密货币期货合约下单时必须注意交易方向是否设置正确,如果交易方向与交易函数不匹配将会报错:

    ```log

    direction is sell, invalid order type Buy

    direction is buy, invalid order type Sell

    direction is closebuy, invalid order type Buy

    direction is closesell, invalid order type Sell

    ```

    javascript
    // 以下为错误调用 function main() { exchange.SetContractType("quarter") // 设置做空方向 exchange.SetDirection("sell") // 下买单,会报错,做空只能卖出 var id = exchange.Buy(50, 1) // 设置做多方向 exchange.SetDirection("buy") // 下卖单,会报错,做多只能买入 var id2 = exchange.Sell(60, 1) // 设置平多方向 exchange.SetDirection("closebuy") // 下买单,会报错,平多只能卖出 var id3 = exchange.Buy(-1, 1) // 设置平空方向 exchange.SetDirection("closesell") // 下卖单,会报错,平空只能买入 var id4 = exchange.Sell(-1, 1) }
    python
    # 以下为错误调用 def main(): exchange.SetContractType("quarter") exchange.SetDirection("sell") id = exchange.Buy(50, 1) exchange.SetDirection("buy") id2 = exchange.Sell(60, 1) exchange.SetDirection("closebuy") id3 = exchange.Buy(-1, 1) exchange.SetDirection("closesell") id4 = exchange.Sell(-1, 1)
    rust
    // 以下为错误调用 fn main() { let _ = exchange.SetContractType("quarter"); // 设置做空方向 let _ = exchange.SetDirection("sell"); // 下买单,会报错,做空只能卖出 let id = exchange.Buy(50, 1); // 设置做多方向 let _ = exchange.SetDirection("buy"); // 下卖单,会报错,做多只能买入 let id2 = exchange.Sell(60, 1); // 设置平多方向 let _ = exchange.SetDirection("closebuy"); // 下买单,会报错,平多只能卖出 let id3 = exchange.Buy(-1, 1); // 设置平空方向 let _ = exchange.SetDirection("closesell"); // 下卖单,会报错,平空只能买入 let id4 = exchange.Sell(-1, 1); }
    c++
    // 以下为错误调用 void main() { exchange.SetContractType("quarter"); exchange.SetDirection("sell"); auto id = exchange.Buy(50, 1); exchange.SetDirection("buy"); auto id2 = exchange.Sell(60, 1); exchange.SetDirection("closebuy"); auto id3 = exchange.Buy(-1, 1); exchange.SetDirection("closesell"); auto id4 = exchange.Sell(-1, 1); }
  • 现货市价单。

    javascript
    // 例如交易对:ETH_BTC ,市价单买入 function main() { // 下市价单买入,买入0.1个BTC(计价币)金额的ETH币 exchange.Buy(-1, 0.1) }
    python
    def main(): exchange.Buy(-1, 0.1)
    rust
    // 例如交易对:ETH_BTC ,市价单买入 fn main() { // 下市价单买入,买入0.1个BTC(计价币)金额的ETH币 let _ = exchange.Buy(-1, 0.1); }
    c++
    void main() { exchange.Buy(-1, 0.1); }

返回值

类型描述

string / 空值

下单成功返回订单Id,下单失败返回空值。FMZ平台的订单Order结构的属性Id由交易所品种代码和交易所原始订单Id组成,以英文逗号分隔。例如OKX交易所现货交易对ETH_USDT订单的属性Id格式为:ETH-USDT,1547130415509278720。调用exchange.Buy()函数下单时,返回值订单Id与订单Order结构的Id属性一致。

参数

名称类型必填描述

price

number

price参数用于设置订单价格。

amount

number

amount参数用于设置订单量。

arg

string / number / bool / object / array / any (平台支持的任意类型)

扩展参数,用于将附带信息输出到该条下单日志中,arg参数可传入多个。

参考

exchange.Sell exchange.SetContractType exchange.SetDirection exchange.IO(API限流控制,Buy函数受CreateOrder限流设置影响)

备注

期货合约下单时必须注意交易方向是否设置正确,如果交易方向与交易函数不匹配将会报错。加密货币期货合约交易所的下单量如无特殊说明,则以合约张数为单位。

参数price设置为-1时用于下市价单,此功能需要交易所的下单接口支持市价单。以市价单方式对加密货币现货下买单时,下单量参数amount为以计价币计价的金额数量。以市价单方式对加密货币期货合约下单时,下单量参数amount的单位为合约张数。实盘时,有少数加密货币交易所不支持市价单接口。个别现货交易所市价单买单的下单量为交易币数量,具体请查看「用户指南」中的交易所特殊说明

如使用较旧版本的托管者,exchange.Buy()函数返回的订单Id可能与当前文档中描述的返回值订单Id有所差别。

需要注意,以下三家交易所的下单接口较为特殊。对于现货市价单的买单,其下单量为币数,而非金额。

  • AscendEx

  • BitMEX

  • Bitfinex