- 精华
- 0
- 在线时间
- 347 小时
- UID
- 81930
- 积分
- 151
- 帖子
- 72
- 阅读权限
- 40
- 注册时间
- 2011-11-24
- 最后登录
- 2018-12-5
- 精华
- 0
- UID
- 81930
- 积分
- 151
- 帖子
- 72
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2011-11-24
- 最后登录
- 2018-12-5
|
如做豆粕豆油指数套利测试,豆油2000年就有数据,豆粕2006年才有数据,其他品种类似,我想找一个方法能够发现必须2个(或多个)品种均有数据,才开始计算价差,然后发信号。而不是每次都是手工设置起始时间,手动去改,太不智能了。如果不改,TB会把之前没数据的那段单边也会产生信号进行测试,结果又不对。
翻遍F1里关于Date的函数,尝试了用Data0.Close[1]!=InvalidNumeric,用data0.HistoryDataExist()这两个方法,但尝试均均无效,超级图表左上角明确显示豆油没数据,但是用这两个函数均是ture,无数据的时候open居然都能取到,就是有数据第一天的open。又尝试用data0.Date!=data1.Date,发现又无效,虽然无数据的品种open是有数据第一天的open,但是date又是无数据当天的date,凌乱了。不明白TB套利这块是如何设计的,是否留有一个方法能够通过代码自动判断数据的日期是否对上。
If(Data0.Close[1]!=InvalidNumeric&&Data1.Close[1]!=InvalidNumeric)
{
Spread=Data0.Open*lots0/(Data1.Open*lots1)*100; // 定义价差
}
else
{
return;
} |
|