关于具体主力合约转换等等三个问题

最近在tbquant上开发策略的过程中遇到一些问题,麻烦老师们解答下。


1、如果要把所有的具体合约转为主力合约,比如:字符串“rb2504.SHFE”转为字符串"rb888.SHFE"。

我打算这么做:判断一下是一个字母开头还是两个字母开头,一个字母开头的就保留这个字母,再接"9888"和交易所简写;两个字母开头的就保留这两个字母,再接"888"和交易所简写。

不知道这样做,是否精确、完备、且严格?


2、听说TB中并不支持正则表达式,字符串替换这些事情在支持正则表达式的编程语言中非常好做。我看官方文档,TB是有pythonSDK的。请问:TB的pythonSDK使用有什么限制么?如果没什么限制(特别是数据调用、对TB基础数据的读写等等与TBquant客户端基本一样的话),那以后直接使用TB的pythonSDK无疑会有更多的灵活性与扩展性。


3、另外,想问个题外话:TB自带的TBL语言是图灵完备的么?

主力合约问题
请教各位程序化高手,指数映射主力合约 和 具体的主力合约 哪个整体上效果要好点。
在tbquant中如何用写代码对应的具体主力合约?
主力合约问题
关于主力合约更换的问题
关于在连续合约上映射主力合约交易,sell交易时候,输入open价问题?
关于主力合约换月的问题
关于主力合约列表
主力合约映射问题
连续合约与主力合约映射问题

读帮助文档的时候碰巧遇到一个解决您的问题的代码例子,分享下

//根据k线图表data[0]的属性获取其对应的次连续合约代码
string a =SymbolType;
string b;
StringSplit(Symbol,".",aaa);

if(len(a) == 1)
{
  b = a+"9777."+aaa[1];
}
else if(len(a) == 2)
{
  b = a+"777."+aaa[1];
}

具体看这里

https://tbq3.tbquant.net/helper?product_id=991&keyword=3507&content_id=2189&selectedkey=2520&type=article#%E5%9F%BA%E4%BA%8Ek%E7%BA%BF%E5%9B%BE%E8%A1%A8%E4%B8%AD%E6%9C%9F%E8%B4%A7%E5%93%81%E7%A7%8D%E8%87%AA%E5%8A%A8%E8%AE%A1%E7%AE%97%E5%8E%86%E5%8F%B2%E4%BB%B7%E5%B7%AE%E4%B8%8E%E6%97%A5%E5%86%85%E4%BB%B7%E5%B7%AE%E8%B5%B0%E5%8A%BF%EF%BC%8C%E5%B9%B6%E5%81%9A%E7%9B%B8%E5%BA%94%E7%BB%9F%E8%AE%A1

刚开始尝试使用TB, 一些看似简单的任务确实不如Python那么方便,相信官方会根据广大用户的需要慢慢改进。针对您的问题个人觉得思路是没问题,之前用Python用这样的思路做过合约格式转换,没出现毛病。

您提到官方文档说有pythonSDK, 能把包含这个信息的官方文档的页面链接分享一下么?

在官方文档主页就有,您去看看。

左侧边栏拖到最下面。


是啊,如果有通用的编程语言能和TB无缝互联,那就非常强大、非常好用了。

谢谢,我看了您的帖子意识到有这个东西后就翻到了。 我是直接看的最新TB Quant3的帮助文档,没有看之前版本的,TB3的文档里没有这个Python SDK.

顺便贴下TB3的帮助文档地址  https://tbq3.tbquant.net/helper

SymbolType可以直接返回字母,然后自行添加888,exchangecode返回交易所编码

好的,谢谢。

有些添加888不行,会出现无效合约。比如a888.XXX,有时候要添加9888再加交易所编码才行。

1、目前,这么转换是可以的。精确、完备、严格是有条件的,条件变了,再完备的也得重新完备。做好当下,未来有变化,再调整

2、有限制

3、不是

好的,谢谢哈。

我也是在编程的过程中发现TBL应该不是图灵完备的了,所以才发帖问问。


那么,对于第二个问题,使用pythonSDK来调用TB的功能,主要是在哪些方面有限制呢?是数据量有限制还是很多量化功能都被限制了?