TB交易开拓者模型公式编写策略常见问题

TB公式包括开拓者量化平台(简称TBQuant)模型公式编写常见问题
2021年3月20日 10:56
浏览量:0
收藏

交易开拓者模型公式编写策略常见问题

我们把客户在编写公式的过程中常常会出现一些错误,本章节我们把一些出现频率较高的问题集中
起来,以 Q & A 的形式整理出来,以供大家参考。 

Q1:为什么公式的开平仓不受条件的限制,每一个 K 线上都有开、平仓的动作? 
A1:在 if( ......)条件判断语句的后面不小心加上分号,就会导致后面的执行不受条件的控制了。注
意一定要把 if(......); 后面这里的“;”去掉。 

Q2:自己建的公式没有编译,但在公式编辑器中不能编译啊,编译按钮是灰的,该怎么做? 
A2:您只需要在公式代码中任意位置加入一个空格,然后再删掉这个空格,就可以进行编译了。这
是因为该公式 以前被保存了过,如果代码没有被修改过,就不能触发进行校验保存的编译。 

Q3: AverageFC 和 Average 有什么区别? 
A3: 您可以从以下三个方面了解此两类函数的区别: 
1、Average 和 AverageFC 都是内建的用户函数,目的都是用来求 N 个 Bar 以来的平均值, 您
可以直接看到实现的代码。 
2、AverageFC 是指 FastCalculate,即快速计算。当这两个函数的第二个参数,即 N 个 Bar 是常量
时,使用 AverageFC,提高计算效率。当 N 是不确定的变量时,则必须使用 Average,否则会出现
计算问题。 
3、系统里面类似的用户函数还有 Summation 和 SumamtionFC,Highest 和 HighestFC,Lowest
和 LowestFC 等。 

Q4:为什么出现最终目标文件编译错误? 
A4:目前发现有以下几种情况会导致这个问题出现: 
1、有中文字符的存在,特别是一些细节的不容易发现的中文标点符号。 
1、公式管理器中存在未通过编译的,有严重逻辑错误的公式,需删掉这些有错误的公式。 
2、用了一些 C++的关键字来命名变量,比如 switch,case,int,Public,protected,class,long,double....
有好几百个,可以考虑加上一些前缀,比如 My****,这样就可以了。TradeBlazer 公式开发指南 公式编写常见问题 Q&A


Q5:总是报“锁定编译目标文件超时”是什么原因? 
A5:有两种可能: 
1、已经打开的图表调用了技术指标或交易指令,并且行情更新较快,导致编译时覆盖旧文件失败。
这个时候,您可以关闭先所有的图表窗体在试试看。 
2、可能是公式的写法有问题,是系统现在还不能识别的错误。您可以另外写一个简单的公式看看
能不能编译通过,如果能通过,那就证明是这个公式有问题。如果不是,那我也不知道具体原因。
(您可以考虑导出您自己的公式,然后删掉安装目录下 User 目录下您所在用户名的 formula,然后
再复制一个干净的 formula 进去。) 

Q6: 为什么已经设置了启动多帐户全自动交易,结果只有一个帐户进行了交易的动作? 
A6: 如果是 A_SendOrder 函数所写的发单指令,那是是不可以设置进行启动多帐户自动交易的。
您可以多开几个图表窗口,同一个应用公式分别单独对应一个交易帐户设置自动交易即可。 

Q7:同一品种不同超级图表上的交易指令是否相互作用? 
A7:不会相互作用。现在即使同一个超级图表上,指令之间都不会相互作用的。 

Q8:Time 与 CurrentTime 的区别在于哪里? 
A8:Time 是 Bar 数据的时间,在交易开拓者中,是以当前 Bar 所开始的那个时间做为 bar 的 Time,
每一个 Bar 上的 time 是确定且唯一的。如果是日线的 Bar 上,Time 则是为 0。 而 CurrentTime
则是电脑操作系统的时间,基本上与北京时间是接近一致的。 

Q9:如何记录开仓价格? 
A9:有多种方法可以尝试,下面例出几种方法以供参考: 
1. 使用现有的系统函数:entryprice 、lastentryprice、 avgentryprice; 
2. 声明一个序列变量,在开仓时,将开仓价格赋值给此序列变量,并将此值传递下来; 
3. 可以使用全局变量记录下开仓价格,以备随时取用。 

Q10:我启动多帐户的自动交易,为什么只有一个帐户持行了交易? 
A10:首先检查确认是否有关联多个交易帐户且这些帐户都处于联机状态。其次,查看公式代码里
发出指令的函数,如果是使用 A_sendorder 所编写的公式,则不可以启动多帐户自动交易。您可以
打开多个超级图表,调用同一个合约同一个公式策略,再分别关联不同的交易帐户进行自动交易即
可。

交易开拓者·TBQuant版

开拓者量化平台(简称TBQuant)是深圳开拓者科技有限公司根据多年行业领先的程序化交易平台设计开发经验,结合专业投资者主观手动交易的需求,开发的一款支持证券、期货、外盘市场的专业量化分析交易软件。该软件功能强大,依托其准确、快速、稳定的实时云行情和完整的全市场历史数据,以及涵盖基本面、宏观和金融统计数据的可自定义基础数据,既提供了策略编写、研究优化、回测评估、自动交易、风险监控等一整套量化服务,又能满足专业投资者实时看盘、多种交易模式手动、半自动下单的要求,还提供了多账户管理、策略雷达、算法交易、账户分析等多种工具,是交易开拓者十年磨一剑匠心打造的又一利器。
注意:
1.建议使用Administrator登录使用操作系统,安装路径不能带有中文字符, Windows登陆用户名不能中文。
2.因为数据类型的定义方式替换为泛型,begin/end机制替换为onbar,所以之前老版本的FBK公式代码格式上都需要做出转换。这个转换在新版本导入FBK公式的时候,有个默认勾选的源码泛型转换的选项。注意不要取消。
3.新的版本增加了自动后复权/自动移仓换月/自定义合约等等功能.

首页    程序分析    TB交易开拓者模型公式编写策略常见问题