## 提示

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


## 原型

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

## 释义

margin_trade 是 PTrade 中用于担保品买卖的接口。

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

## 参数

| 参数 | 是否必填 | 官方原始定义 |
|---|---:|---|
| `security` | 是 | security |
| `amount` | 是 | amount |
| `limit_price` | 否 | limit_price=None |
| `market_type` | 否 | market_type=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:

# 以系统最新价委托

margin_trade(g.security, 100)

# 以46块价格下一个限价单

margin_trade(g.security, 100, limit_price=46)

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

margin_trade(g.security, 100, limit_price=46, market_type=1)

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

margin_trade("000001.SZ", 100, market_type=5)

g.flag = True
```

## 详细说明

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

### 使用场景

该函数仅支持PTrade客户端可用，仅在两融回测、两融交易模块可用。

### 接口说明

该接口用于担保品买卖。

### 注意事项

限价和市价委托类型都不传时默认取当前最新价进行限价委托，限价和市价委托类型都传入时以limit_price为委托限价进行市价委托。

当market_type传入且委托上证股票时，limit_price为保护限价字段，必传字段。

### 参数详细说明

security：股票代码(str)；

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

limit_price：买卖限价/保护限价(float)；

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

### 返回值

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