资源加载中... loading...

exchange.Buy

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