exchange.Buy()
函数用于下买单。Buy()
函数是交易所对象{@var/EXCHANGE exchange}的成员函数。 Buy()
函数操作交易所对象exchange
绑定的交易所账户,exchange
对象的成员函数(方法)的用途只和exchange
相关,文档之后不再赘述。
下单成功返回订单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、空值等系统支持的任意类型
function main() {
// 鉴于测试代码,不使用商品期货策略一般架构,这里仅仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while (!exchange.IO("status")) {
Sleep(1000)
}
// 设置合约代码
exchange.SetContractType("rb888")
// 设置下单方向
exchange.SetDirection("buy")
// 注意,这里的下单价格100为举例,具体测试的时候可以自行设置、改动
var id = exchange.Buy(100, 1)
Log("id:", id)
}
def main():
while not exchange.IO("status"):
Sleep(1000)
exchange.SetContractType("rb888")
exchange.SetDirection("buy")
id = exchange.Buy(100, 1)
Log("id:", id)
void main() {
while (exchange.IO("status") == 0) {
Sleep(1000);
}
exchange.SetContractType("rb888");
exchange.SetDirection("buy");
auto id = exchange.Buy(100, 1);
Log("id:", id);
}
exchange.Buy()
返回的订单编号,可用于查询订单信息和取消订单。
function main() {
// 鉴于测试代码,不使用商品期货策略一般架构,这里仅仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while (!exchange.IO("status")) {
Sleep(1000)
}
// 设置合约代码
exchange.SetContractType("rb888")
// 设置下单方向
exchange.SetDirection("buy")
// 下单价格参数传-1即为市价单
var id = exchange.Buy(-1, 1)
Log("id:", id)
}
def main():
while not exchange.IO("status"):
Sleep(1000)
exchange.SetContractType("rb888")
exchange.SetDirection("buy")
id = exchange.Buy(-1, 1)
Log("id:", id)
void main() {
while (exchange.IO("status") == 0) {
Sleep(1000);
}
exchange.SetContractType("rb888");
exchange.SetDirection("buy");
auto id = exchange.Buy(-1, 1);
Log("id:", id);
}
商品期货、股票证券除了使用市价单(价格参数传-1,实际是系统使用了一个较高的买入价或者较低的卖出价来确保成交),还可以用限价单方式下单。 可以使用一个较大的滑价,确保和对手盘成交,参看exchange.Sell
中的范例。
期货合约下单时必须注意交易方向是否设置正确,如果交易方向和交易函数不匹配会报错。 参考:{@fun/Futures/exchange.SetDirection exchange.SetDirection}
参数price
设置为-1
用于下市价单,回测系统、实盘环境均支持市价单。
股票证券下单:
下单量为股票股数,并非股票手数(在股票证券交易所对象中如无特殊说明,相关的量均为股票股数)。下单量需要符合股票信息中的每手股数要求。
例如,02333.HK
港股长城汽车,每手500股。下单量必须是500的整倍数。601633.SH
为A股长城汽车,每手100股。下单量必须是100的整倍数。
每手股数可以从SetContractType
函数返回的数据结构中获取(VolumeMultiple
字段)。也可以从GetTicker()
函数返回的数据结构中的Info
属性中获取(LotSize
字段)。
{@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}
Market exchange.Sell