openD(1)在條件語(yǔ)句中的用法? - TradeBlazer公式 [開(kāi)拓者 TB]
- 咨詢內(nèi)容:
請(qǐng)問(wèn)為什么openD不能用在IF語(yǔ)句中?如果先把openD賦值給一個(gè)變量,在用在IF語(yǔ)句中,就能獲得正確的之。為什么?
- TB技術(shù)人員:
舉個(gè)例子。
現(xiàn)在有一本歷史書(shū),每一頁(yè)都記錄相應(yīng)年代發(fā)生的事件。
比如此書(shū)第100頁(yè)記錄的是秦朝的歷史。那么,如果你想要知道秦朝的事,找到第一百頁(yè),就能看到內(nèi)容了。
那如果此時(shí)給一個(gè)要求,只能翻閱第130頁(yè)之后的內(nèi)容,然后再問(wèn)你,秦朝是哪年建朝的?這樣,能查得到嗎?
同理,序列函數(shù)是通過(guò)一些序列值才能計(jì)算得到當(dāng)前的值的。如果不能給足此完整的序列值,如何能計(jì)算出來(lái)正常的結(jié)果?
而你用了在條件語(yǔ)句里,就是對(duì)其計(jì)算所需的序列值做了一定的條件限定呀。
舉的例子不一定好。試著大概理解一下吧,以后想到更好的例子再換。 - TB客服:
非常感謝您的詳細(xì)回答!
這里是openD的源代碼,請(qǐng)教哪里有您說(shuō)的這個(gè)限制?
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
如果以上指標(biāo)公式不適用于您常用的行情軟件
或者您想改編成選股公式,以便快速選出某種形態(tài)個(gè)股的話,
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容