開(kāi)拓者求N天前的收盤價(jià)closD(N)原理,源碼
作者:開(kāi)拓者 TB 來(lái)源:cxh99.com 發(fā)布時(shí)間:2013年04月06日
- 咨詢內(nèi)容: //------------------------------------------------------------------------
// 簡(jiǎn)稱: CloseD
// 名稱: 求N天前的收盤價(jià)
// 類別: 用戶函數(shù)
// 類型: 內(nèi)建函數(shù)
// 輸出: 數(shù)值型
//------------------------------------------------------------------------
Params
Numeric daysAgo(2);
Vars
NumericSeries barCnt;
NumericSeries dayClose;
Numeric i;
Numeric j;
Numeric nIndex(0);
Numeric CBIndex;
Begin
CBIndex = CurrentBar;
If(CBIndex == 0 || Date != Date[1])
{
barCnt = 1;
}Else
{
barCnt = barCnt + 1;
}
dayClose = Close;
If(daysAgo == 0)
{
return dayClose;//程序化交易 www.kzuj.com.cn
}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 dayClose[nIndex];
}
End
//------------------------------------------------------------------------
// 編譯版本 GS2010.12.08
// 版權(quán)所有 TradeBlazer Software 2003-2010
// 更改聲明 TradeBlazer Software保留對(duì)TradeBlazer平
// 臺(tái)每一版本的TradeBlazer公式修改和重寫的權(quán)利
//------------------------------------------------------------------------
- TB技術(shù)人員:
BarCnt記錄的是從當(dāng)天第一根K線到當(dāng)前K線的K線數(shù)
所以回溯BarCnt就可得到前一天最后一K的收盤價(jià),也就是CloseD(1)
當(dāng)回溯天數(shù)大于1,比如2:
- For i = 1 To daysAgo
- {
- If( i == 1)
- {
- j = 0;
- }Else
- {
- j = j + BarCnt[j];
- }
- If (j > CBIndex )
- Return InvalidNumeric;
- nIndex = nIndex + BarCnt[j];
復(fù)制代碼i = 1時(shí),j=0,nIndex = 0 + BarCnt[0] = BarCnt(cxh99.com),也就是回溯到前一天的最后一K;
i = 2,j = 0 + BarCnt[0] = BarCnt
nIndex = BarCnt+BarCnt[BarCnt]
也就是回溯到前一天的前一天的最后一K;
OK,以此類推。
- TB客服: 謝謝樓上,有一點(diǎn)懂了;
但是還有一點(diǎn)不明白,barCnt是NumericSeries,也就是序列,但是barCnt的每個(gè)元素并沒(méi)有初始賦值呀,真是奇怪了。
比如:nIndex = BarCnt+BarCnt[BarCnt];
BarCnt[BarCnt]沒(méi)有初始賦值,就使用,不會(huì)出錯(cuò)嗎?
- 網(wǎng)友回復(fù): 比如以下代碼:
Begin
CBIndex = CurrentBar;
If(CBIndex == 0 || Date != Date[1])
{
barCnt = 1;
}Else
{
barCnt = barCnt + 1;
}//www.kzuj.com.cn
如果第一次執(zhí)行Else里面的代碼,barCnt = barCnt + 1;而barCnt沒(méi)有初始值,不會(huì)出錯(cuò)嗎?
- 網(wǎng)友回復(fù): 程序是從圖上第一根K線開(kāi)始執(zhí)行的
此時(shí)CBIndex == 0成立,barCnt = 1,沒(méi)有問(wèn)題
|