下单成功返回订单Id,下单失败返回空值。
FMZ平台的订单{@struct/Order Order}结构的属性```Id```由交易所品种代码和交易所原始订单Id组成,以英文逗号间隔。例如OKX交易所的现货交易对```ETH_USDT```订单的属性```Id```格式为:```ETH-USDT,1547130415509278720```。
调用```exchange.Buy()```函数下单时,返回值订单```Id```与订单{@struct/Order Order}结构的```Id```属性一致。
string、空值
exchange.Buy(price, amount)
exchange.Buy(price, amount, ...args)
```price```参数用于设置订单价格。
price
true
number
```amount```参数用于设置订单量。
amount
true
number
扩展参数,可以输出附带信息到这条下单日志中,```arg```参数可以传多个。
arg
false
string、number、bool、object、array、空值等系统支持的任意类型
```javascript
function main() {
var id = exchange.Buy(100, 1);
Log("id:", id);
}
def main():
id = exchange.Buy(100, 1)
Log("id:", id)
void main() {
auto id = exchange.Buy(100, 1);
Log("id:", id);
}
```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)
}
# 以下为错误调用
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)
// 以下为错误调用
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);
}
加密货币期货合约下单时必须注意交易方向是否设置正确,如果交易方向和交易函数不匹配会报错:
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
// 例如交易对:ETH_BTC ,市价单买入
function main() {
// 下市价单买入,买入0.1个BTC(计价币)金额的ETH币
exchange.Buy(-1, 0.1)
}
def main():
exchange.Buy(-1, 0.1)
void main() {
exchange.Buy(-1, 0.1);
}
现货市价单。
期货合约下单时必须注意交易方向是否设置正确,如果交易方向和交易函数不匹配会报错。 加密货币期货合约交易所的下单量如无特殊说明则为合约张数。
参数price
设置为-1
用于下市价单,需要交易所的下单接口支持市价单。 加密货币现货的市价单方式下单,下买单时,下单量参数amount
是以计价币为单位的金额数量。 加密货币期货合约的市价单方式下单,下单量参数amount
的单位为合约张数。实盘时,有少数加密货币交易所不支持市价单接口。 个别现货交易所的市价单买单的下单量为交易币数,具体查看「用户指南」中的交易所特殊说明。
如使用较旧版本的托管者,exchange.Buy()
函数的返回值订单Id
可能与当前文档中描述的返回值订单Id
有差别。
需要注意:AscendEx
交易所的下单接口比较特殊。对于现货市价单,下单量是币数,并非金额。
{@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}