## 提示

- `live-or-trading-module-only`


## 原型

```python
order_market(security, amount, market_type, limit_price=None)
```

## 释义

order_market 是 PTrade 中用于按市价进行委托的接口。

研究：不支持；回测：不支持；模拟：官方目录未明确；实盘：支持。

## 参数

| 参数 | 是否必填 | 官方原始定义 |
|---|---:|---|
| `security` | 是 | security |
| `amount` | 是 | amount |
| `market_type` | 是 | market_type |
| `limit_price` | 否 | limit_price=None |

## 返回值

Order对象中的id或者None。如果创建订单成功，则返回Order对象的id(str)，失败则返回None(NoneType)。

## 示例

```python
def initialize(context):

g.security = "600570.SS"

set_universe(g.security)

def before_trading_start(context, data):

g.flag = False

def handle_data(context, data):

if not g.flag:

# 以35保护限价按对手方最优价格买入100股

order_market(g.security, 100, 0, 35)

# 以35保护限价按最优五档即时成交剩余转限价买入100股

order_market(g.security, 100, 1, 35)

# 以35保护限价按本方最优价格买入100股

order_market(g.security, 100, 2, 35)

# 以35保护限价按最优五档即时成交剩余撤销买入100股

order_market(g.security, 100, 4, 35)

# 按对手方最优价格买入100股

order_market("000001.SZ", 100, 0)

# 按本方最优价格买入100股

order_market("000001.SZ", 100, 2)

# 按即时成交剩余撤销买入100股

order_market("000001.SZ", 100, 3)

# 按最优五档即时成交剩余撤销买入100股

order_market("000001.SZ", 100, 4)

# 按全额成交或撤单买入100股

order_market("000001.SZ", 100, 5)

g.flag = True
```

## 详细说明

order_market(security, amount, market_type, limit_price=None)

### 使用场景

该函数仅在交易模块可用

### 接口说明

该接口用于使用多种市价类型进行委托

### 注意事项

支持逆回购交易。委托方向为卖出(amount必须为负数)，逆回购最小申购金额为1000元(10张)，因此本接口amount入参应大于等于10(10张)，否则会导致委托失败。

不支持可转债交易。

该函数中market_type是必传字段，如不传入参数会出现报错。

该函数委托上证股票时limit_price是必传字段，如不传入参数会出现报错。

### 参数详细说明

security：股票代码(str)；

amount：交易数量(int)，正数表示买入，负数表示卖出；

market_type：市价委托类型(int)，上证股票支持参数0、1、2、4，深证股票支持参数0、2、3、4、5，必传参数；

limit_price：保护限价(float)，委托上证股票时必传参数；

### 返回值

Order对象中的id或者None。如果创建订单成功，则返回Order对象的id(str)，失败则返回None(NoneType)。
