到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > [進階教學] > 01. 條件語句(判斷敘述) IF 《適用4.0版》
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

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

【語句】IF

【用途】
根據設定的條件決定要執行的運算式(可使用多重條件式)
應用時常與迴圈敘述一塊搭配
 
【語法】
IF cond THEN expr1
IF cond THEN expr1 ELSE expr2

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

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

【注意】
 此指令僅能用於單一數值的判斷不能應用於整個數列的判斷
 像下面的這兩行 IF 運算式是不能跑的:
kk:0;
IF
close>open THEN kk:=1;
IF
close>100  THEN kk:=1;

向版主報告此篇 | 查IP位址
Old Post 2005-03-10 17:56
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例1】單行運算式

現週期為5分鐘最高價,若為其它週期則取收盤價
cc:close;
IF
DATAPERIOD=2 THEN cc:=high;

現市場為臺灣期貨則取收盤價3日的均值,若為其它市場則取收盤價6日的均值
均:close;
IF MARKETLABEL='TF' THEN 均:=ma(均, 3); ELSE 均:=ma(均, 6);

向版主報告此篇 | 查IP位址
Old Post 2005-03-10 17:57
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例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;

向版主報告此篇 | 查IP位址
Old Post 2005-03-10 18:04
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

【範例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); 

向版主報告此篇 | 查IP位址
Old Post 2005-03-10 18:06
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17600

20061107 更新Ok

向版主報告此篇 | 查IP位址
Old Post 2006-11-07 16:20
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為03:53 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法核准
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們