還請老師指定一下,問題一大串一大串的來.
在文華中,我使用以下代碼來提取? ?MACD指標(biāo)中? 當(dāng)天紅柱堆 的最高值? ?和? 前一個(gè)紅柱堆 中的最高值
==========
//MACD
DIF := EMA(CLOSE,12) - EMA(CLOSE,26);//短周期與長周期的收盤價(jià)的指數(shù)平滑移動平均值做差。
DEA? := EMA(DIF,9);//DIFF的M個(gè)周期指數(shù)平滑移動平均
MACDSX:=2*(DIF-DEA);//DIFF減DEA的2倍畫柱狀線
?
//價(jià)格
本HG:=HHV(H,BARSLAST(CROSS(MACDSX,0))+1),NODRAW;//本紅柱堆
1HG:=REF(HHV(H,BARSLAST(CROSS(MACDSX,0))+1),BARSLAST(CROSS(0,MACDSX))+1),COLORRED,NODRAW;//前紅柱堆
2HG:=REF(REF(HHV(H,BARSLAST(CROSS(MACDSX,0))+1),BARSLAST(CROSS(0,MACDSX))+1),BARSLAST(CROSS(0,MACDSX))+1)
=====我在MC中想寫一個(gè)函數(shù),到是能夠直接調(diào)用
Input:?
NUM(numericsimple );//輸入第一個(gè)可以以此調(diào)用
variables:
DIF( 0 ),
DEA( 0 ),?
MACDSX( 0 ),
BHG(0), HG1(0), HG2(0),HG3(0),
?
//MACD ZHIBIAO
DIF =MACD( Close, 12, 26 ) ;
DEA = XAverage(DIF,9);
MACDSX = (DIF-DEA)*2;
//HG-MACD
BHG=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1));
VAR0=mro( MACDSX CROSS UNDER 0,1000,1);
HG1=BHG[VAR0];
?
=====
但出現(xiàn)錯(cuò)誤
References to previous values are not allowed in simple functions.
錯(cuò)誤行 0, 錯(cuò)誤列 0
?
以前的值的引用是不允許在簡單的功能
==
調(diào)用一個(gè)數(shù)值之前的值? 不是使用[]的嗎?? ?[]不是想相當(dāng)于文華的REF嗎?
查看論壇中之前的案例? 使用AGO以后 還是不行
BHG=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1));
VAR0=mro( MACDSX CROSS UNDER 0,1000,1);
HG1=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1))of VAR0 bar ago;
?
看一下這個(gè)帖子:“時(shí)序類型函數(shù)、數(shù)值類型函數(shù)、自動類型函數(shù)”
您可以在公式編譯器的屬性中將函數(shù)存儲的類型更改成“自動”或者“數(shù)列”,具體原因看上面的帖子您的代碼中出現(xiàn)了語句“HG1=BHG[VAR0];”,而這個(gè)在數(shù)值類型函數(shù)中是不允許的