當天日收盤價,上周收盤價與本周成交量(本周尚未結束),上周成交量

  •   118 
  • 最後發表   好朋友888  3 週前
好朋友888 發文於   2019/01/15

小幫手您好,

請問在同一個選股腳本中需用到下面4個資料

1. 當天日收盤價

2. 上周收盤價

3. 本周成交量(本周尚未結束,也就是需要從本周第一個交易日到今天的成交量加總)

4. 上周成交量

對於1,2,4我試著用

GetField("收盤價","D");         

GetField("收盤價","W");

GetField("成交量","W");

但是由於不同頻率,所以一直無法取得正確值,怎麼解決?

問題3(3. 本周成交量(本周尚未結束,也就是需要從本周第一個交易日到今天的成交量加總)), 我不知如何取得,請告知,

謝謝! 

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/01/16

Hi 好朋友888,

但是由於不同頻率,所以一直無法取得正確值,怎麼解決?

您好,可以使用跨頻率語法取得,並且選股策略的頻率要調整為「日」

最後要注意轉檔時間過後,資料才會更新,關於各資料的轉檔時間如下:

每日收盤後資料轉檔時間


問題3(3. 本周成交量(本周尚未結束,也就是需要從本周第一個交易日到今天的成交量加總)), 我不知如何取得,請告知,

應該使用以下範例程式碼即可取得,也要注意轉檔時間過後才會更新資料。

value3 = GetField("成交量","W");

 

以上方向供您參考,如附檔範例選股策略匯出檔,謝謝。

附加文件

好朋友888 發文於   2019/01/16

 謝謝您的回覆,依照您的腳本,是可以run的出來的.

我現在的情況是我的腳本比較複雜,而且用歷史資料也比較多,而其中百分之98以上都是在計算周資料,只有一點資料是用到當周的資料,

因此, 我設了setbarfreq為"W". (若是setbarfreq改成日,則取出的資料,則更為龐大,執行時間也非常長)不知在這種情況底下,如何去抓

1. 當天日收盤價

3. 本周成交量(本周尚未結束,也就是需要從本周第一個交易日到今天的成交量加總)

另外,下面我用getsymbolfield的語法不知哪裡有問題,請幫忙改正,謝謝!

setbarfreq("W");

 

var:name1("");

name1=symbol;

 

value11=getsymbolfield(name1,"收盤價","d");

value12=getsymbolfield(name1,"成交量","d");

 

value15=getsymbolfield(name1,"收盤價","w");

value16=getsymbolfield(name1,"成交量","w");

 

ret=1;

outputfield3(value11,"Dc-symbol");

 

outputfield4(value12,"Dv-symbol");

outputfield7(value15,"Wc-symbol");

 

outputfield8(value16,"Wv-symbol");

XQ小幫手 發文於   2019/01/17

Hi 好朋友888,

您好,使用跨頻率語法,要注意不能跨頻率取比現在還要小的頻率,例如:

執行頻率為週,跨頻率取日 <--- 無法這樣跨頻率取資料

 

故請分為兩個選股腳本,一個腳本跑日頻率;另一個腳本跑週頻率,

然後選股策略用這兩個腳本去跑,跑出來的數值應該就比較正確了,

如附檔選股策略匯出檔(DSTX)以上方向供您參考,謝謝。

附加文件

好朋友888 發文於   2019/01/17

謝謝您回答我的第一個問題. 若我從周頻率改成日頻率,這是否是代表我抓的資料數至少為"w周數*5"才能對應是吧? 

我的第二個問題,關於symbol 和 getsymbolfield的用法,亦請回覆,如何使用才正確,謝謝!

我再抄錄一遍如下.

setbarfreq("W");

 

var:name1("");

name1=symbol;

 

value11=getsymbolfield(name1,"收盤價","d");

value12=getsymbolfield(name1,"成交量","d");

 

value15=getsymbolfield(name1,"收盤價","w");

value16=getsymbolfield(name1,"成交量","w");

 

ret=1;

outputfield3(value11,"Dc-symbol");

 

outputfield4(value12,"Dv-symbol");

outputfield7(value15,"Wc-symbol");

 

outputfield8(value16,"Wv-symbol");

ps. 我用ouputfield(symbol,"股號")測試過,是沒問題的,symbol的資料,我判斷format應該是string無誤,但如上述例子的用法就無法使用.請釋疑.

XQ小幫手 發文於   2019/01/18

Hi 好朋友888,

 若我從周頻率改成日頻率,這是否是代表我抓的資料數至少為"w周數*5"才能對應是吧? 

您好,基本上是的,小幫手建議您在設大一點會比較不會有問題,

原因:雖然台股星期六開市已走入歷史,但選股回溯中有可能會遇到當週有6個交易日的狀況,

以上是小幫手淺見,供參考。


 

關於symbol 和 getsymbolfield的用法,

您好,因為執行選股的時候,會針對您的選股範圍,執行每一個商品,

故不需要用此方式撰寫,僅需使用小幫手在 2019/01/17 提供的範例即可。


 

 ps. 我用ouputfield(symbol,"股號")測試過,是沒問題的,symbol的資料,我判斷format應該是string無誤,但如上述例子的用法就無法使用.請釋疑.

因為 GetSymbolField 函數的第一個參數,不支援動態字串,故無法使用

getsymbolfield(symbol,"收盤價","d");

 

不過有支援以下的寫法,供您參考,謝謝。

input:aa("2330.TW", "商品代碼", inputkind:=dict(["台積電","2330.TW"],["台泥","1101.TW"]));
value1 = GetSymbolField(aa,"收盤價","D");

ret = 1;
outputfield1(value1,"Close");

 

 

carterlouis00 發文於   2020/06/23

如果頻率設為日Setbarfreq("D");

value8=Getfield("外資買賣超","D")[0];

value14=GetField("大戶持股比例","W",param:=400);

去抓週資訊

我發現抓出來的日資訊會有問題(外資買賣超)

請問為什這樣有問題

日週頻率由日到週 也是不能共用嗎?

 

 

Hi 好朋友888,

 

您好,使用跨頻率語法,要注意不能跨頻率取比現在還要小的頻率,例如:

 

執行頻率為週,跨頻率取日 <--- 無法這樣跨頻率取資料

 

 

 

故請分為兩個選股腳本,一個腳本跑日頻率;另一個腳本跑週頻率,

 

然後選股策略用這兩個腳本去跑,跑出來的數值應該就比較正確了,

 

如附檔選股策略匯出檔(DSTX)以上方向供您參考,謝謝。

XQ小幫手 發文於   2020/06/29

Hi carterlouis00,

如果頻率設為日Setbarfreq("D");

value8=Getfield("外資買賣超","D")[0];

value14=GetField("大戶持股比例","W",param:=400);

去抓週資訊

我發現抓出來的日資訊會有問題(外資買賣超)

請問為什這樣有問題

日週頻率由日到週 也是不能共用嗎?

您好,猜想您應該是 06/23 執行選股,如果是的話,因為這週的大戶持股比例尚未有資料,

執行選股時,系統為了要切齊週資料,導致日資料會取得上週的資料,所以會出現您所述的狀況,

為了避免此事情發生,可以使用以下的範例語法來判斷這週的大戶持股比例資料尚未更新時,自動抓取前一週的資料來替代

if datediff(GetFielddate("收盤價","D"),GetFielddate("收盤價","W")) < 6 then sameweek = 1 else sameweek = 0;
value14=GetField("大戶持股比例","W",param:=400)[sameweek];

如附檔範例選股匯出檔案,以上方向與說明供您參考,謝謝。 

 

附加文件

發表回覆
Close