exchange.SetDirection
设置exchange.Buy函数、exchange.Sell函数在进行期货合约下单时的订单方向。
exchange.SetDirection(direction)
exchange.SetDirection(direction, type)示例
设置开多、平多方向并下单。
javascript
function main(){
// 鉴于此为测试代码,未采用商品期货策略的一般架构,这里仅通过exchange.IO("status")函数判断,在成功连接期货公司前置机后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while(!exchange.IO("status")) {
Sleep(1000)
}
// 举例设置为螺纹钢主力合约
exchange.SetContractType("rb888")
// 设置下单类型为做多
exchange.SetDirection("buy")
// 以10000的价格,合约数量为2张下单。注意,这里的下单价格仅为举例,具体测试时可自行设置、改动
exchange.Buy(10000, 2)
// 设置下单类型为平多
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
}
python
def main():
while not exchange.IO("status"):
Sleep(1000)
exchange.SetContractType("rb888")
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
rust
fn main() {
// 鉴于此为测试代码,未采用商品期货策略的一般架构,这里仅通过exchange.IO("status")函数判断,在成功连接期货公司前置机后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while !exchange.IO("status").is_ok_and(|v| v.as_i64() == Some(1)) {
Sleep(1000);
}
// 举例设置为螺纹钢主力合约
exchange.SetContractType("rb888").unwrap();
// 设置下单类型为做多。注意:Rust 中 SetDirection 不推荐使用,优先使用 CreateOrder 直接指定 side("buy"/"sell"/"closebuy"/"closesell"),无需先 SetDirection
exchange.SetDirection("buy").unwrap();
// 以10000的价格,合约数量为2张下单。注意,这里的下单价格仅为举例,具体测试时可自行设置、改动
exchange.Buy(10000, 2).unwrap();
// 设置下单类型为平多
exchange.SetDirection("closebuy").unwrap();
exchange.Sell(1000, 2).unwrap();
}参数
| 名称 | 类型 | 必填 | 描述 |
direction | string | 是 | 期货合约下单时的方向,可选值为: |
type | string | 否 | 对于采用CTP协议的传统期货,可将第二个参数 |
参考
备注
exchange.SetDirection()函数设置了期货合约交易方向与下单函数之间的对应关系:
| 下单函数 | SetDirection函数的参数设置的方向 | 备注 |
|---|---|---|
| exchange.Buy | "buy" | 买入开多仓 |
| exchange.Buy | "closesell" | 买入平空仓 |
| exchange.Buy | "closesell_today" | 买入平空仓(今仓) |
| exchange.Sell | "sell" | 卖出开空仓 |
| exchange.Sell | "closebuy" | 卖出平多仓 |
| exchange.Sell | "closebuy_today" | 卖出平多仓(今仓) |