我想爲平衡交易量(SQL函數)創建一個函數。 這太複雜了,但是這裏是用戶定義表函數的概要。如果有人能幫助我填補空白,我將不勝感激。 克雷格用於餘額交易量(財務查詢)的SQL函數
CREATE FUNCTION [dbo].[GetStdDev3] (@TKR VARCHAR(10))
RETURNS @results TABLE (
dayno SMALLINT IDENTITY(1,1) PRIMARY KEY
, [date] DATETIME
, [obv] FLOAT
)
AS BEGIN
DECLARE @rowcount SMALLINT
INSERT @results ([date], [obv])
// CREATE A FUNCTION FOR ON BALANCE VOLUME
// On Balance Volume is the Summ of Volume for Total Periods
// OBV = 1000 at Period = 0
// OBV = OBV Previous + Previous Volume if Close > Previous Close
// OBV = OBV Previous - Previous Volume if Close < Previous Close
// OBV = OBV Previous if Close = Previous Close
// The actual Value of OBV is not important so to keep the ratio low we reduce the
// Total Value of Tickers by 1/10th or 1/100th
// For Value of Volume = Volume * .01 if Volume < 999
// For Value of Volume = Volume * .001 If Volume >= 999
FROM Tickers
RETURN
END
這是代號表
[dbo].[Tickers](
[ticker] [varchar](10) NULL,
[date] [datetime] NULL,
[high] [float] NULL,
[low] [float] NULL,
[open] [float] NULL,
[close] [float] NULL,
[volume] [float] NULL,
[time] [datetime] NULL,
[change] [float] NULL
)
這裏是數據的一例
ticker date close volume
pzi: 5-10-10 10.94 805
pzi; 5-11-10 11.06 444
pzi: 5-12-10 11.42 236
pzi: 5-13-10 11.3 635
pzi: 5-14-10 11 316
date obv
5-10 996.38
5-11 996.82
5-12 997.06
5-13 996.42
5-14 996.11
我沒有看到一個期間的列,是按時間順序的期間?你能給我們提供一些示例數據和示例輸出來說明每種情況嗎? – Thomas 2010-05-15 20:42:36
另外,您使用的是哪種數據庫產品和版本? – Thomas 2010-05-15 20:43:17
期間只是日期...(查詢的所有日期或可用數據的所有日期)。我正在使用SQL 2005.使用以下代碼表和輸出的數據的OBV的示例如下... – CraigJSte 2010-05-16 00:44:27