序列變量時(shí)不時(shí)傳遞不進(jìn)子函數(shù),怎么辦? [開(kāi)拓者 TB]
- 咨詢內(nèi)容:
在主函數(shù)定義了幾個(gè)序列變量,其中幾個(gè)作為子函數(shù)的參數(shù)傳過(guò)去,為什么有時(shí)行有時(shí)不行?需要聲明的是這些子函數(shù)都沒(méi)有放在條件句或循環(huán)句中!最奇怪的是,如果子函數(shù)前對(duì)序列變量的當(dāng)前值賦值,那么子函數(shù)里就全部得到零數(shù)據(jù)(包括歷史數(shù)據(jù))。如果把賦值放在子函數(shù)之后,那么子函數(shù)里就能拿到歷史數(shù)據(jù)了。這是什么原因?我的TB版本是4.2.8
- TB技術(shù)人員:
請(qǐng)?zhí)峁┰创a,便于找出問(wèn)題所在
- TB客服:
這個(gè)問(wèn)題換一個(gè)角度來(lái)說(shuō)吧
以前上一根K線上的值傳遞到當(dāng)前K線上是靠手工的語(yǔ)句,現(xiàn)在版本4是自動(dòng)的對(duì)吧。的確多數(shù)情況下是要繼承過(guò)來(lái)的,但是我這個(gè)程序不希望繼承上一根K線的值,而是需要一個(gè)0初值,所以在進(jìn)入程序的開(kāi)頭進(jìn)行了零賦值,這時(shí)把這個(gè)序列變量傳遞到子函數(shù)去的話,子函數(shù)得到的歷史數(shù)據(jù)就全是0了!我以為歷史值是清不掉無(wú)法改變的,為什么也清零了呢? - 網(wǎng)友回復(fù):
ample 發(fā)表于 2013-4-17 16:16
請(qǐng)?zhí)峁┰创a,便于找出問(wèn)題所在
請(qǐng)問(wèn)序列變量在每根K線上需要一個(gè)零初值該怎么做呢?如果光一個(gè)主函數(shù)、主應(yīng)用,似乎沒(méi)有問(wèn)題,在程序開(kāi)頭賦值零就可以了,但是如果這個(gè)序列變量還要作為參數(shù)傳給子函數(shù)的,那么問(wèn)題就來(lái)了,在主函數(shù)里清零后,在子函數(shù)里就會(huì)得到所有歷史K線都是主函數(shù)里賦的零值,歷史數(shù)據(jù)消失了!但是在主函數(shù)里歷史數(shù)據(jù)還能看到。。 - 網(wǎng)友回復(fù):
//------------------------------------------------------------------------
// 簡(jiǎn)稱: TestNS1
// 名稱:
// 類別: 公式應(yīng)用
// 類型: 用戶應(yīng)用
// 輸出:
//------------------------------------------------------------------------
Params
Vars
NumericSeries AAA(0);
Begin
AAA=0;
Func1(AAA);
// do something here, so...
AAA=1;
Return;
End
//------------------------------------------------------------------------
// 簡(jiǎn)稱: Func1
// 名稱:
// 類別: 用戶函數(shù)
// 類型: 用戶函數(shù)
// 輸出: 布爾型
//------------------------------------------------------------------------
Params
NumericSeries AAA;
Vars
Bool Con1;
Begin
Commentary("AAA[0]="+Text(AAA[0])+" AAA[1]="+Text(AAA[1])+" AAA[2]="+Text(AAA[2]));
Return (AAA[1]==1);
End
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容