- 變數的對位方式
- 資料欄位的對位方式
變數的對位方式
很多 XQ 的資深用戶,經常使用「變數(Variable)」這個概念。尤其是當我們想要進行 重複性較高的運算式 時,通常都會將資料欄位包入變數。我們用以下情境來說明舉例:用戶想要計算近 4 期的月營收平均,於是寫出下方 XS 代碼。// 計算 近 4 期的月營收平均 Value1 = GetField("月營收", "M"); Value2 = Average(Value1+Value1[1]+Value1[2]+Value1[3], 4);但由於變數後方的中括號,其實是代表著不同頻率下的資料內容於是,系統將這串 XS 代碼理解成:Value1 = 取得當期K棒日期之變數內容 = GetField("月營收", "M")Value1[1] = 取得前 1 期K棒日期之變數內容 = GetField("月營收", "M") 您沒有看錯,Value1 和 Value1[1] 都會取得相同的欄位資料!由於最新一期的月營收尚未公布,而用戶又誤將變數後方的中括號,當作是資料欄位的期數。這時,如果在月營收尚未公布之前,就開始計算 T 日和 T+1 的月營收,用戶就會取得相同的資料,進而導致運算結果在某些時間點可能有誤。 ▼ 從下方 2023-06-30 的選股結果就可發現,由於台泥 5 月營收為 95.96 億元;4月營收為 91 億元。但時間到了2023-07-03 ,當期月營收和上一期月營收卻都變成 95.96 億元。這就是誤將變數中括號內的期數,誤作成資料欄位期數的結果。因此,當我們在使用變數時,要特別留意中括號的意義,以免造成運算結果錯誤唷!