新增一个函数实现自动换月,真正实现无人值守
一个函数实现自动换月,建议新增函数Main用于获得当前bar品种的主力合约代码tb既然能拼接出主力合约连续数据,说明tb其实是知道连续数据引用的实际合约代码或者数据。
开放一个函数 获得当前连续数据品种所对应的实际合约代码。
这样就可以做到在连续数据上交易主力合约 而且不需要叠加商品,只要在交易代码中做相应控制。
当然如果要做到此点还需要开发在当前图表交易非当前图表合约,其实很简单在交易函数中引入一个参数就是交易的合约代码 默认值为当前图表合约。
说了这么多其实只要tb做到两点
1获得当前主力合约实际代码的函数Main 比如在if888中 我通过函数Main 获得代码 “if1209”
2 在当前图表交易指定合约 比如通过函数Buy(1,open,"if1209")或者Buy(lots,Myprice,Main ),增加一个参数而已;
至于具体怎么换月完全由客户自己在代码中去控制,客户可以设置自己的个性化换月规则,也省的tb出力不讨好,比开发一键换月要容易 毕竟众口难调
有需要此功能的大侠们把此贴顶起 自己顶一个 大家把楼盖起来{:4_213:}
真正无人就算能做到自己也不是很放心,倒是对于中线测略,迟些换月影响也不大,能写出在出现下个信号的时候在新合约上开仓就好了,省去了一笔手续费。 你说的问题只要tb完善了我提出的两点 完全不是问题
获得当前主力合约实际代码的函数Main 完全可以做到这点,在开仓代码中永远交易的是主力合约 Buy(lots,Myprice,Main ),平仓代码中平调的自然是当前持有的合约。 顶起:P 建议不错,可行性很高 好想法:( :) 本帖最后由 千牛發理財工作 于 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
自己来写这个函数呢?
股指换月是固定的时间
商品按照成交量和持仓量来计算
不过这样还是要手动叠加数据来映射。。