问题描述
/
解决方案
在 ptrade 平台中,order_value、order_target 和 order_target_value 函数确实不支持逆回购交易。
如果需要进行国债逆回购交易,您应该使用 order(限价/市价按数量委托)或 order_market(按市价进行委托)函数。
1. 使用 order 函数进行国债逆回购
order 函数支持交易场景的逆回购交易。使用时需要注意以下几点:
- 委托方向:逆回购本质上是借出资金,因此委托方向必须为卖出,即
amount参数必须为负数。 - 最小申购金额:逆回购最小申购金额为 1000 元(对应 10 张),因此
amount的绝对值必须大于等于 10(即amount <= -10),否则会导致委托失败。 - 价格精度:国债的价格精度为小数点后三位,如果使用限价单(传入
limit_price),请注意价格精度。
代码示例:
def initialize(context):
# 设置操作的国债逆回购代码,例如上交所1天期国债逆回购 204001.SS 或深交所 131810.SZ
g.security = '131810.SZ'
set_universe(g.security)
def handle_data(context, data):
# 示例:以系统最新价卖出(借出资金)10张(即1000元)深交所1天期国债逆回购
order('131810.SZ', -10)
# 示例:以指定年化利率(如 2.500%)卖出 100张(即10000元)
# 注意国债价格精度为3位小数
order('131810.SZ', -100, limit_price=2.500)
2. 使用 order_market 函数进行国债逆回购
order_market 函数同样支持逆回购交易,规则与 order 类似:
- 委托方向:卖出(
amount为负数)。 - 最小申购金额:1000元(10张),
amount <= -10。 - 市价类型:必须传入
market_type参数(如深交所支持 0, 2, 3, 4, 5)。
代码示例:
def initialize(context):
g.security = '131810.SZ'
set_universe(g.security)
def handle_data(context, data):
# 示例:以对手方最优价格(market_type=0)卖出 50张(即5000元)深交所1天期国债逆回购
order_market('131810.SZ', -50, 0)
总结
做国债逆回购时,请牢记:用 order 或 order_market,amount 传负数,且绝对值 $\ge$ 10。