最近在tbquant上开发策略的过程中遇到一些问题,麻烦老师们解答下。
1、如果要把所有的具体合约转为主力合约,比如:字符串“rb2504.SHFE”转为字符串"rb888.SHFE"。
我打算这么做:判断一下是一个字母开头还是两个字母开头,一个字母开头的就保留这个字母,再接"9888"和交易所简写;两个字母开头的就保留这两个字母,再接"888"和交易所简写。
不知道这样做,是否精确、完备、且严格?
2、听说TB中并不支持正则表达式,字符串替换这些事情在支持正则表达式的编程语言中非常好做。我看官方文档,TB是有pythonSDK的。请问:TB的pythonSDK使用有什么限制么?如果没什么限制(特别是数据调用、对TB基础数据的读写等等与TBquant客户端基本一样的话),那以后直接使用TB的pythonSDK无疑会有更多的灵活性与扩展性。
3、另外,想问个题外话:TB自带的TBL语言是图灵完备的么?
读帮助文档的时候碰巧遇到一个解决您的问题的代码例子,分享下
//根据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];
}
具体看这里
刚开始尝试使用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的功能,主要是在哪些方面有限制呢?是数据量有限制还是很多量化功能都被限制了?