开拓者期货期权程序化系统交易论坛

标题: TBV4公式升级说明 [打印本页]

作者: nopain    时间: 2011-3-1 16:01:37     标题: TBV4公式升级说明

经过很长一段时间的开发和调试工作,TBV4终于快要正式发布了,感谢各位朋友一路以来的关注和支持,这次升级主要是公式平台的升级,修改可谓天翻地覆,杯具的就是,由于改动太多,没法直接兼容TBV3的公式以及导入导出文件,请大家谅解!

一、公式升级取消的功能点:
1、内建平仓指令:
    已删除8个内建平仓函数,准备等新版本稳定后以用户函数的形式提供类似功能。
2、保证金不足强平机制:
    旧版公式在测试和实际交易中,如果出现保证金不足的情况,会产生强制平仓的指令。考虑到保证金不足是以虚拟资金计算,如果设置不正确可能会导致实盘平仓的严重后果,所以取消该功能。
3、延迟发单机制:
    旧版通过交易函数中使用delay参数达到延迟到下一个Bar开盘发单的效果,在实际应用中,通过Delay参数只能使用NextOpen等未来函数来获取价格,整个设计过于复杂。考虑到可以通过获取上一个Bar的条件值来进行判断,在当前Bar开盘交易这种方法替代延迟发单的机制,决定取消该功能。
4、公式类型调整:
    用户字段,技术指标,K线型态,特征走势,交易指令这5种类型公式统一为公式应用,公式应用既可以输出线条,也可以进行交易。
5、公式的条件表达式取消无效值传递机制:
    旧版本中,如果 a = 无效值 , b = 100, 则 a + b = 无效值。+-*/等数学运算及> < 等逻辑运算表达式都支持无效值传递机制。
    新版本中,如果 a = 无效值,b = 100,则 a + b <> 无效值。所以不能再用旧版本的方法来进行无效值判断。
   进行这种调整是因为旧版本对所有的运算符进行了重载,但这种重载浪费大量的计算时间,导致公式执行效率低下,为了提高公式的运行效率,决定取消这种机制。
   在旧版本系统中,可能有以下类似的写法:
   bInBoardRange = (Open < Q_LowerLimit + 10*MinMove*PriceScale) Or (Open > Q_UpperLimit - 10*MinMove*PriceScale);
   在不是当天的Bar上,因为Q_LowerLimit和Q_UpperLimit是无效值,因此整个表达式都是无效值。bInBoardRange的值为False,所以能够正常使用。
   同样的代码,在新版中,由于没有无效值的传递机制,在不是当天的Bar上,bInBoardRange的值可能是True,系统不能正常的运行。
   为了处理这种情况,需要进行有效性判断,大致代码如下:
   bInBoardRange  = false;
   If(Q_UpperLimit != InvalidNumeric && Q_LowerLimit != InvalidNumeric)
   {
      bInBoardRange = (Open < Q_LowerLimit + 10*MinMove*PriceScale) Or (Open > Q_UpperLimit - 10*MinMove*PriceScale);
  }

二、公式升级增加的功能点:
1、叠加商品可以进行交易和测试:
    旧版本只能使用Buy(1,MyPrice);这样的语句进行交易,新版本可以使用Data1.Buy(1,MyPrice),以及Data1.MarketPosition这样的函数获取交易状态。大部分函数都支持使用Data#.前缀进行调用。
   这样可以方便的实现多个商品的,单个系统的组合测试,可以测试套利和对冲系统。
2、PlotNumeric,PlotString,PlotBool画线输出函数增加定位点参数:
    以PlotNumeric距离,其他类似,PlotNumeric的前两个参数保持不变,第三个参数修改为定位点参数,默认参数为0,其他的参数和旧版一致。
    当我们使用定位点函数时,对于PlotNumeric,将输出一条线段,连接定位点和输出值的点;PlotBool和PlotString将在指位置画出相应的内容。
3、增加投资组合函数:
    增加portfolio_XXX类型的函数,用户获取当前图表,当前公式应用对应的投资组合的状态和性能信息,原CurrentCapital用Portfolio_CurrentCapital代替。
4、序列变量自动传递最新值:【new】
     旧版本中为了序列变量的上一个Bar值,需要编写语句 MyVar = MyVar[1];
     新版本中变为自动传递,即可以省略这条语句,但随之带来的变化就是,序列变量的默认值,只会在第一个Bar有效。
5、Bar数据和序列变量在回溯越界时取值调整:【new】
     旧版本中,Bar数据和序列变量,序列参数等值,当回溯的索引越界是,即Value[nOffset]的nOffset > CurrentBar时,会是无效值。
     新版本中,这种情况下会用该数据源的第1个值代替。
6、叠加数据时补齐数据方式:【new】
     多个商品进行叠加时,可能在数据的前段出现某个商品有数据,但其他商品无数据,旧版本会使用无效值填充。
     新版本使用第一个有效的Bar的Open填充高开低收,成交量设置为0,持仓量设置为第一个有效Bar的持仓量。
7、公式应用全局变量扩容:
    单个公式应用的全局变量从50个扩充500个。
8、单个图表内多个公式之间的相关性:
   旧版本中,单个图表中的多个交易指令会相互影响,形成干扰。虽然利于将开平仓等指令进行模块化,但不利于利用资源。
   新版本中,单个图表中的多个公式应用就像以前的多个技术指标一样,不再有相关性。这样就可以很容易的单个图表驱动多个交易系统,节省电脑资源。
9、公式编译提速:
   调整旧版本所有公式联编的架构,客户修改用户函数时,需要重新编译所有的自定义公式应用,编译公式应用时,只需要编译当前公式应用即可。
   如果客户完全了解用户函数和公式应用的调用关系,在开发调试用户函数过程中先选择单独编译用户函数,等用户函数算法稳定之后,再全部编译一次,这样可以大幅提升系统开发速度。
10、交易策略参数优化提速:
   通过调整价格,公式运行速度得到近10倍的提升,并增加了多线程测试,在性能强劲的电脑上,可以达到旧版本几十倍的测试速度。可以考虑攒钱买32核电脑进行测试了。
   另外,交易策略的参数优化增加了参数淘汰率,要使用淘汰算法,需要将重要的参数放在前面,测试完一个参数之后,按比例淘汰较差的参数。提升测试效率。
11、投资组合测试报告:
   单个图表可以支持多个交易系统的执行,同时我们增加了对多个交易系统的测试报告组合分析。方便评估多个系统的组合效果。
12、公式导入导出中增加无源码模式:
    对于用户的公式应用,考虑到安全问题,我们增加了无源码加密的方式,将执行文件直接导入导出,方便交易系统的应用。为了控制时间和权限,用户可以在公式代码中增加时间验证和账户验证,这样编译后的公式在应用过程中再无后顾之忧。
13、讯号消失的处理机制调整:
    旧版本中,如果出现系统的讯号消失,会反复开仓,导致头寸完全混乱,并可能出现巨大的亏损。
    新版本中,对于用户操作失误写出的讯号消失的系统,第一次发单之后,不在重复发单,当出现讯号消失时,还会弹出提示,提醒用户修改系统代码。
14、循环代码体内调用序列函数的支持:
    函数代码内有使用序列变量或序列参数进行计算的称为序列函数,旧版本中在循环体内调用序列函数会出现计算出错的问题,新版本对于这种情况进行了修复。
    但要确保这种写法的正确执行,必须保证每个Bar,这个循环体的执行次数都是一样的。否则仍然会出现错误。同样的原理,If条件语句里面不能使用序列函数进行计算。
   下面是一个错误写法的例子:
   If(MarketPosition!=1 && CrossOver(Avg1,Avg2))
   {
       Buy....   
   }
   因为MarketPosition在等于1的情况下,会导致后面的语句不被执行,这样,就不是每个Bar都调用了该序列函数。就会出现数据计算出错。
   正确的写法如下:
    MyBuyCondition = CrossOver(Avg1,Avg2);
   If(MarketPosition!=1 && MyBuyCondition )
   {
      Buy...
   }
15、函数序列参数的输入值验证:
     旧版本中,CrossOver这样的函数,因为两个参数都是序列参数,只能使用两个序列变量,比如Avg1,Avg2作为参数进行传入。不能使用CrossOver(Close,1000)这样的写法。为此,旧版本中还增加了CrossOverHor这样的函数来处理这种情况。
     新版本中,可以直接传入普通值进行计算,甚至传入数据的回溯值。旧版本中CrossOver(Close[1],Avg1);这样的写法是正确的,但CrossOver(Close[1],Avg1[1])则是错误的,新版本则可以支持后面的写法。
16、用户函数中可以使用所有系统函数:
    这样可以很方便的封装交易指令和算法。
17、讯号发生的时间如果不在图表最后Bar时间的附近,将会被忽略。
    日线及以上周期要求讯号发生的日期和最后Bar的日期相同;
    1分钟及以上周期要求讯号发生的时间和最后Bar的时间误差不超过5分钟。
    Tick和10秒周期要求讯号发生的时间和最后Bar的时间误差不超过1分钟。
     通过这个时间限定,防止最后Bar上较早前的讯号在重新启动时发单。
18、使用引用参数的函数【new】
    旧版本在使用引用参数时可以传入序列变量,普通变量和引用参数值。
    新版本在使用引用参数时只能传入普通变量和引用参数值。
   

公式升级,改动较多,未能一一列出,等待继续完善!
作者: dengwu    时间: 2011-3-1 16:17:26

好期待新版本啊  ,
作者: yml0396    时间: 2011-3-1 17:09:46

非常需要:
1、叠加商品可以进行交易和测试:
    旧版本只能使用Buy(1,MyPrice);这样的语句进行交易,新版本可以使用Data1.Buy(1,MyPrice),以及Data1.MarketPosition这样的函数获取交易状态。大部分函数都支持使用Data#.前缀进行调用。这样可以方便的实现多个商品的,单个系统的组合测试,可以测试套利和对冲系统。
3、增加投资组合函数:
    增加portfolio_XXX类型的函数,用户获取当前图表,当前公式应用对应的投资组合的状态和性能信息。
只是希望TBV4比以前的版本皮实点,总感觉TB很好甚至是精美,可有点脆弱不皮实,也可能精美复杂的东西都不皮实,是我的要求太高了吧。
作者: CFXQM    时间: 2011-3-1 17:43:05

期待新版本。
“最终目标文件编译错误”这个问题有没有解决?
作者: nopain    时间: 2011-3-1 17:49:34

回复 4# CFXQM

应该是解决了
作者: sq1974    时间: 2011-3-1 21:54:28

升级后,老版本的开拓者还能用吗
作者: liq77    时间: 2011-3-2 11:19:16

本帖最后由 liq77 于 2011-3-2 11:20 编辑

请问在超级图表的贴页面设置中增添“线标序号”了吗?
即当前这根K线是从头数过来的第几根?——与当前K线的最高价最低价等并列显示在图表上方...
作者: zhaopengtao    时间: 2011-3-2 13:14:24

什么时候发布啊?
作者: nopain    时间: 2011-3-2 14:30:20

回复 7# liq77

没有增加这样的功能,如果需要,您可以在公式中添加一行
Commentary("Bar索引="+Text(CurrentBar));
作者: CFXQM    时间: 2011-3-2 14:56:21

希望正式版出来时,能有一个完整的公式升级说明。
作者: Edmund    时间: 2011-3-3 09:55:17

解决了很多历史问题 什么时候放出新版本?
作者: Edmund    时间: 2011-3-3 10:01:24

最新版本的帮助文件能否先行放出?
作者: nopain    时间: 2011-3-3 10:43:37

最新版本的帮助文件能否先行放出?
Edmund 发表于 2011-3-3 10:01


帮助文件还在更新中~~~
作者: f600624    时间: 2011-3-3 10:53:12

希望新版出来后和老版至少有比较长时间的共存期,不然来不及修改公式了。
作者: ayan2010    时间: 2011-3-3 13:12:07

尽快推出
作者: ayan2010    时间: 2011-3-3 13:12:43

下载测试撒
作者: liq77    时间: 2011-3-3 13:46:25

本帖最后由 liq77 于 2011-3-3 13:48 编辑

回复 9# nopain

谢谢回复!我知道在公式中可以增加线标,但在K线图上标出线标会在看盘和操作时有诸多方便之处,尤其是需要根据“线标”来确定划线位置(作为可变参数)的指标或指令,因为TB少有在图上某一位置标出文字或符号的功能,故建议在“页面设置”的“标注”一栏内加入“线标”参数,而且最好放在“商品名称”之后,“周期”之前,这样可以在多图同列状态下仍然可以看到显示。
作者: khseaman    时间: 2011-3-3 23:22:55

非常期待啊,希望能给个大概的时间!
作者: nopain    时间: 2011-3-4 10:19:10

回复 17# liq77


V4已经可以用PlotString在指定位置标出字符串。
PlotBool可以输出笑脸/哭脸图标
作者: ayan2010    时间: 2011-3-4 12:20:05

昨晚下载了,测试了一下,在公式性能测试存在问题,一个图表中叠加了DATA0和DATA1,对DATA0开仓平仓作,3.3.1版能正确从DATA0开始K线进行测试,TB4则比DATA0 K线提前,造成测试结果有问题!
作者: ayan2010    时间: 2011-3-4 12:20:37

昨晚下载了,测试了一下,在公式性能测试存在问题,一个图表中叠加了DATA0和DATA1,对DATA0开仓平仓作,3.3.1版能正确从DATA0开始K线进行测试,TB4则比DATA0 K线提前,造成测试结果有问题!
作者: nopain    时间: 2011-3-4 16:11:16

回复 21# ayan2010

请详细描述一下操作及你认为的错误现象,方便分析问题。谢谢
作者: cnbiz850    时间: 2011-3-4 16:44:49

是否不好导入前一版本的公式了?我把前一版本的公式备份到一个文件,然后用V4导入,很多的公式中只导入两个,不知为什么?
作者: zyloogle    时间: 2011-3-4 20:36:12

If(CrossUnder(L,z1)and CrossUnder(L,z2))

这样写不行,请确认!
作者: ayan2010    时间: 2011-3-4 22:25:39

回复 21# ayan2010

请详细描述一下操作及你认为的错误现象,方便分析问题。谢谢------比如说DATA0为IF1103,2010年7月19日起上市交易,叠加DATA1为股指指数,从2010年4月16日起,在DATA0上进行交易测试,3.3.1会正确从2010年7月19开始计算结果.TBV4则会从2010年4月20日开始计算结果!
作者: ayan2010    时间: 2011-3-4 22:29:40

以下为TBV4.0测试结果,不能正确地从7月19日开始测算

1        118        TEMA_LOGTST        2010/04/20 10:05        IF1103        2670.2        120.16        (120.16)        499879.84
        222        多头        2010/04/22 09:45        1.00        2670.2        120.16        (120.16)        (0.09%)
2        244        TEMA_LOGTST        2010/04/22 13:05        IF1103        2670.2        120.16        (120.16)        499759.68
        263        多头        2010/04/22 14:40        1.00        2670.2        120.16        (240.32)        (0.09%)
3        279        TEMA_LOGTST        2010/04/23 10:00        IF1103        2670.2        120.16        (120.16)        499639.52
        291        多头        2010/04/23 11:00        1.00        2670.2        120.16        (360.48)        (0.09%)
4        328        TEMA_LOGTST        2010/04/26 09:35        IF1103        2670.2        120.16        (120.16)        499519.36
        332        多头        2010/04/26 09:55        1.00        2670.2        120.16        (480.64)        (0.09%)
5        339        TEMA_LOGTST        2010/04/26 10:30        IF1103        2670.2        120.16        (120.16)        499399.21
        363        多头        2010/04/26 14:00        1.00        2670.2        120.16        (600.79)        (0.09%)
6        427        TEMA_LOGTST        2010/04/27 14:50        IF1103        2670.2        120.16        (120.16)        499279.05
        434        多头        2010/04/28 09:25        1.00        2670.2        120.16        (720.95)        (0.09%)
7        438        TEMA_LOGTST        2010/04/28 09:45        IF1103        2670.2        120.16        (120.16)        499158.89
        527        多头        2010/04/29 14:10        1.00        2670.2        120.16        (841.11)        (0.09%)
8        592        TEMA_LOGTST        2010/04/30 15:05        IF1103        2670.2        120.16        (120.16)        499038.73
        595        多头        2010/05/04 09:20        1.00        2670.2        120.16        (961.27)        (0.09%)
9        1007        TEMA_LOGTST        2010/05/13 13:40        IF1103        2670.2        120.16        (120.16)        498918.57
        1032        多头        2010/05/14 09:45        1.00        2670.2        120.16        (1081.43)        (0.09%)
10        1171        TEMA_LOGTST        2010/05/18 13:50        IF1103        2670.2        120.16        (120.16)        498798.41
        1189        多头        2010/05/19 09:20        1.00        2670.2        120.16        (1201.59)        (0.09%)
11        1194        TEMA_LOGTST        2010/05/19 09:45        IF1103        2670.2        120.16        (120.16)        498678.25
        1199        多头        2010/05/19 10:10        1.00        2670.2        120.16        (1321.75)        (0.09%)
12        1215        TEMA_LOGTST        2010/05/19 13:00        IF1103        2670.2        120.16        (120.16)        498558.09
        1235        多头        2010/05/19 14:40        1.00        2670.2        120.16        (1441.91)        (0.09%)
13        1251        TEMA_LOGTST        2010/05/20 10:00        IF1103        2670.2        120.16        (120.16)        498437.93
        1262        多头        2010/05/20 10:55        1.00        2670.2        120.16        (1562.07)        (0.09%)
14        1326        TEMA_LOGTST        2010/05/21 13:15        IF1103        2670.2        120.16        (120.16)        498317.77
        1388        多头        2010/05/24 13:55        1.00        2670.2        120.16        (1682.23)        (0.09%)
15        1464        TEMA_LOGTST        2010/05/26 09:45        IF1103        2670.2        240.32        (240.32)        498077.46
        1469        多头        2010/05/26 10:10        2.00        2670.2        240.32        (1922.54)        (0.09%)
16        1539        TEMA_LOGTST        2010/05/27 13:00        IF1103        2670.2        240.32        (240.32)        497837.14
作者: ayan2010    时间: 2011-3-4 22:33:32

以下为3.3.1的测试结果,可以正确从7月19日开始
   1    3362    多头建仓      2010/07/19 10:25:00TEMA_TEST                 2711.6          2.00     (3740.00)     496260.00
        3364    多头平仓      2010/07/19 10:35:00TEMA_TEST                 2705.4         20.00     (3740.00)       (2.30%)
   2    3365    多头建仓      2010/07/19 10:40:00TEMA_TEST                 2714.4          2.00      73060.00     569320.00
        3437    多头平仓      2010/07/20 13:40:00TEMA_TEST                 2836.2         20.00      69320.00        44.86%
   3    3518    多头建仓      2010/07/22 09:55:00TEMA_TEST                 2853.6          2.00    (12980.00)     556340.00
        3527    多头平仓      2010/07/22 10:40:00TEMA_TEST                 2832.0         20.00      56340.00       (7.58%)
   4    3535    多头建仓      2010/07/22 11:20:00TEMA_TEST                 2840.4          2.00     (1460.00)     554880.00
        3536    多头平仓      2010/07/22 11:25:00TEMA_TEST                 2838.0         20.00      54880.00       (0.86%)
   5    3540    多头建仓      2010/07/22 13:15:00TEMA_TEST                 2845.4          2.00      13660.00     568540.00
        3581    多头平仓      2010/07/23 10:40:00TEMA_TEST                 2868.2         20.00      68540.00         8.00%
   6    3880    多头建仓      2010/07/30 14:35:00TEMA_TEST                 2962.0          1.00      15650.00     584190.00
        3933    多头平仓      2010/08/02 14:30:00TEMA_TEST                 3014.2         10.00      84190.00        17.61%
   7    3992    空头建仓      2010/08/03 14:55:00TEMA_TEST                 2951.4          1.00     (8050.00)     576140.00
        4002    空头平仓      2010/08/04 09:45:00TEMA_TEST                 2978.2         10.00      76140.00       (9.09%)
   8    4010    空头建仓      2010/08/04 10:25:00TEMA_TEST                 2955.2          1.00     (2470.00)     573670.00
        4016    空头平仓      2010/08/04 10:55:00TEMA_TEST                 2963.4         10.00      73670.00       (2.79%)
   9    4017    空头建仓      2010/08/04 11:00:00TEMA_TEST                 2956.0          1.00     (1330.00)     572340.00
        4041    空头平仓      2010/08/04 14:30:00TEMA_TEST                 2960.4         10.00      72340.00       (1.50%)
   10   4043    多头建仓      2010/08/04 14:40:00TEMA_TEST                 2967.0          1.00     (1810.00)     570530.00
        4060    多头平仓      2010/08/05 10:05:00TEMA_TEST                 2961.0         10.00      70530.00       (2.03%)
   11   4076    空头建仓      2010/08/05 11:25:00TEMA_TEST                 2953.0          1.00      (970.00)     569560.00
        4087    空头平仓      2010/08/05 13:50:00TEMA_TEST                 2956.2         10.00      69560.00       (1.09%)
   12   4096    空头建仓      2010/08/05 14:35:00TEMA_TEST                 2940.4          1.00     (2890.00)     566670.00
        4109    空头平仓      2010/08/06 09:40:00TEMA_TEST                 2950.0         10.00      66670.00       (3.28%)
   13   4122    空头建仓      2010/08/06 10:45:00TEMA_TEST                 2933.0          1.00    (10090.00)     556580.00
        4131    空头平仓      2010/08/06 13:00:00TEMA_TEST                 2966.6         10.00      56580.00      (11.47%)
   14   4132    多头建仓      2010/08/06 13:05:00TEMA_TEST                 2979.8          1.00       8750.00     565330.00
        4159    多头平仓      2010/08/09 09:20:00TEMA_TEST                 3009.0         10.00      65330.00         9.79%
   15   4237    空头建仓      2010/08/10 11:20:00TEMA_TEST                 2968.6          2.00      16660.00     581990.00
        4276    空头平仓      2010/08/11 10:05:00TEMA_TEST                 2940.8         20.00      81990.00         9.35%
   16   4363    空头建仓      2010/08/12 14:20:00TEMA_TEST                 2907.0          2.00     (7820.00)     574170.00
作者: nopain    时间: 2011-3-5 16:30:24

To ayan2010:
你说得问题是因为前面提到的无效值处理机制改变,新版要求自行判断数据是否有效,并进行相应处理。
新版本中对于数据叠加补齐数据做了一些改变,你的例子里面会用7/16的数据填充空缺。稍后我会详细说明一下这个机制
作者: 做期货好    时间: 2011-3-5 16:42:23

黄总 , qq给你留言了 ,发现个 bug ,上qq记得看留言 ,去捉捉虫子
作者: zyloogle    时间: 2011-3-5 17:07:20

V4自己的带的海龟,都是错误写法.

    If(MarketPosition == 1) // 有多仓的情况
    {
        // 求出持多仓时离市的条件比较值
        ExitLowestPrice = Lowest(Low[1],teLength);

到底是写法错了,还是BUG?
作者: nopain    时间: 2011-3-5 19:42:08

回复 30# zyloogle

海龟在V4版本下应该还有些问题,暂时还没空去仔细核对,正式发布时会重新整理的。
作者: zyloogle    时间: 2011-3-5 21:42:02

我已经测试了,现在不可以,是有问题.
作者: goodchinas    时间: 2011-3-6 11:08:01

我是TB的忠实用户,现在也在尝试用MC,简单做一下比较。
1,TB在国内应用比较广泛,mc刚进入国内。
2,tb只支持国内四个期货交易所行情和交易,但是mc却通过行情插件和交易插件的方式支持全世界的行情和交易。
所以,我建议Tb应该把行情和交易扩展,提供类似mc的行情和交易插件方式,可以开放式的扩展。
作者: garrincha    时间: 2011-3-6 12:12:19

交易指令中能否加入声音警报功能。。
作者: saji    时间: 2011-3-6 12:32:21

传说中的套利交易是否可以实现了?
作者: ayan2010    时间: 2011-3-6 21:34:31

To ayan2010:
你说得问题是因为前面提到的无效值处理机制改变,新版要求自行判断数据是否有效,并进行相应处理。
新版本中对于数据叠加补齐数据做了一些改变,你的例子里面会用7/16的数据填充空缺。稍后我会详细说明一下这个机制 -----程序里本来就已判断数据是否有效,新版本中对于数据叠加补齐数据做了一些改变----这个使得每次测试,直到DATA0有有效数据前,都用DATA1测试?-----如果使测试结果更准确,应该如何处理?
        If(Data1.Close != InvalidNumeric&&Data0.Close!=InvalidNumeric)
        {
                       图表信号处理.....
                 }
作者: efrog    时间: 2011-3-6 22:22:35

等了很久了,
作者: efrog    时间: 2011-3-6 23:08:33

17、讯号发生的时间如果不在图表最后Bar时间的附近,将会被忽略。
    日线及以上周期要求讯号发生的日期和最后Bar的日期相同;
    1分钟及以上周期要求讯号发生的时间和最后Bar的时间误差不超过5分钟。
    Tick和10秒周期要求讯号发生的时间和最后Bar的时间误差不超过1分钟。
     通过这个时间限定,防止最后Bar上较早前的讯号在重新启动时发单。
这个功能能否解释的更清楚点?谢谢!
作者: nopain    时间: 2011-3-8 10:54:21

回复 38# efrog

意思就是最后Bar上如果有交易讯号,指定的时间内重新启动时会发单,超过这个时间范围就不会发单了
作者: f600624    时间: 2011-3-8 11:47:22

3版在交易服务器断开的情况下,发出的交易指令,在服务器连线恢复后就作废,很不利于无人值守的交易,希望4版能对这个问题有所改进,起码在断线间产生的平仓指令在恢复连线后能有效。
作者: bluefire999    时间: 2011-3-8 20:16:41

本帖最后由 bluefire999 于 2011-3-11 08:24 编辑

今天试用了新版,真是相当不错啊!坚决支持nopain好样的加油
目前还没找到bug
仔细试用了几天------问题不少啊!
1、编译系统大家反应最严重“系统内置的公式直接拷贝编译”都通不过,最终目标文件编译错误,重装,删除user目录什么的都试过。
作者: b8866    时间: 2011-3-9 22:19:33

在哪里下载TBV4
作者: garrincha    时间: 2011-3-12 11:05:21

多周期的应用是否有更简便的方法
作者: stevenx8    时间: 2011-3-13 18:10:40

TBV4是否不能和老版本共存于同一台电脑??

我安装在另外一个目录后,V4不能用,老版本也不能用;但卸载了V4之后,老版本就好用了。
作者: efrog    时间: 2011-3-19 10:11:32

4、公式类型调整:
    用户字段,技术指标,K线型态,特征走势,交易指令这5种类型公式统一为公式应用,公式应用既可以输出线条,也可以进行交易。

这个改进很好,赞一个!
作者: efrog    时间: 2011-3-19 10:22:51

10、交易策略参数优化提速:
   通过调整价格,公式运行速度得到近10倍的提升,并增加了多线程测试,在性能强劲的电脑上,可以达到旧版本几十倍的测试速度。可以考虑攒钱买32核电脑进行测试了。
   另外,交易策略的参数优化增加了参数淘汰率,要使用淘汰算法,需要将重要的参数放在前面,测试完一个参数之后,按比例淘汰较差的参数。提升测试效率。

提高了测试效率,好!
作者: efrog    时间: 2011-3-19 10:29:53

16、用户函数中可以使用所有系统函数:
    这样可以很方便的封装交易指令和算法。

这个太好了!
谢谢!
作者: yml0396    时间: 2011-3-20 10:13:52

快点把TBV4的正式版本推出来吧!
作者: 青岛杨    时间: 2011-3-20 20:02:30

还没定版吧?我想请问一个同策略分散化的问题。
比如海龟策略吧,一般来说要分散到好多品种里去,这种同一个策略分散到n个品种里是怎么处理的?是不是要在同一个图表里插入n个商品,然后每个指令都要写成data0.high>上轨,data0.buy,data1.high>上轨,data1.buy?
作者: seaphoenix    时间: 2011-3-21 16:03:02

统计报告有错啊,交交易次数什么的都统计不对啊。。。
作者: nopain    时间: 2011-3-22 12:00:30

回复 50# seaphoenix

多空的交易次数有误,已经修正了~
作者: zejunl    时间: 2011-3-22 17:24:46

我们一定要支持TB,因为是他让我在程序化的黑夜中看到了SHU(那字忘五笔咋个整的了)光.
作者: zejunl    时间: 2011-3-22 20:42:14

回复 1# nopain


    Hello,如果你能把新版的帮助文件贴写出来就OK了。非常感谢!
作者: sunofsky    时间: 2011-4-3 10:00:19

TB4的超级图 能否考虑增加半分钟的K线、或可以自定义20秒、30秒、40秒、50秒的k线,目前只有10秒和分钟线感觉日内交易太短和太长了
作者: sunofsky    时间: 2011-4-3 10:12:04

3、延迟发单机制:
    旧版通过交易函数中使用delay参数达到延迟到下一个Bar开盘发单的效果,在实际应用中,通过Delay参数只能使用NextOpen等未来函数来获取价格,整个设计过于复杂。考虑到可以通过获取上一个Bar的条件值来进行判断,在当前Bar开盘交易这种方法替代延迟发单的机制,决定取消该功能。
------这项功能能不能不取消,实际中可以用这功能解决信号闪过在当前BAR不开仓,等收盘价仍有信号,则在下一BAR开盘价下单。
作者: bluefire999    时间: 2011-4-4 14:35:19

最近一次咨询工作人员说v4四月初推出,不知道还要等多久才见正式版;
nopain主持开发也似乎互动不够啊最近这三周,希望正式版早点出
作者: volersky    时间: 2011-4-5 16:39:50

本帖最后由 volersky 于 2011-4-5 16:43 编辑

2、PlotNumeric,PlotString,PlotBool画线输出函数增加定位点参数:
    以PlotNumeric距离,其他类似,PlotNumeric的前两个参数保持不变,第三个参数修改为定位点参数,默认参数为0,其他的参数和旧版一致。
    当我们使用定位点函数时,对于PlotNumeric,将输出一条线段,连接定位点和输出值的点;PlotBool和PlotString将在指位置画出相应的内容。


一条直线要两个点,您上面所说的定位点是前点还是后点,如果是后点,前点在哪里?还是是连续输出,不能仅输出一条直线,能讲解一下吗?谢谢!

我用趋势线系统,如果不能单画趋势线,我这个系统很难自动化交易。
作者: nopain    时间: 2011-4-15 16:46:14

回复 56# bluefire999

每个Bar输出的直线是垂直的,连接这两个点。

你说的趋势线,不需要用这个定位点,直接按标准方法输出即可。
作者: hansw    时间: 2011-4-16 00:11:21

改动这么大,一下子消化困难,希望给个详细的说明书
作者: wqspeter    时间: 2011-4-16 02:08:35

用了一下,太爽了,编译速度、测试速度、优化速度出奇的快,非常感谢。
作者: wqspeter    时间: 2011-4-16 02:09:13

感觉超越了MT4的速度。
作者: sst_1112    时间: 2011-4-16 10:37:52

为什么升级之后,以前所有的工作区都用不了啊?公式也都没了,说什么runtimeerror
作者: rocklet    时间: 2011-4-16 17:00:19

多线程测试非常给力!非常需要!但是请不要把原来无效值变成有效值!会直接影响除自便公式除bug的效率的!!
作者: stevenx8    时间: 2011-4-16 22:44:15

新版本改动太大了,没有说明书用不了了。希望尽快发布说明书,并希望对照以前V3版一些例子重写一些V4的编程例子啊。只有这样才能尽快普及V4
作者: thjyqr    时间: 2011-4-18 14:38:40

的确,公式系统有这么大的变化,如果没有帮助文档的同步更新,多举些实例,那么是会遇到比较多的困难的。
作者: nopain    时间: 2011-4-18 17:18:52

帮助文件正在更新中,正式发布时会提供的
作者: nickchen    时间: 2011-4-18 19:00:31

非常好 不过不能导入旧版本的公式很是遗憾。
作者: hansw    时间: 2011-4-19 13:12:15

请问,在“全局交易设置里”,最大资产回撤基准线5%有什么用处
作者: hansw    时间: 2011-4-19 13:18:08

编译速度和参数优化速度提升好几十倍,真是太好了。。。(我用的4核i7 CPU)
作者: f600624    时间: 2011-4-19 15:26:41

8、单个图表内多个公式之间的相关性:
   旧版本中,单个图表中的多个交易指令会相互影响,形成干扰。虽然利于将开平仓等指令进行模块化,但不利于利用资源。
   新版本中,单个图表中的多个公式应用就像以前的多个技术指标一样,不再有相关性。这样就可以很容易的单个图表驱动多个交易系统,节省电脑资源。

试了一下这个功能,发现如果对单帐户操作,同一图表不同交易系统都只能对同一帐户有效,希望能增加对不同帐户操作,因为TB的A_函数在单一图表下不能用于多帐户交易。
作者: nopain    时间: 2011-4-19 16:04:32

回复 70# f600624

用A_XXX函数的只能操作一个账户,这个暂时没法支持了
作者: 三十学艺    时间: 2011-4-19 16:20:11

V4出现交易信号在有些品种出现,有些品种不出现,为什么?
作者: 三十学艺    时间: 2011-4-19 16:26:07

不出现的有,白糖,棉花,棕榈油指数,还有就是连续基本不出现,这个在V3是不会出现的.
作者: nopain    时间: 2011-4-19 16:56:03

回复 73# 三十学艺

请用Commentary跟踪条件值。V3,V4的写法上有些需要修改。
作者: cs_tai    时间: 2011-4-20 09:41:50

回复 1# nopain

跨周期引用解决了吗
作者: nopain    时间: 2011-4-20 14:44:54

回复 75# cs_tai

还是原来的机制,您有什么好建议吗?
作者: cs_tai    时间: 2011-4-20 20:38:56     标题: 最好使用专用跨周期函数啊

回复 76# nopain
作者: cs_tai    时间: 2011-4-20 20:45:40

nopain:V4的plotnumbric画K线柱状图有问题啊,整个K线压缩到图表的上方,请确认并回答
作者: nopain    时间: 2011-4-21 11:56:33

回复 78# cs_tai


所谓柱状图,就是从0到你输出的值,坐标范围很大,自然会压缩图形。
作者: cs_tai    时间: 2011-4-21 14:42:42

回复 79# nopain
那请您指点一下怎样画彩色bar
作者: nopain    时间: 2011-4-22 13:13:45

PlotNumeric("MyBar",High,Low,Red);
作者: stevenx8    时间: 2011-4-22 21:44:19

PlotNumeric("MyBar",High,Low,Red);
nopain 发表于 2011-4-22 13:13


这样的语句PlotNumeric("Ma4",Ma4,IIF(Ma4>=Ma4[1],Red,Green));
,在V3显示正常,在V4就不行了;图形被压缩的窗口顶端了。
作者: onser    时间: 2011-4-23 15:40:16

V4版中的用户函数是否支持交易指令?看说明是支持了,不过试着怎么不行。
作者: nopain    时间: 2011-4-24 19:03:49

回复 82# stevenx8

第三个参数不是颜色,第四个才是
作者: nopain    时间: 2011-4-24 19:03:58

回复 83# onser


可以的
作者: 三十学艺    时间: 2011-4-25 10:58:32

商品可以进行交易和测试:
    旧版本只能使用Buy(1,MyPrice);这样的语句进行交易,新版本可以使用Data1.Buy(1,MyPrice),以及Data1.MarketPosition这样的函数获取交易状态。大部分函数都支持使用Data#.前缀进行调用。
   这样可以方便的实现多个商品的,单个系统的组合测试,可以测试套利和对冲系统。

黄总,我在尝试这个功能,我是简单的将一个系统改了名字,同时在开平仓上加了Data1. ,然后叠加商品进行测试,可是结果不同.主要是开仓数量不对,开仓数量的计算我用了序列变量.在使用多策略和多商品组合测试时有什么需要注意的吗?谢谢!
作者: stevenx8    时间: 2011-4-25 11:53:58

回复  stevenx8

第三个参数不是颜色,第四个才是
nopain 发表于 2011-4-24 19:03



    谢谢!按照你的提示,改了,编译通过,正常了。
作者: 天柏    时间: 2011-4-25 12:20:48

编译快很多很多,好!慢慢来看
作者: sq1974    时间: 2011-6-9 22:13:10

问个问题,ctp用户能用v4吗
作者: mars622160    时间: 2011-8-15 09:12:54

请问V3中的函数“trunc”在V4中如何实现?

V3中的语句为:

Time >  MakeTime(Trunc(915/100)+trunc(((915-Trunc(915/100)*100)+50)/60),mod((915-Trunc(915/100)*100)+50,60),0)
作者: jazzson    时间: 2011-9-19 09:15:28

一、公式升级取消的功能点:
1、内建平仓指令:
    已删除8个内建平仓函数,准备等新版本稳定后以用户函数的形式提供类似功能。

掌柜的,这八个函数其实相当有用呀!可以简化相当多用户开发工作量呀! 为什么取消了呢? 能否告诉一下什么时候可以加上去呀!期待加期待呀!
作者: crocodile1    时间: 2011-10-8 22:31:35

还没定版吧?我想请问一个同策略分散化的问题。
比如海龟策略吧,一般来说要分散到好多品种里去,这种同一个策略分散到n个品种里是怎么处理的?是不是要在同一个图表里插入n个商品,然后每个指令都要写成data0.high>上轨,data0.buy,data1.high>上轨,data1.buy?

同问!!
不过这样搞程序太复杂了,1个语句要变成10行语句,程序超过2000行了
作者: ringking    时间: 2011-11-6 23:25:39

急急急 无源码加密 同时加上公式加密,换台机子 导入无法执行问题!!!
去掉公式加密,只用无源码加密就可以了,问下版主测试过没?
作者: seal_2011    时间: 2011-11-23 16:51:21

在开拓者主页下载的是专业版,有没有旗舰版的下载?
作者: jason_udu    时间: 2012-1-19 14:54:15

关于版本更新的建议:更新版本的前提应当是更大功能、更好服务为前提的,但V4版本不少地方都是以减少功能为前提的,造成原有的程序开发需要重新修改,客观上增大了使用者的负担。实盘交易者更加可能造成交易障碍,希望开发者确实关注客户的使用及感受。
作者: dragzhb    时间: 2012-2-22 22:02:01

作为一个商品软件,升级不兼容以前的东西,严重造成客户的资源浪费,特别是实盘用户,这是交易的真金白银呀!!!
作者: 傻了吧    时间: 2012-3-2 08:44:08

好。。明白多了
作者: nickchen    时间: 2012-3-5 17:31:42

但愿TB会越来越好用。
作者: nickchen    时间: 2012-3-5 17:32:49

但愿TB会越来越好用。
作者: nickchen    时间: 2012-3-5 17:38:50

但愿TB会越来越好用。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2