程序化交易策略變量生存周期 [開(kāi)拓者 TB]
- 咨詢(xún)內(nèi)容: 新手在接觸TB時(shí),對(duì)變量的生存周期一般是沒(méi)有概念的,學(xué)過(guò)編程C 或 C++語(yǔ)言的,肯定知道變量的作用域這個(gè)概念,但對(duì)于生存周期一般接觸還是比較少的。
在使用時(shí),我也總是納悶有時(shí)變量使用Numeric 類(lèi)型,運(yùn)算就是得不到想要的結(jié)果
但全部使用NumericSeries 類(lèi)型,有覺(jué)得沒(méi)有必要,讓內(nèi)存占用持續(xù)上升。
(對(duì)新手解釋一下:NumericSeries 相當(dāng)于倉(cāng)庫(kù)來(lái)了新值,就往里邊放;相當(dāng)于無(wú)限大的數(shù)組
而Numeric 則里邊只能存一個(gè)值,來(lái)了新值,就把過(guò)去的值扔到。)
擴(kuò)展下:無(wú)限制使用序列變量,也是部分網(wǎng)友反映,運(yùn)行1~2小時(shí)后,內(nèi)存用量上升的原因。
言歸正傳:為什么有時(shí)使用Numeric 類(lèi)型,運(yùn)算就是得不到想要的結(jié)果呢?
讓我們做個(gè)測(cè)試:
例1:周期一分鐘
Params
Vars
Numeric YourVar1(0);
NumericSeries YourVar2(0);
Begin
//這里加入你的程序...
FileAppend("d:\\alive.log","賦值前-"++TimeToString(time)+"--Y1="+Text(Yourvar1)+"--Y2="+Text(Yourvar2));
If(time>=0.095500 && time <0.095600) {yourvar1=1;Yourvar2=2;}
FileAppend("d:\\alive.log","賦值后-"+TimeToString(time)+"--Y1="+Text(Yourvar1)+"--Y2="+Text(Yourvar2));
End
結(jié)果如下
未命名.GIF (4.87 KB, 下載次數(shù): 0) 2012-8-14 09:38:49 上傳 - TB技術(shù)人員: 全局變量是在每一個(gè)TICK都有一個(gè)固定的值,只要沒(méi)有語(yǔ)句修改,這個(gè)值不會(huì)改變,不需要申明,全局變量可直接使用
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容