有關(guān)VARIABLE和GLOBALVARIABLE不能在控制語句中聲明,及全局變量的申明使用的注意事項(xiàng)。 [金字塔]
- 咨詢內(nèi)容:
VARIABLE和GLOBALVARIABLE做為金字塔PEL公式系統(tǒng)的全局變量申明語句,相信大家都不陌生,但是我們發(fā)現(xiàn)在大家日常使用中,經(jīng)常會(huì)因?yàn)樵撜Z句的使用不當(dāng)而造成模型運(yùn)行失常,現(xiàn)在我們簡(jiǎn)要的介紹一下。
首先用戶應(yīng)該要了解VARIABLE做為全局變量使用的基本情況,如果您對(duì)此還不了解,那么建議您先看看 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 問題16.
因?yàn)槿肿兞可婕暗匠醮芜\(yùn)行加載公式時(shí)的初始化工作,因此我們一般都是將全局變量的申明放在我們公式的最前面,以便于能再運(yùn)行時(shí)及時(shí)的初始化全局變量,否則若將全局變量放在了IF ... THEN等這些控制語句中申明,那么一旦變量由于受到控制語句的影響,而未在第一時(shí)間進(jìn)行初始化工作,那么勢(shì)必會(huì)帶來使用上的一些問題,我們舉例:
問題1:將全局變量放在了IF ... THEN控制語句中:
IF CLOSE > OPEN THEN
BEGIN
VARIABLE:X=0; //錯(cuò)誤,全局變量不能在IF THEN語句中使用
END
改正公式:
VARIABLE:X=0; //正確,在控制語句之前將全局變量做申明
IF CLOSE > OPEN THEN
BEGIN
............
END
問題2:將全局變量放在了EXIT語句之后申明:
IF ISLASTBAR THEN
EXIT;
VARIABLE:X=0; //錯(cuò)誤,全局變量放在EXIT語句的后面申明,在公式第一次運(yùn)行時(shí)將無法得到初始化
改正公式:
VARIABLE:X=0; //正確,在EXIT退出之前做申明,保證該行代碼在任何時(shí)候都能夠被執(zhí)行到
IF ISLASTBAR THEN
EXIT;
問題3:將全局變量放在了GOTO語句中申明:
IF ISLASTBAR THEN GOTO QUITLINE; //最后一個(gè)周期跳過均線計(jì)算行
B:MA(C,5);VARIABLE:X=0; //錯(cuò)誤,會(huì)在執(zhí)行GOTO語句后,跳過該行的執(zhí)行,該全局變量有可能沒法初始化
QUITLINE@ EXIT;改正公式:
VARIABLE:X=0; //正確,在GOTO語句跳轉(zhuǎn)之前申明,保證該行代碼在任何時(shí)候都能夠被執(zhí)行到
IF ISLASTBAR THEN GOTO QUITLINE; //最后一個(gè)周期跳過均線計(jì)算行
B:MA(C,5);QUITLINE@ EXIT;
若需要禁止部分提示在代碼中的最前面加入如下語句即可:
WARNING_DISABLE:5; //禁止在GOTO使用時(shí)提示
WARNING_DISABLE:6; //禁止在EXIT使用時(shí)提示
[此貼子已經(jīng)被作者于2013/7/19 11:12:02編輯過] - 金字塔客服:
- 用戶回復(fù): 是的,我之前也遇到這個(gè)問題,后來發(fā)現(xiàn)聲明在最前面的變量正常,就把所有變量移到最開始的地方,就全都正常了
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容