REFX函數(shù)的疑惑,請通達(dá)信工程師幫助解答 [通達(dá)信]
-
咨詢內(nèi)容:
想寫一個(gè)指標(biāo),顯示當(dāng)前bar到最后一個(gè)bar的成交金額累積值,代碼如下:
CB:=CURRBARSCOUNT;
SUMAMO:REFX(SUM(AMO,CB),CB-1),NODRAW;
結(jié)果不正確,顯示的是最后一個(gè)Bar的金額,經(jīng)過反復(fù)測試發(fā)現(xiàn)問題在于SUM(AMO,CB)中的CB變量被當(dāng)成常量1,無論用干什么方法都是如此,如果直接寫成常量5、6之類的,結(jié)果是正常的。
因此總結(jié)下來就是在REFX函數(shù)中,對CURRBARSCOUNT變量的引用似乎有問題,請通達(dá)信工程師解答,以幫助我完成這個(gè)指標(biāo)。
萬分感謝!
-
通達(dá)信技術(shù)部:
CB:=CURRBARSCOUNT;
SUM(AMO,CB);{直接這樣兒寫就好了啊 你的refx(參數(shù)1,CB-1) 將目標(biāo)K線 一直指向的當(dāng)前交易日的K線 所以取的是 當(dāng)前交易日的SUM(AMO,CB)也就是SUM(AMO,1)也就是最后交易日的AMO}
“SUM(AMO,CB)中的CB變量被當(dāng)成常量1”不在于CB一直是1 而是refx的運(yùn)行原理是 在于先固定k先 然后取指定的k線的SUM(AMO,CB) 這個(gè)整體
REFX(SUM(AMO,CB),CB-1) 這個(gè)函數(shù)的運(yùn)行 機(jī)制是這樣兒的
直接上面的寫法 不要refx函數(shù)吧
-
通達(dá)信客服:
首先謝謝版主的回答。關(guān)于具體問題,我的需求是計(jì)算向后(未來)若干天的成交金額,所以sum(AMO,CB)不滿足我的需求。
不過版主的解釋已經(jīng)證實(shí)了我的猜想,REF和REFX等函數(shù)中CURRBARSCOUNT都和一般概念上立的不一致,即使我在前面賦值給變量,進(jìn)行簡單運(yùn)算,甚至在其它指標(biāo)中輸出,都不能在REFX函數(shù)中使用到,真正的當(dāng)前K線的CURRBARSCOUNT。
個(gè)人建議通達(dá)信研發(fā)部門,能在公式系統(tǒng)中提供一種方法,滿足用戶的這種需求——即預(yù)先記錄好當(dāng)前K線的CURRBARSCOUNT,然后在REF系列函數(shù)中使用。
-
網(wǎng)友交流:
續(xù)上:進(jìn)一步的猜測,通達(dá)信公式系統(tǒng)中目前CURRBARSCOUNT之類的變量賦值都是傳引用,所以導(dǎo)致這種現(xiàn)象。如果提供一種特定賦值方式,實(shí)現(xiàn)的時(shí)候?yàn)閭髦档哪J剑蟾趴梢越鉀Q這個(gè)問題。
-
網(wǎng)友交流:
呼吁通達(dá)信增加循環(huán)語句吧,否則許多類似的問題無解。
不過你這個(gè)具體問題倒可以變通:
X:=amo/10000;
S:=sum(X,0);
SumAmo:const(s)-ref(s,1);注意,amo值有時(shí)太大,有效數(shù)字位數(shù)可能保證不了。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容