Skip to content

逆回购下单接口怎么调

这是工程记录。只写函数名、代码怎么填、时段和数量单位。不写收益承诺,不比较哪边划算。不构成投资建议,不代操盘。

手册: orderpassorder

代码怎么写

常见 1 天品种(这是合约代码,不是推荐):

市场QMTPTrade
204001.SH204001.SS
131810.SZ131810.SZ

更长周期的代码各券商列表可能略差,以下单界面能搜到的为准。

数量:最小一般是 1000 元 = 10 张(1 张 100 元)。不是 100 股那一套。价格最小价差常见 0.005。

时段:不少通道把隔夜品种放在 15:00 附近做。具体开闭市以交易所和你柜台为准,先打时钟再调函数。回测几乎验证不了柜台。

PTrade:order,数量为负

python
def initialize(context):
    g.repo = '131810.SZ'   # 或 204001.SS
    g.done = None
    run_daily(context, after_close_repo, time='15:00')

def after_close_repo(context):
    d = context.current_dt.strftime('%Y%m%d')
    if g.done == d:
        return
    if not is_trade():
        return
    hm = context.current_dt.strftime('%H%M')
    if hm < '1500':
        log.info('未到时段 %s', hm)
        return
    # 10 张 = 1000 元。正数是买股票,逆回购文档要求 amount 为负
    oid = order(g.repo, -10)
    log.info('repo order %s', oid)
    g.done = d

order_target 文档写了不支持逆回购。快照为空时不传限价会废单。

QMT:passorder

python
#coding:gbk
def init(C):
    C.acc = '你的资金账号'
    C.done = ''

def handlebar(C):
    if not C.is_last_bar():
        return
    from datetime import datetime
    now = datetime.now()
    d = now.strftime('%Y%m%d')
    hm = now.strftime('%H%M')
    if C.done == d:
        return
    if hm < '1500' or hm > '1505':
        return
    code = '131810.SZ'   # 或 204001.SH
    lots = 10            # 张;先和柜台确认单位
    ret = passorder(24, 1101, C.acc, code, 5, -1, lots, 'repo', 2, '', C)
    print('repo', code, lots, ret)
    C.done = d

opType=24orderType=11011123 以你客户端「国债回购」页的说明为准,版本不同会差。返回不等于成交,用 get_trade_detail_data 对账。

  1. 后缀:QMT 沪市 .SH,PTrade .SS
  2. 数量不是 100 的整数倍,是 10 张起。
  3. 权限没开、账户类型不对,函数能调用、柜台拒。
  4. 不要在每根 K 线里调。用日期戳。
  5. 不写「年化多少」「稳过理财」。费率、占款、节假日利息以合同为准。

相关:API 查询 · 热门问题 · 关注 / 知识星球

完整讨论和附件在 知识星球 Kimi量化研究所