直接用程序target_pos.set_target_volume(-10)就可以了。targetpostask函数设置的数值就是你想要持仓的手数,对实现过程不感知。正常情况函数会先平仓再开仓。还有问题的话也可以加入我们的qq群611806823随时题问
TqApi中没有get_trading_dates这个方法,可以检查一下日志上说的出错的代码行
是用的回测模式吗,可以看看是不是回测时间的范围就只有17天,或者给出一个最小复现代码看看
可能是合约才刚上市,方便的话可以把问题描述再具体一些或者给一个可最小复现的代码
可以根据TargetPosTask的price参数调整下单方式,可以参考文档https://doc.shinnytech.com/tqsdk/latest/reference/tqsdk.lib.html#tqsdk.TargetPosTask 然后比较复杂一些的可以用更进阶一些的下单类TargetPosScheduler,参考文档https://doc.shinnytech.com/tqsdk/latest/reference/tqsdk.lib.html#tqsdk.TargetPosScheduler里面可以通过time_table这个参数自定义下单时间下单方式等...
这个与产品的K线设计有关,我们的K线不以单一合约的开盘时间或结束时间相关,是用格林兰时间为初始时间戳和设置的K线周期来作K线,比如做一根周期为4小时的K线,分到的时间段有0-4、4-8、8-12、12-16、16-20、20-0点,在4-8、16-20中没有行情数据那这段K线就不保留。第二点是天勤的回测是只在开始和结算的时间点生成和更新K线数据,比如在8-12这个时间段就只有8和12这个时间点会有K线数据,就会导致不在交易时间段内。具体可以参考文档https://www.shinnytech.com/blog/why-our-kline-different/...
收到预计第一个季度会修复这个问题。目前天勤上开盘前会是上个交易日的主力合约,等开盘后就会更新了
目前的回测机制是这样的,主要是因为回测时行情不是实时变化的,取的委托单的价格感觉会稍微合理些
回测模式下 k线会在刚创建出来时和结束时分别更新一次,可以参考下文档tqsdk.TqBacktest - 策略回测 — TianQin Python SDK 3.7.6 文档
可以取消再创建,需要targetpostask.cancel调用这个方法的时候不是直接取消的,需要通过wait_update把取消指令发送到服务端同时会撤回targetpostask未成交的委托单。具体可以参考下文档tqsdk.lib...
合约代码可以再检查一下
具体的外盘和内盘是指什么呢,可以再详细描述一下吗
tqkq是天勤快期模拟账户类,快期模拟的账户和交易信息可以在快期专业版, 快期v2, 快期v3, 快期APP查看;tqsim该类实现了一个本地的模拟账户,账号资金交易数据都是一次性的,在程序结束后就重置了。是遇到什么问题呢可以再具体一下
小助手底层是基于deepseek去实现的,等deepseek修复好了就能用了
从问题上看可能是用get_kline_serial没有指定数据,这个函数默认是只获取两百根k线,可以通过指定入参去修改
回测模式下quote按照以下规则更新:if 策略程序中使用了这个合约的tick序列: 每次tick序列推进时会更新quote的这些字段 datetime/ask&bid_price1至ask&bid_price5/ask&bid_volume1至ask&bid_volume5/last_price/highest/lowest/average/volume/amount/open_interest/price_tick/price_decs/volume_multiple/max&min_limit&market_order_volume/underlying_symbol/strike_price...
可能是下载的tqk版本比较老了,可以更新到最新版再试试
从代码上看第一是future_obj.api.is_changing这个调用比较奇怪,方便的话可以提供下最小复现代码,第二是你可能跑的是回测模式,所以更新时间就到24年12月16日,可以再检查一下这个地方
普通情况下没有低成本获取交易所准确实时时间的方案。可以试试比较接近的时间比如订阅主力合约返回里面会有datetime的字段是行情从交易所发出的时间
下载超时了,可以试试指定源去下载会更快一些