請問如何抓取上週五與上上週五的法人數據

  •   42 
  • 最後發表   發達的彼得  4 週前
發達的彼得 發文於   2024/06/10

小弟剛學習xs,實在摸不出來,請小編幫忙

請問我在週頻率下如何抓取上週五 & 上上週五的法人買賣超?

如果上週五剛好休市,則數據用0代入

謝謝指導

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/06/11

若只是抓取每週最後的法人買賣超,可用GetField("法人買賣超張數", "W")。

GetField("法人買賣超張數", "W")代表本週最後的買賣超,若週五收盤後,代表本週五的買賣超。

GetField("法人買賣超張數", "W")[1]代表上週五的買賣超。若週五休市,要設為零,就比較麻煩。

可在主頻率為日的情況下,使用xf_GetDTValue處理:

value1=GetField("法人買賣超張數", "W")[1];

value2=xf_GetDTValue("W", date);

if value2<>value2[1] and DayOfWeek(value2[1])<>5 then value1=0;

  • 按讚來自於
  • winnettson
XS小編 發文於   2024/06/13

Hello 發達的彼得,

 

小編建議您先觀看網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

 

如果執行頻率是週的話 GetField("法人買賣超張數") 取得的就會是週頻率的資料。

就描述來看,您想取的是日頻率的資料。

小編不建議在大頻率跨到小頻率去取值,因為這樣資料對位會比較麻煩。

但如果要作的話,可以考慮使用 DayOfWeek (視情況搭配迴圈) 向前檢查對應期數的日頻率日期 (GetField("Date", "D")),來取得前2期週五的法人買賣超。

 

感謝 虎科大許教授 的熱心回覆。

  • 按讚來自於
  • winnettson
發達的彼得 發文於   2024/06/16

 

謝謝許教授,小弟再來研究一下

的確如小編說的,我是想在大頻率去抓小頻率的值

我主要目的是想要取三大法人從『上週五 ~ 本週四』的持股增減總和當作每一期的基數

但週頻率是用本週一~本週五的總和

所以小弟才想手動調整成自己想要的數值:『週頻率法人增減』-『本週五法人增減』+『上週五法人增減』

無奈不知道該怎麼寫,所以上聊天區找找大家的討論&求救

再次感謝許教授&小編的指導

謝謝

虎科大許教授 發文於   2024/06/16

週頻率的法人買賣超張數也是累加的,你一樣可以用日頻率抓每天的買賣超並累加。

XS小編 發文於   2024/06/19

Hello 發達的彼得,

 

若要加總上週五到週四的某個數值的話,小編會建議您使用日頻率比較方便,舉例來說:

if dayofweek(date) = 5 then value1 = 0;

value1 += GetField("法人買賣超", "D");

 

這樣value1就會是週五開始累積的法人買賣超。(不過還會需要處理週五放假的情況)

 

若要在週頻率上執行的話,就是要用迴圈向前抓取,舉例來說:

value1 = 0;

if dayofweek(GetField("Date", "D")) = 5 then value2 = 1 else value2 = 0;

for value3 = value2 to 5 begin

    value1 += GetField("法人買賣超", "D")[value3];

    if value3 > 0 and dayofweek(GetField("Date", "D")[value3]) > dayofweek(GetField("Date", "D")[value3 - 1]) then break;

    end;

 

這樣value1就會向前累加,直到加滿5天或是換週後的該週最後一天。

發表回覆
Close