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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- NULL值定義 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=4815)


由 peter109 在 2006-03-18 18:34 發表:

NULL值定義

變數X
請問如何定義X=NULL (即X不存在)

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2006-03-20 08:55 發表:

並無 定義X=NULL (即X不存在) 這種功能

但數列可用 SETLBOUND(X,0) 來將其設為無效數據


由 kkkkkk 在 2006-03-28 10:58 發表:

對於在奇狐中無法表現 null 這回事,覺得遺憾,例如在
barslast(date=1060101); 這種碰上休市日的狀況,把日期設為自然日固然可以表現,但是其不便性不言而喻
如果奇狐能加一個表現空白或null的函數,可以增強許多功力
這樣在公式中也可以像dBase或Excel一樣,使用諸如
if(C=null,x,y); 或者if(x=" ",y,z);這樣的論述了,否則一個公式,偶而碰到一支股票之公式中引用的數據沒有的時候,就因為這一支股票而壞了全體的數據,像佳和缺了12月份的數據,如果barslast正巧落在這段區間,就把整個公式的區段橫向統計拖累不全了


由 cgjj 在 2006-03-28 11:35 發表:

無 NULL 不代表不能處理
奇狐可利用 LBOUND 判斷數據是否有效
可把 無效數據 看成是一種 Null 的形態

以下為範例

//此行的 xx 為無效數據(因為20060101為星期日)
xx:barslast(date=1060101);

//若前 xx 為無效則取 20060101 之後的第一個交易日 (即20060102)
xx:=if(LBOUND(xx)=0,BARSSINCE(date>1060101),xx);

這處理方式可應用於很多地方


由 kkkkkk 在 2006-03-28 14:15 發表:

謝謝cgjj版主


由 kkkkkk 在 2006-04-11 16:11 發表:

上次承蒙指導,上述的null用法在固定單值(日期)的確有效,但是如果遇到數列的變數時,又要如何來處理呢?

例如: xx:barslast(day=25)=0; 或 barslast(weekday=3)=0; 這一類的休市日時,如何讓它變動去找前後的開市日呢?


由 cgjj 在 2006-04-11 16:42 發表:

以 barslast(weekday=3)=0 當範例

無則取前一天
barslast(weekday<3 and refx(weekday,1)>3 or weekday=3)=0;

無則取後一天
barslast(weekday>3 and ref(weekday,1)<3 or weekday=3)=0;


由 kkkkkk 在 2006-04-11 17:05 發表:

佩服得五體投地,不愧是總版主!!


由 c300_tw 在 2007-02-19 08:23 發表:

總版主請教您在您的範例中

//若前 xx 為無效則取 20060101 之後的第一個交易日 (即20060102)
xx:=if(LBOUND(xx)=0,BARSSINCE(date>1060101),xx);

但是請問如何
在20060101前的交易日判定XX 是不存在的

就是xx是null值

因為我主要是要判定xx何時開始成立
但在開始成立前我還是要作其他的處理

您的方法在20060101前xx是不存在
(就是在圖上不會顯示xx)


由 c300_tw 在 2007-02-19 09:34 發表:

已處理

謝謝總版主教學

可利用

CC:MA(C,30); //此時 數列CC 有效起始位置為30
LbCC:LBOUND(CC); //保存 數列CC 目前有效起始位置
x:SETLBOUND(CC,5); //變更 數列CC 有效起始位置為5
CC:=if(barpos>=X and (barpos<LBCC or LbCC=0) ,0,CC); //將原本屬無效數據的範圍,值均設為零值

再增加判斷即可
(比如把無效值設為-1或不用到的值


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


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

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