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