在后臺交易模擬中發(fā)現(xiàn)Variable全局變量好像有問題,做一個測試程序:后臺交易運(yùn)行,固定時間間隔5秒。
Variable: Myholding=0;
DEBUGFILE('C:\test.txt','VS:%.0f',Myholding);
IF ISLASTBAR THEN
BEGIN
IF Myholding=0 THEN
BEGIN
Myholding:=1;
DEBUGFILE('C:\test.txt','Myholding:%.0f',Myholding);
END
END
按照我的理解,在Myholding:=1后,應(yīng)該保持為1。但實(shí)際測試文件的結(jié)果如下:
2010-07-28 11:12:00.265 VS:0
2010-07-28 11:12:00.265 Myholding:1
2010-07-28 11:12:05.734 VS:0
2010-07-28 11:12:05.734 Myholding:1
2010-07-28 11:12:10.718 VS:0
2010-07-28 11:12:10.718 Myholding:1
2010-07-28 11:12:15.718 VS:0
2010-07-28 11:12:15.718 Myholding:1
2010-07-28 11:12:20.734 VS:0
2010-07-28 11:12:20.734 Myholding:1
2010-07-28 11:12:25.718 VS:0
2010-07-28 11:12:25.718 Myholding:1
2010-07-28 11:12:30.734 VS:0
2010-07-28 11:12:30.734 Myholding:1
2010-07-28 11:12:35.718 VS:0
2010-07-28 11:12:35.734 Myholding:1
能請教一下是怎么回事?Variable定義的全局變量為什么被不停地初始化了呢?
Variable: Myholding=0;
每次執(zhí)行一次循環(huán)檢測時,都會被初始化一次,如果你需要變量一致記住,需要使用全局變量數(shù)據(jù)庫,保存變量狀態(tài),請參考EXTGBDATA,EXTGBDATASET
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=2240
那和下面您在其他帖子里的描述不一樣啊??
全局變量有兩種,一種是在公式里的,每次執(zhí)行都被初始化一次的,這里的每次執(zhí)行指的是每次金字塔執(zhí)行公式系統(tǒng)的運(yùn)行,即從1周期到BARCOUNT的過程。
比如一個變量這樣聲明:
variable:maxprofit=0;
他只會在第一個周期被初始化賦值為0,其他周期均不會對此變量進(jìn)行賦值,比如:
variable:maxprofit=0;
IF BARPOS = 2 THEN
MAXPROFIT := 10;
IF BARPOS = 10 THEN
MAXPROFIT := 30;
AA:MAXPROFIT;
通過AA的顯示曲線,用戶應(yīng)該會明白全局變量的用途
金字塔還有一種全局變量,可以保存數(shù)據(jù)到全局變量數(shù)據(jù)庫中,具體參考 EXTGBDATASET 和 EXTGBDATA 函數(shù)的調(diào)用
[此貼子已經(jīng)被作者于2010-7-28 11:39:42編輯過]
怎么不一樣了?每次執(zhí)行一次循環(huán)信號檢測,都需要重新初始化公式系統(tǒng)
[此貼子已經(jīng)被作者于2010-7-28 12:03:47編輯過]
啊!后臺交易,每次循環(huán)都會初始化公式!又明白了一點(diǎn)后臺交易的機(jī)理。謝謝!
不過,有關(guān)軟件運(yùn)行機(jī)理方面的東西希望能夠有集中介紹。