读书山林 发表于 2012-9-1 16:46:10

新增一个函数实现自动换月,真正实现无人值守

一个函数实现自动换月,建议新增函数Main用于获得当前bar品种的主力合约代码


tb既然能拼接出主力合约连续数据,说明tb其实是知道连续数据引用的实际合约代码或者数据。
开放一个函数 获得当前连续数据品种所对应的实际合约代码。
这样就可以做到在连续数据上交易主力合约 而且不需要叠加商品,只要在交易代码中做相应控制。

当然如果要做到此点还需要开发在当前图表交易非当前图表合约,其实很简单在交易函数中引入一个参数就是交易的合约代码 默认值为当前图表合约。
说了这么多其实只要tb做到两点
1获得当前主力合约实际代码的函数Main 比如在if888中 我通过函数Main 获得代码 “if1209”
2 在当前图表交易指定合约  比如通过函数Buy(1,open,"if1209")或者Buy(lots,Myprice,Main ),增加一个参数而已;
至于具体怎么换月完全由客户自己在代码中去控制,客户可以设置自己的个性化换月规则,也省的tb出力不讨好,比开发一键换月要容易 毕竟众口难调

有需要此功能的大侠们把此贴顶起

读书山林 发表于 2012-9-1 16:57:16

自己顶一个 大家把楼盖起来{:4_213:}

天空之城 发表于 2012-9-1 21:50:08

真正无人就算能做到自己也不是很放心,倒是对于中线测略,迟些换月影响也不大,能写出在出现下个信号的时候在新合约上开仓就好了,省去了一笔手续费。

读书山林 发表于 2012-9-1 22:46:47

你说的问题只要tb完善了我提出的两点 完全不是问题
获得当前主力合约实际代码的函数Main  完全可以做到这点,在开仓代码中永远交易的是主力合约 Buy(lots,Myprice,Main ),平仓代码中平调的自然是当前持有的合约。

迎风尿十丈 发表于 2012-9-24 22:36:49

顶起:P

flyfish 发表于 2012-9-25 04:50:42

建议不错,可行性很高

huisee 发表于 2012-9-30 23:30:11

好想法:(

huisee 发表于 2012-10-3 01:00:54

:)

千牛發理財工作 发表于 2012-10-14 19:54:38

本帖最后由 千牛發理財工作 于 2012-10-14 19:58 编辑

读书山林 发表于 2012-9-1 16:57 static/image/common/back.gif
自己顶一个 大家把楼盖起来

请求“读书山林”老师帮个忙,举例来运用:引用跨周期的回溯周期值。

02.// 简称: MTRef
03.// 名称: 跨期求回溯周期
04.// 类别: 用户函数
05.// 类型: 用户函数
06.// 输出: 数值型
07.//------------------------------------------------------------------------
08.
09.Params
10.
11.        NumericSeries BarCnt(0);//目标周期内小周期的bar
12.        Numeric Length(10);// 目标周期下的回溯周期
13.Vars
14.
15.                NumericSeries mtBarCnt(1);
16.
17.        Numeric i;
18.        Numeric j(0);// 与目标周期下的回溯周期 等值的小周期回溯周期值
19.Begin
20.
21.        For i = 1 to Length
22.        {
23.                If (mtBarCnt <> InvalidNumeric)
24.                {
25.
26.                        j = j + BarCnt;
27.                }
28.                else Break;
29.        }
30.        Return J;
31.End

wanwan 发表于 2012-11-2 10:22:24

自己来写这个函数呢?
股指换月是固定的时间
商品按照成交量和持仓量来计算
不过这样还是要手动叠加数据来映射。。
页: [1] 2 3 4
查看完整版本: 新增一个函数实现自动换月,真正实现无人值守