问题描述
margin_trade函数的market_type参数怎么选择?
解决方案
在 ptrade 量化交易平台中,margin_trade 函数用于进行融资融券的担保品买卖。其中,market_type 参数用于指定市价委托类型。选择该参数时,需要根据交易标的所属的市场以及您期望的成交方式来决定。
1. market_type 参数可选值及含义
market_type 接受整型(int)参数,具体代表的市价委托类型如下:
- 0:对手方最优价格
- 1:最优五档即时成交剩余转限价
- 2:本方最优价格
- 3:即时成交剩余撤销
- 4:最优五档即时成交剩余撤销
- 5:全额成交或撤单
2. 不同市场的支持情况
不同的交易所和板块对市价委托类型的支持是不同的,您必须根据股票代码选择合法的 market_type:
- 上证非科创板股票:仅支持参数 1、4。
- 上证科创板股票:支持参数 0、1、2、4。
- 深证股票:支持参数 0、2、3、4、5。
3. 重要注意事项
- 默认行为:如果
limit_price(限价)和market_type(委托类型)都不传,系统会默认取当前最新价进行委托。 - 优先级:如果
limit_price和market_type都传入,系统将以market_type(市价委托)为准。
4. 代码示例
def initialize(context):
g.security = '600570.SS' # 上证非科创板股票
set_universe(g.security)
def handle_data(context, data):
# 示例 1:以系统最新价委托(不传 limit_price 和 market_type)
margin_trade(g.security, 100)
# 示例 2:以最优五档即时成交剩余撤销委托(上证非科创板支持 4)
margin_trade(g.security, 200, market_type=4)
# 示例 3:如果交易深证股票,可以使用其他类型,例如全额成交或撤单(5)
# margin_trade('000001.SZ', 100, market_type=5)
总结:选择 market_type 时,首先确认您的股票是上证主板、科创板还是深证股票,然后从该板块支持的列表中选择符合您交易策略逻辑(如是否允许部分成交、剩余如何处理)的参数值。