@=引用操作符
引用操作符
例如:
"INDIE.VAR"(P1,P2) 引用INDI指標(biāo)的VAR輸出,計算參數(shù)為P1,P2
。若沒有指定公式線,系統(tǒng)將取最后一行公式輸出
數(shù)據(jù)類型有TICK、MIN1、MIN3、MIN5、MIN10、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、
YEAR、MULTIDAY、MULTIMIN、MULTISEC、MULTIHOUR、QUARTER、SEMIYEAR、SOLARTERM
"MACD#WEEK"(26,10,5) 引用周線數(shù)據(jù)的MACD指標(biāo)最后一行公式輸出
"MACD"表示該指標(biāo)的最后—行公式輸出并且使用公式的默認(rèn)參數(shù)。
"000001$CLOSE" 引用品種000001的收盤價
"SZ000001$CLOSE#WEEK" 引用SZ市場的品種000001周線收盤價
"VOL##DAY"引用日線數(shù)據(jù)的前一周期的VOL指標(biāo)
"DLLNAME@FNCNAME"(P1,P2) 引用DLLNAME.DLL的FNCNAME函數(shù),計算參數(shù)為P1,P2
[]=數(shù)組下標(biāo)
對下標(biāo)對應(yīng)的數(shù)組或序列元素進(jìn)行取值或賦值
數(shù)組下標(biāo)從1開始直到數(shù)據(jù)數(shù)量
例如:
VARIABLE:VARR1[10]=0,SARR[5]='STR';VARR1[1]:=VARR1[10];
定義1個含10個元素的數(shù)組并進(jìn)行取值和賦值
又如移動平均線可通過如下循環(huán)語句和數(shù)組操作實現(xiàn):
INPUT:N(5,2,500); //參數(shù)申明
VARIABLE:I=0,S=0;
VAR1:=C; //變量申明
//為了加快運(yùn)算速度,只有最后一個周期時才循環(huán)計算
IF NOT(ISLASTBAR) THEN EXIT;
FOR J=1 TO DATACOUNT DO BEGIN
S:=S+VAR1[J];
IF J>=N THEN BEGIN
IF J>N THEN
S:=S-VAR1[J-N];
MA1[J]:S/N; //實現(xiàn)MA(C,N)
I:=0;
END;
END;
AND=與
邏輯與運(yùn)算
用法
A AND B
表示條件A與條件B同時成立
BEGIN=把多條語句看作一條語句
把多條語句看作一條語句
語法:BEGIN...END
BREAK=跳出循環(huán)
跳出循環(huán)
語法:BREAK;
CONTINUE=繼續(xù)循環(huán)
使本次循環(huán)提前結(jié)束(不再執(zhí)行CONTINUE
下面的語句),然后再根據(jù)循環(huán)條件是否滿足決定是否進(jìn)入下次循環(huán)。
DO=執(zhí)行語句
執(zhí)行語句
語法:
FOR VAR=N1 TO N2 DO EXPR;
WHILE COND DO EXPR
ENTERLONG=開多
交易系統(tǒng)之多頭買入信號
例如:
ENTERLONG:CROSS(VAR1,VAR2)
ENTERSHORT=開空
交易系統(tǒng)之空頭買入信號
例如:
ENTERSHORT:CROSS(VAR1,VAR2)
EXIT=終止執(zhí)行
終止公式執(zhí)行
語法:EXIT;
EXITLONG=平多
交易系統(tǒng)之多頭賣出信號
例如:
EXITLONG:CROSS(VAR1,VAR2)
EXITSHORT=平空
交易系統(tǒng)之空頭賣出信號
例如:
EXITSHORT:CROSS(VAR1,VAR2)
FOR=循環(huán)語句
語法:
FOR VAR=N1 TO N2 DO EXPR;
從 VAR=N1 開始到 VAR=N2 開始循環(huán)執(zhí)行 EXPR 語句,每執(zhí)行一次VAR加1
FOR VAR=N1 DOWNTO N2 DO EXPR2;
從 VAR=N1 開始到 VAR=N2 開始循環(huán)執(zhí)行 EXPR 語句,每執(zhí)行一次VAR減1
注意:請盡量不要在FOR循環(huán)控制語句中使用MA,HHV,LLV等帶有序列變量的統(tǒng)計類函數(shù),
雖然能通過編譯,但是會運(yùn)行不正常,應(yīng)該把他們放在語句的外面計算
GOTO=無條件跳轉(zhuǎn)
無條件轉(zhuǎn)向公式內(nèi)的某一處,公式必須指出轉(zhuǎn)向的目標(biāo)行,目標(biāo)行用標(biāo)號指明。其語法格式為:
GOTO 標(biāo)號@
例如:
IF ISLASTBAR THEN GOTO QUITLINE; //最后一個周期跳過均線計算行
B:MA(C,5);
QUITLINE@ EXIT;
IF THEN=條件語句
語法:IF COND THEN EXPR1 ELSE EXPR2
當(dāng)滿足 COND 條件的時候,執(zhí)行語句 EXPR1,否則執(zhí)行 EXPR2 語句
注意:請盡量不要在IF THEN條件控制語句中使用MA,HHV,LLV等帶有序列變量的統(tǒng)計類函數(shù),
雖然能通過編譯,但是會運(yùn)行不正常,應(yīng)該把他們放在語句的外面計算
條件語句用法
條件語句中有 if then begin 和if then
這兩個結(jié)構(gòu)的用法和區(qū)別在哪里
if then
begin
//語句中間可以有若干行語句
end
if then
//語句下只能有一行
INPUT=申明參數(shù)
申明并設(shè)置參數(shù)
語法:
INPUT:PNAME1(DFT,MIN,MAX,STEP),PNAME2(DFT,MIN,MAX,STEP)...;
PNAME表示參數(shù)名, DFT表示缺省值
MIN表示最小值,MAX表示最大值
STEP表示優(yōu)化步長,除DEFAULT外都可省略
例如:
INPUT:N(5), M(10,1,100,2);
表示定義參數(shù)N,缺省值為5
定義參數(shù)M,缺省值為10,最小值為1,最大值為100,優(yōu)化步長為2
OR=或
邏輯或運(yùn)算
用法
A OR B
表示條件A與條件B只要有一個成立即可
REFLINE=設(shè)置坐標(biāo)線
設(shè)置坐標(biāo)線
語法:
REFLINE:N1,N2,...,NX;
例如:
REFLINE:0,20,50,80,100;
表示畫出對應(yīng)值為0,20,50,80,100的坐標(biāo)線
REPEAT=循環(huán)語句
語法:REPEAT EXPR UNTIL COND
循環(huán)執(zhí)行語句 EXPR 直到滿足 COND 條件的時候才中止
注意:請盡量不要在REPEAT條件控制語句中使用MA,HHV,LLV等帶有序列變量的統(tǒng)計類函數(shù),
雖然能通過編譯,但是會運(yùn)行不正常,應(yīng)該把他們放在語句的外面計算
VARIABLE=申明變量
申明并初始化變量;
語法:
VARIABLE:VARNAME1=INITVALUE1,VARNAME2=INITVALUE2...;
例如:
VARIABLE:X=1,Y=CLOSE,ARR[10]=0,SARR[5]='STR';
表示定義常數(shù)變量X并初始化為1,
申明序列變量Y并初始化為收盤價,
申明含10個浮點(diǎn)數(shù)的數(shù)組并全部初始化為0
申明含5個字符串的數(shù)組并都初始化為'STR'
WHILE=循環(huán)語句
語法:WHILE COND DO EXPR
當(dāng)滿足 COND 條件的時候,循環(huán)執(zhí)行語句 EXPR
注意:請盡量不要在WHILE條件控制語句中使用MA,HHV,LLV等帶有序列變量的統(tǒng)計類函數(shù),
雖然能通過編譯,但是會運(yùn)行不正常,應(yīng)該把他們放在語句的外面計算