3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 中进行担保品买卖(margin_trade)时,若希望使用“对手方最优价格”进行市价委托,market_type 参数应填 0。
根据 PTrade API 文档中 margin_trade 函数的说明,market_type 参数对应的值如下:
虽然 market_type=0 代表对手方最优价格,但在实际使用时需注意交易所和板块的支持情况(根据文档描述):
market_type=1(最优五档即时成交剩余转限价)作为替代。以下是一个在 handle_data 中使用 margin_trade 以“对手方最优价格”买入担保品的示例:
def initialize(context):
# 设置股票池,例如一只深证股票
g.security = '000001.SZ'
set_universe(g.security)
def handle_data(context, data):
# 获取当前持仓
position = get_position(g.security)
# 示例:如果没有持仓,则买入 100 股
if position.amount == 0:
# 使用 margin_trade 进行担保品买入
# amount 为正数表示买入
# market_type=0 表示使用对手方最优价格
margin_trade(g.security, 100, market_type=0)
log.info("以对手方最优价格买入担保品: %s" % g.security)
Q: margin_trade 函数支持哪些业务类型?
A: margin_trade 仅用于担保品买卖(即使用自有资金买入股票作为担保品,或卖出持有的担保品股票)。如果是进行融资买入(借钱买股)需使用 margincash_open,融券卖出(借股卖出)需使用 marginsec_open。
Q: 如果我不填 market_type 参数会怎样?
A: 如果 limit_price(限价)和 market_type(市价类型)都不传,系统默认取当前行情的最新价进行限价委托。如果传入了 market_type,则以市价委托为准。
Q: 上证主板股票想用市价单,推荐用哪个参数?
A: 对于上证非科创板股票,文档推荐支持的是 1(最优五档即时成交剩余转限价)和 4(最优五档即时成交剩余撤销)。通常 market_type=1 是比较常用的替代方案,因为它能保证在成交不完时转为限价单继续挂单,避免撤单。