openD(1)在条件语句中的用法? - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
请问为什么openD不能用在IF语句中?如果先把openD赋值给一个变量,在用在IF语句中,就能获得正确的之。为什么?
- TB技术人员:
举个例子。
现在有一本历史书,每一页都记录相应年代发生的事件。
比如此书第100页记录的是秦朝的历史。那么,如果你想要知道秦朝的事,找到第一百页,就能看到内容了。
那如果此时给一个要求,只能翻阅第130页之后的内容,然后再问你,秦朝是哪年建朝的?这样,能查得到吗?
同理,序列函数是通过一些序列值才能计算得到当前的值的。如果不能给足此完整的序列值,如何能计算出来正常的结果?
而你用了在条件语句里,就是对其计算所需的序列值做了一定的条件限定呀。
举的例子不一定好。试着大概理解一下吧,以后想到更好的例子再换。 - TB客服:
非常感谢您的详细回答!
这里是openD的源代码,请教哪里有您说的这个限制?
Params
Numeric daysAgo(2);
Vars
NumericSeries barCnt;
NumericSeries dayOpen;
Numeric i;
Numeric j;
Numeric nIndex(0);
Numeric CBIndex;
Begin
CBIndex = CurrentBar;
If(CBIndex == 0 || Date != Date[1])
{
barCnt = 1;
dayOpen = Open;
}Else
{
barCnt = barCnt + 1;
}
If(daysAgo == 0)
{
return dayOpen;
}Else
{
For i = 1 To daysAgo
{
If( i == 1)
{
j = 0;
}Else
{
j = j + BarCnt[j];
}
If (j > CBIndex )
Return InvalidNumeric;
nIndex = nIndex + BarCnt[j];
}
Return dayOpen[nIndex];
}
End
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
- 上一篇:一个牛人的技术分析历程
- 下一篇:请问这两个语句是同一个意思么? - Trade…
相关文章
-
没有相关内容