- 精华
- 0
- 在线时间
- 29 小时
- UID
- 4584
- 积分
- 251
- 帖子
- 59
- 阅读权限
- 50
- 注册时间
- 2009-6-8
- 最后登录
- 2011-1-13
- 精华
- 0
- UID
- 4584
- 积分
- 251
- 帖子
- 59
- 主题
- 21
- 阅读权限
- 50
- 注册时间
- 2009-6-8
- 最后登录
- 2011-1-13
|
// 输出: 一条指标线
//------------------------------------------------------------------------
Begin
If(Data0.Close != InvalidNumeric && Data1.Close != InvalidNumeric && Data2.Close != InvalidNumeric)
{
PlotNumeric("(1Y+4M)-5A=", Data2.C + 4*Data1.C - 5*Data0.C);
}
End
//------------------------------------------------------------------------
这是很简单的大豆榨油利润计算公式,第一个语句是判断空白BAR,三个合约的BAR同时存在,才能输出数据。
但是实际使用中,这个语句根本无效,就算是Data1粕和Data2豆油的BAR是空白,仍然输出计算结果,当然计算结果是严重的错误。
同一个日期,M和Y的BAR空白,仅Data0的大豆A有BAR,我根据输出结果反推计算,使用的是最后一个M和Y的BAR,
也相当于,当M和Y的BAR没有了,那么最后一个BAR的的数据变成直线而一直继续延续,直到遇到新BAR。
最后,使用EXCEL制作的图表真实可靠。TB还要在这方面努力。
因为多个商品叠加,空白和有效BAR的判断剔除是很重要的,而TB却没有这方面的函数。
TB完全可以增加一个BAR有效的函数,比如
If(Data0.Close == 有效 && Data1.Close == Value && Data2.Close == 有效)
如何才能避免BAR数据延续这个弊病呢?????
[ 本帖最后由 NEW青年 于 2010-2-18 13:50 编辑 ] |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|