6.15K 浏览
0

我在程序中尝试:交易所简称+交易所套利合约代码出现错误,

SYMBOL = 'DCE.SP c2005&c2009'  # 合约代码
("获取 %s 的行情超时,请检查客户端及网络是否正常,且合约代码填写正确" % (symbol))

请问:
1.天勤SDK是否支持套利合约
2.如果支持应该怎样填写套利合约代码

我在帮助文档中找过没有找到,请教各位!
west 已回答的问题 2020年2月10日
0

请看关于回测的文档说明部分:

https://doc.shinnytech.com/tqsdk/latest/usage/backtest.html

以及注意最下面部分:“对 组合合约 进行回测时需注意:只能通过订阅 tick 数据来回测,不能订阅K线,因为K线是由最新价合成的,而交易所发回的组合合约数据中无最新价”

west 编辑答案 2020年2月10日
0
from tqsdk import TqApi
 api = TqApi()
 quote = api.get_quote("DCE.SP c2005&c2009")
 print(quote)
 api.close()

tqsdk支持交易所标准套利组合,但是需要注意的是因为标准套利组合交易所并不提供最新价字段,所以如果是通过get_kline方式获取组合的话是不能自动生成k线,会显示获取超时,目前支持通过get_quote获取对应信息。

tq2021 发表新评论 2023年3月8日

谢谢回复,您的代码没问题可以返回套利合约最后的一个数据。
我添加了测试和图形化以及开仓条件就出现我原来描述的问题,代码如下:
from tqsdk import TqApi, TqBacktest
from datetime import date
api = TqApi(backtest=TqBacktest(start_dt=date(2019, 9, 10), end_dt=date(2020, 1, 10)), web_gui=True)
quote = api.get_quote(“DCE.SP c2005&c2009”)
position = api.get_position(“DCE.SP c2005&c2009”)
while True:
if quote.last_price < -50 and position == 0:
Order = api.insert_order(symbol='DCE.SP c2005&c2009', direction='BUY', offset='OPEN', volume=1)
print(quote)
api.close()

不能够这样用么

代码在这里不能排版,见谅

同样的原因是因为交易所作何并未给出最新价字段所以kline无法生成,同样你看quote字段中也是没有last_price字段的,你可以根据bid_price或ask_price做判断

bid_price1 或者ask_price1

0

支持,天勤中的合约代码和交易所一致,你的合约代码是正确的,否则报出的错误将是“合约代码不存在”,应该是网络问题,多连接几次,看是否能成功

west 已回答的问题 2020年2月7日