求高手解答一個匪夷所思的公式計算問題! [通達信]
-
咨詢內(nèi)容:
思路:當(dāng)前MACD為負值,(即當(dāng)前光標所處位置為MACD為綠柱子的區(qū)域)我想求出上一次MACD為負值時區(qū)間內(nèi)的最低價,即求PQD的值。
表達式如下:
{N1定義為最近一次MACD柱子下穿0軸的位置}
N1:=BARSLAST(CROSS(0,MACD));
{N2定義為最近一次MACD柱子上穿0軸的位置}
N2:BARSLAST(CROSS(MACD,0));
{N3定義為前一次MACD柱子下穿0軸的位置}
N3:REF(N1,N1+1)+N1+1;
{計算前低價格PQD}
M23:N3-N2;
PQD:REF(LLV(L,M23),N2+1);
問題:上述公式驗證時發(fā)現(xiàn)PQD的取值不正確。
驗證過程如下:以深圳指數(shù)(04)日線為例,將光標移至20150306,按道理此時的PQD的計算結(jié)果應(yīng)該為20150119日的最低值 10634.62。可是取到的卻是20150206的10715.43。
為進一步驗證細節(jié),將計算PQD所需要的各個參數(shù)加以輸出。此時M23(將光標移至20150306)輸出為25,沒有問題。將公示中的M23用常數(shù)25替代的話,則PQD的取值是正確的10634.62 但是直接用這樣表達PQD:REF(LLV(L,M23),N2+1);結(jié)算結(jié)果就不正確呢??
請高手賜教!!
-
通達信技術(shù)部:
N1:=BARSLAST(CROSS(0,MACD.MACD));{N1定義為最近一次MACD柱子下穿0軸的位置}
N2:=BARSLAST(CROSS(MACD.MACD,0));{N2定義為最近一次MACD柱子上穿0軸的位置}
N3:=REF(N1,N1+1)+N1+1;{N3定義為前一次MACD柱子下穿0軸的位置}
M23:=N3-N2;
PQD:REF(LLV(L,M23),N2+1);{計算前低價格PQD};說明:引用指標,取值默認為第一個值。所以你上面的公式默認取的是MACD中的DIF.要取MACD的值,得這樣寫"MACD.MACD”。
-
通達信客服:
謝謝回復(fù)~~
我漏了一點,我的公式定義的頂部就有以下幾行代碼,應(yīng)該是這樣的。
DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA);
N1:=BARSLAST(CROSS(0,MACD.MACD));{N1定義為最近一次MACD柱子下穿0軸的位置}
N2:=BARSLAST(CROSS(MACD.MACD,0));{N2定義為最近一次MACD柱子上穿0軸的位置}
N3:=REF(N1,N1+1)+N1+1;{N3定義為前一次MACD柱子下穿0軸的位置}
M23:=N3-N2;
PQD:REF(LLV(L,M23),N2+1);{計算前低價格PQD};
現(xiàn)在的主要問題還是主貼里的問題,我將N1 N2 N3 M23的計算結(jié)果都輸出檢測了,這些計算都是正確的。可是
PQD:REF(LLV(L,M23),N2+1)這個計算結(jié)果不對
這一句我要表達的意思是 從光標處作為當(dāng)前,求N2+1日之前的M23日這個區(qū)間內(nèi)L的最低值。
-
網(wǎng)友交流:
為什么我的排版發(fā)出來就不換行了呢
-
網(wǎng)友交流:
你下載完整的數(shù)據(jù)在試試,我這里顯示的是正確的:
DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA);
N1:=BARSLAST(CROSS(0,MACD));{N1定義為最近一次MACD柱子下穿0軸的位置}
N2:=BARSLAST(CROSS(MACD,0));{N2定義為最近一次MACD柱子上穿0軸的位置}
N3:=REF(N1,N1+1)+N1+1;{N3定義為前一次MACD柱子下穿0軸的位置}
M23:=N3-N2;
PQD:REF(LLV(L,M23),N2);{計算前低價格PQD};
此主題相關(guān)圖片如下a1.png:
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容

會員登錄/注冊