[xs][大戶比連增+主力買超+區間股價尚未大漲大跌]

  •   429 
  • 最後發表   里歐  2023 八月 02
里歐 發文於   2023/07/23


如標題~
想設幾個條件
1.大戶比例連續增多兩周
2.主力(投信or外資) 連續買超
3.該區間股價尚未大漲/大跌 (目前想請益這部份)

目前條件1.2的部份暫時寫成以下
條件1:

value1 = GetField("大戶持股比例",param := 400); //持股400張以上

value2 = value1[1];

value3 = value1[2];

if value1 > value2 and value2 > value3 then ret =1;

條件2:

value1 = countif(GetField("投信買賣超", "D") > 1, 3);

if value1 > 2 then ret =1;


主要想先請教3
股價尚未大漲的部份可能怎麼設定,如下圖
桃色的部份對我來說是盤整,青藍色是已漲,是否有內建的條件可以大致篩選符合桃色的部份呢....


有嘗試寫成以下,用近幾日 收盤來比較,但選股時找不到預期的股票。(有用指標看 看起來值應是對的)
這部份也想麻煩健檢一下,如下圖

value5 = Highest(GetField("收盤價"),12);

value6 = lowest(GetField("收盤價"),12);

 

condition3 = value5/value6 < 1.15;




主要想請教兩點
1.條件3 股價盤整位階(如第一張圖) 有什麼好用的func? 均線糾結?
2.目前用 用12日內收盤價 最高最低價差不要太大來選股
   但沒找到預期,腳本如上,再麻煩健檢 (如圖2 ,6/28)

以上 感謝....

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/07/26

Hello 里歐,

 

value1 = GetField("大戶持股比例",param := 400); //持股400張以上

value2 = value1[1];

value3 = value1[2];

if value1 > value2 and value2 > value3 then ret =1;

 

如果您使用的是週頻率,那麼這樣是可以的,但若是其他頻率會出錯。

假設是日頻率的話應該是:

condition1 = GetField("大戶持股比例", "W",param := 400) > GetField("大戶持股比例", "W",param := 400)[1]

             and GetField("大戶持股比例", "W",param := 400)[1] > GetField("大戶持股比例", "W",param := 400)[2];

 

要判斷股票是否上漲有很多種方法,舉例來說,您可以判斷現在的價格與近N期的最低價相差小於X%:

value1 = lowest(low, 10);

condition1 = 100 * (close - value1) / value1 < 5 and 100 * (close - value1) / value1 > -5;    //現在的價格與近10期最低價相差小於5%

除此之外也可以考慮使用斜度 LinearRegAngle 來判斷。

均線糾結都然也可以。

 

value5 = Highest(GetField("收盤價"),12);

value6 = lowest(GetField("收盤價"),12);

condition3 = value5/value6 < 1.15;

建議您在腳本中直接將 value5, value6 和 value5/value6 印出確認,可能是您撰寫方式或使用的設定和指標不同所導致。

小幫手用選股出來的數值和圖上的相同。(參考附圖)

 

附加文件

里歐 發文於   2023/07/26

HIHI 請問
條件1 : 我以為預設就會是周頻率,因為我看是周末才會一次更新,
             請問要怎麼確認 我是用什麼頻率??

條件3: 意思是小幫手也是算出一樣的答案? 並且該條件可以6/28可以選到3289個股嗎?
           除了腳本本身內容 還有其他設定可能會影響?! 因為我篩不到QQ

我的腳本部份內容如下,加上條件3 才會篩不到。


全部腳本內容:

//=======條件1 大戶持股比例==============================================

value1 = GetField("大戶持股比例",param := 400); //持股400張以上

 

value2 = value1[1];

value3 = value1[2];

 

condition1 = value1 > value2 and value2 > value3;

//=======條件2 主力連續買超==============================================

value4 = countif(GetField("投信買賣超", "D") > 1, 3);

//連買或者n日買m次以上

condition2 = value4 > 2;

 

//或者 n日內 主力買超大於多少

 

//=======條件3 股價尚未大漲==============================================

value5 = Highest(GetField("收盤價"),12);

value6 = lowest(GetField("收盤價"),12);

 

condition3 = value5/value6 < 1.15;

 

//=======條件4 低低高,底底高==============================================

 

 

 

if condition1 and condition2  then ret =1;

 

//=======範例==============================================

 

//1723 06/28 (損)

 

XQ小幫手 發文於   2023/07/28

Hello 里歐,

 

網站上有教學區,裡面有XS語法的基礎和應用。

小幫手建議您可以先閱覽該區的文章。

如果您覺得哪裡不容易理解可以告知,讓小幫手請相關人員確認修改。

 

請問要怎麼確認 我是用什麼頻率??

=> 您可以在策略中確認。(參考附圖)

 

 

大戶持股比例是週頻率以上的資料,由於您在腳本中沒有特別指定頻率,所以策略會預設為週頻率。

而您圖中的 value5/value6 是用日頻率的資訊計算的,那麼算出來當然會不同。

 

需注意若使用日頻率跨週頻率取大戶持股比例資料,要抓取前期值(上禮拜)的值要用 GetField("大戶持股比例", "W", param := 400)[1] 的方式。

小幫手會這樣修改,並將執行頻率設為日:

 

condition1 = GetField("大戶持股比例", "W",param := 400) > GetField("大戶持股比例", "W",param := 400)[1]

             and GetField("大戶持股比例", "W",param := 400)[1] > GetField("大戶持股比例", "W",param := 400)[2];

 

value4 = countif(GetField("投信買賣超", "D") > 1, 3);

condition2 = value4 > 2;

 

value5 = Highest(GetField("收盤價"),12);

value6 = lowest(GetField("收盤價"),12);

condition3 = value5/value6 < 1.15;

 

if condition1 and condition2 and condition3  then ret =1;

 

這樣在 06/28 時就可以篩選1723。

附加文件

里歐 發文於   2023/07/30

感謝  目前 6/28 可以順利找到 3289個股

另外請教一下,以下是以上腳本在
07/30 去搜尋 歷史資訊07/24,那我07/24當日搜尋 應該是找不到該股,因為該周大戶比例資訊還沒出來
我預期是這樣,想跟小幫手確認下。

XQ小幫手 發文於   2023/08/02

Hello 里歐,

 

目前集保週資料對位在過去的歷史資料時,會因為該週的歷史資料已經存在故可以取得。

未來預計會作調整,細節可以參考此篇文章: 集保相關欄位調整

發表回覆
Close