奇狐社區論壇
在這個頁面顯示本主題全部的 5 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- [進階教學] (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=46)
-- 01. 條件語句(判斷敘述) IF 《適用4.0版》 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=2646)


由 cgjj 在 2005-03-10 17:56 發表:

01. 條件語句(判斷敘述) IF 《適用4.0版》

【語句】IF



【用途】





根據設定的條件決定要執行的運算式(可使用多重條件式)

應用時常與迴圈敘述一塊搭配

 

【語法】





IF cond
THEN expr1

IF cond THEN
expr1 ELSE expr2



【參數】





cond 為判斷的條件式
expr1
為條件成立時要執行的運算式
expr2 為條件不成立時要執行的運算式



【說明】





當滿足 cond 條件的時候執行
expr1
運算式,否則執行 expr2 運算式
expr1
expr2 可為單一運算式或多行運算式(用Begin...End,
詳見範例2)



【注意】

 此指令僅能用於單一數值的判斷不能應用於整個數列的判斷

 像下面的這兩行 IF 運算式是不能跑的:







kk:0;

IF
close>open
THEN kk:=1;
IF

close>100  THEN
kk:=1;


由 cgjj 在 2005-03-10 17:57 發表:


【範例1】單行運算式




現週期為5分鐘最高價,若為其它週期則取收盤價

cc:close;

IF
DATAPERIOD=2 THEN
cc:=high;



現市場為臺灣期貨則取收盤價3日的均值,若為其它市場則取收盤價6日的均值

均:close;

IF MARKETLABEL='TF' THEN
均:=ma(均, 3); ELSE
均:=ma(均, 6);


由 cgjj 在 2005-03-10 18:04 發表:


【範例2】多行運算式








































現市場為臺灣期貨取量和價三日的均值,若為其它市場則取量和價六日的均值

cc: ma(close, 6);


vv: ma(vol, 6);
 

IF
MARKETLABEL='TF' THEN
Begin


  cc:=ma(close, 3);

  vv:=ma(vol, 3);

End;
也可寫為這樣 :
cc: ma(close, 6);


vv: ma(vol, 6);
   

IF
MARKETLABEL='TF' THEN

Begin


  cc:=ma(close, 3);

  vv:=ma(vol, 3);

End;


現週期為五分鐘取中價和量的三日均值,若為其它週期則取中價和量的六日均值
mm: ( high + low ) / 2;

vv: vol;

IF
DATAPERIOD=2 THEN
Begin


  mm:=ma(mm,3);

  vv:=ma(vv,3);

End;

ELSE Begin


  mm:=ma(mm,6);

  vv:=ma(vv,6);


End;
也可寫為這樣 :
mm: ( high + low ) / 2;

vv: vol;

IF
DATAPERIOD=2 THEN
Begin


  mm:=ma(mm,3);

  vv:=ma(vv,3);


End;

ELSE

Begin


  mm:=ma(mm,6);

  vv:=ma(vv,6);


End;


由 cgjj 在 2005-03-10 18:06 發表:


【範例3】多重條件式(巢狀條件式)




















現為加權指數則於解盤顯示"大盤"

週期同時為5分鐘則於解盤顯示"大盤5分鐘"

否則於解盤顯示"其它"


stxt:='其它';

IF STKLABEL='100' THEN
Begin


  stxt:='大盤';

  IF DATAPERIOD=2
THEN stxt:=stxt+'5分鐘';

End;

EXPLAIN(1,stxt);

也可寫為這樣 :
stxt:='其它';
IF
STKLABEL='100' THEN Begin

  stxt:='大盤';

  IF DATAPERIOD=2
THEN Begin

    stxt:=stxt+'5分鐘';

  End;
End;

EXPLAIN(1,stxt); 


由 cgjj 在 2006-11-07 16:20 發表:

20061107 更新Ok


全部時間均為台灣時間, 現在時間為02:25
在這個頁面顯示本主題全部的 5 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.