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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- IF ... THEN ... ELSE 的問題 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=5000)


由 fox1688 在 2006-04-15 18:37 發表:

IF ... THEN ... ELSE 的問題

TOHLC 的參數 N=2 時

為何會同時出現 OO & CC , 應該只有 CC 才對 ??

因為無法上傳圖檔 , 所以上傳 測試公式 TOHLC.ALG

IF N=1 THEN BEGIN
OO : O;
CC := C;
END;
ELSE
IF N=2 THEN BEGIN
OO := O;
CC : C;
END;


由 cgjj 在 2006-04-16 23:16 發表:

這問題與下列連結的問題屬同一類
近期升級會修正此 Bug
http://www.chiefox.com.tw/bbs/showt...=&threadid=4908


由 cgjj 在 2006-07-04 11:30 發表:

回覆: IF ... THEN ... ELSE 的問題

引用:
最初由 fox1688 發表
IF N=1 THEN BEGIN
OO : O;
CC := C;
END;
ELSE
IF N=2 THEN BEGIN
OO := O;
CC : C;
END; [/B]

這是一個不是 Bug 的 Bug
原因是公式編譯後, 即決定變數是否要輸出
而不是於 公式執行時期(Run 時) 才決定的

但可以用下列方式來達到我們要的效果:
 1.開始均設為要輸出
 2.最後將不想要輸出的變數, 均設為無效變數
  (可運用 SETLBOUND 指令設為無效變數)
註.設為無效變數後, 後續無法拿來計算


前面的問題, 改寫為這樣即可解決:
原碼:

OO
O//設為會輸出的項目
CCC//設為會輸出的項目
IF N=1 THEN BEGIN
  x
:=SETLBOUND(CC,0); //設 CC 為無效變數, 使 CC 不輸出
END;
ELSE
IF 
N=2 THEN BEGIN
  x
:=SETLBOUND(OO,0); //設 OO 為無效變數, 使 OO 不輸出
END;



若要考慮後續還可拿來計算, 可用另一變數處理之:
原碼:

OO
:O//輸出用
CC:C;
SOO:=OO//計算用
SCC:=CC;
IF 
N=1 THEN BEGIN
  x
:=SETLBOUND(CC,0); //設 CC 為無效變數, 使 CC 不輸出
END;
ELSE
IF 
N=2 THEN BEGIN
  x
:=SETLBOUND(OO,0); //設 OO 為無效變數, 使 OO 不輸出
END;
OC:SOO+SCC//運用來計算


由 fox1688 在 2006-07-07 10:06 發表:

其實這仍是真正的 BUG , 期待下次版本異動時能更正 !

因為 原條件是 正面表列 , 改成 負面表列 是 相當繁複的 ,

以我試寫是的 某公式 條件如下 :

參數 :
技術指標 = 0 - 13 0 : VOL 股票成交張數 / AMOUNT 指數成交量
1 : K線
     2 : KD (9,3,3)
     3 : KD (21,5,2)
     4 : KD (34,5,2)
     5 : MACD (26,12,9)
     6 : MACD (12,6,5)
     7 : BIAS (6,12,24)
     8 : RSI (6,12,24)
     9 : BOLL (20,20)
     10 : BBI
     11 : 3日高低
     12 : 平均K線 (類似 奇狐K線)
     13 : TESTCDP6 (21,13)

當某一條件成立 , 便需使其他不成立的條件失效

(可能 12*2 - 12*3 個變數失效 ?)

並不符合編寫公式的用意 !!


由 cgjj 在 2006-07-07 10:45 發表:

是不是 Bug 我想每個人見解不同
每套語言都有其特性, 不予置評

我已建議博庭未來能改善
現階段這是可行的方式

另外非常建議您
不要把 13 個公式湊在一起
使用上調整參數不方便
程式也難以維護容易出錯
對系統來說也較沉重
拆開來應用上會比較佳些


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


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

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