有關(guān)全局變量使用的幾個(gè)困惑
作者:金字塔 來(lái)源:cxh99.com 發(fā)布時(shí)間:2014年11月28日
- 咨詢內(nèi)容:
一開(kāi)始在圖表交易系統(tǒng)使用VARIABLE來(lái)作為全局變量,后來(lái)改成了后臺(tái)輪詢,發(fā)現(xiàn)VARIABLE定義的全局變量不行了,每次都被初始化成了0,網(wǎng)上查了一下說(shuō)后臺(tái)要使用EXTGBDATA,EXTGBDATASET來(lái)取值賦值,改了一下正常了。看了編譯時(shí)的警告帖子http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=48570 貌似不太推薦使用這種方式,推薦使用GLOBALVARIABLE,由于后臺(tái)沒(méi)法評(píng)測(cè),我就在圖表系統(tǒng)下將VARIABLE改成GLOBALVARIABLE試了一下,發(fā)現(xiàn)改了之后徹底失效,我的程序大概是這樣(逐K線,僅刷最后一根K線運(yùn)行)VARIABLE:MAXWIN=0;//GLOBALVARIABLE:MAXWIN=0;....IF MAXWIN<WIN THEN BEGIN
MAXWIN:=WIN;END
使用MAXWIN記錄開(kāi)倉(cāng)以來(lái)的最大盈利,WIN表示當(dāng)前盈利,如果當(dāng)前盈利大于之前的最大盈利就給MAXWIN賦一個(gè)新值
現(xiàn)在的問(wèn)題是:1. VARIABLE和GLOBALVARIABLE到底什么區(qū)別?為什么VARIABLE工作正常的用GLOBALVARIABLE就不能正常工作?2. 后臺(tái)程序編譯的時(shí)候金字塔也沒(méi)有提示說(shuō)VARIABLE不能用,那VARIABLE到底能不能用于后臺(tái),輪詢? 到底是是因?yàn)楹笈_(tái)還是因?yàn)檩喸冇绊懥?/span>VARIABLE的正常工作?3. EXTGBDATA,EXTGBDATASET我看到有兩種使用形勢(shì),一種就是 EXTGBDATA('MAXWIN'),這種變量名加了單引號(hào),貌似無(wú)需申明就可以直接使用,還有一種方式是EXTGBDATA(MAXWIN),沒(méi)有單引號(hào),之前要給MAXWIN:=xxx賦值,相當(dāng)于隱性的申明了一下,如果不這樣隱性的申明是否需要使用VARIABLE:MAXWIN=0 這樣來(lái)申明?這些幫助文件里面也沒(méi)寫(xiě)。4. GLOBALVARIABLE和EXTGBDATA,EXTGBDATASET說(shuō)是運(yùn)行效果一樣,但我在評(píng)測(cè)的時(shí)候試了一下GLOBALVARIABLE不能正常工作因此沒(méi)進(jìn)一步研究,但EXTGBDATA,EXTGBDATASET運(yùn)行正常,我感覺(jué)這兩者好像并不一樣。我想問(wèn)GLOBALVARIABLE是專用于后臺(tái)嗎?
- 金字塔客服:
http://www.weistock.com/WeisoftHelp/zbgs003.htm 看下全局變量說(shuō)明
2,后臺(tái)是只刷新最新的K線,所以VARIABLE定義的全局變量每次刷新都會(huì)重新初始化,導(dǎo)致不能記錄歷史運(yùn)行情況
3,字符變量,一定要加單引號(hào)的。從來(lái)沒(méi)聽(tīng)說(shuō)過(guò)不加單引號(hào)的用法
- 用戶回復(fù):
不加單引號(hào)的用法確實(shí)有,見(jiàn)金字塔提供的海龜后臺(tái)模型的例子
- 網(wǎng)友回復(fù):
看下人家的變量定義,已經(jīng)定義為字符串變量了
STRENTRYBARPOS:=STRCAT(STKLABEL,'ENTRYBARPOS')
[此貼子已經(jīng)被作者于2014/5/9 11:19:06編輯過(guò)]
- 網(wǎng)友回復(fù):
加了單引號(hào),EXTGBDATA,EXTGBDATASET是否就無(wú)需申明全局變量?