逆回购下单接口怎么调
这是工程记录。只写函数名、代码怎么填、时段和数量单位。不写收益承诺,不比较哪边划算。不构成投资建议,不代操盘。
代码怎么写
常见 1 天品种(这是合约代码,不是推荐):
| 市场 | QMT | PTrade |
|---|---|---|
| 沪 | 204001.SH | 204001.SS |
| 深 | 131810.SZ | 131810.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 = dorder_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 = dopType=24、orderType=1101 或 1123 以你客户端「国债回购」页的说明为准,版本不同会差。返回不等于成交,用 get_trade_detail_data 对账。
坑
- 后缀:QMT 沪市
.SH,PTrade.SS。 - 数量不是 100 的整数倍,是 10 张起。
- 权限没开、账户类型不对,函数能调用、柜台拒。
- 不要在每根 K 线里调。用日期戳。
- 不写「年化多少」「稳过理财」。费率、占款、节假日利息以合同为准。
完整讨论和附件在 知识星球 Kimi量化研究所。
