3.84K 浏览
0

请问有没有方法可以设置offset自动选择平今或平昨的顺序?

或者有没有可以拿到一个已成交单是否属于今仓或昨仓的方法?

因为我需要使用insert_order(),但是没有一个好的方法判断持仓是今仓还是昨仓,所以碰到上期品种会有点麻烦。

lookis 已回答的问题 2020年8月18日
1

在不用TargetPosTask工具,需要手工控制的情况下,通过已成交单是否属于今仓还是昨仓的方法其实就是用成交时间和当前交易日开盘时间做对比,因此代码如下:

from tqsdk.datetime import (_get_trading_day_from_timestamp,
                            _get_trading_day_start_time)
from tqsdk.tafunc import time_to_datetime, time_to_ns_timestamp
 #先计算出cur_dt, 无论是用 get_quote还是 klines里的时间
trading_start_time = time_to_datetime(
            _get_trading_day_start_time(
                _get_trading_day_from_timestamp(time_to_ns_timestamp(cur_dt))))
#然后在这里拿到 trade 对象,无论是直接 get_trade 还是从数据库里
if time_to_datetime(trade['trade_date_time']) < trading_start_time:
#昨仓
else:
#今仓

lookis 发表新评论 2020年8月19日

谢谢,我最后是通过自己本地记录持仓与历史持仓记录的逻辑判断昨今仓的

我也是这样做的……接口里没历史数据真是不方便啊~还得用数据库

0

https://doc.shinnytech.com/tqsdk/latest/reference/tqsdk.lib.html?highlight=%E4%BB%8A%E4%BB%93

这个文档你看下,应该能解决你的问题

李思恒 发表新评论 2020年8月20日

这个不行,我需要用insert order,谢谢你

是我昨天没理解对问题,不好意思。你可以试试我们的postion功能也可以判断,前面看到你说已经找到方法了