Countif 篩選不合預期

  •   28 
  • 最後發表   里歐  1 週前
里歐 發文於   2025/04/13

把腳本刪到剩以下,還是抓到不合預期 個股。

條件:

value9 = countif(close[1]<value77[1],3);

condition3 = value9 < 2;

例如04/11抓,我預期以下不應該抓到,因為往前算三天收盤價,全都低於最小均線。

note:
印值,未加value9的時候有成功印出,印出的 close 確實都低於 最小均線。(所以不該抓到)
Print("Date=", Date, "Close=", Close, "value77", value77, "value9=",value9);
加了value9 log找不到2248了,如下

 

刪減後的腳本如下:

//1815 03/19 短多




//=====均線================================================
Value11 = average(close, 5);
Value22 = average(close, 10);
Value33 = average(close, 20);

value55 = MaxList(Value11, Value22, Value33); //均線取最大
value66 = MaxList2(Value11, Value22, Value33); //均線第二大
value77 = MinList(Value11, Value22, Value33);
value88 = MinList2(Value11, Value22, Value33);



//===過濾空頭===前兩日不得都小於三條均線===================================================
value9 = countif(close[1]<value77[1],3);



condition3 = value9 < 2; //過去三日 最多一日低於所有均線




//reseult=====================================
//outputField1(close/value77,"距離最低均線距離");

if  condition3  then ret=1;

if date>=20250408 and date<=20250410 then
Print("Date=", Date, "Close=", Close, "value77", value77, "value9=",value9);

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/04/13

若你的需求是:過去三日收盤價低於所有均線的次數小於兩次,下列選股腳本是可以找出商品的:

//=====均線================================================

Value11 = average(close, 5);

Value22 = average(close, 10);

Value33 = average(close, 20);

value77 = MinList(Value11, Value22, Value33);

//過去三日收盤價低於所有均線的次數=========================

value9 = countif(close[1]<value77[1],3);

condition3 = value9 < 2; //過去三日 最多一日低於所有均線

if  condition3  then ret=1;

XS小編 發文於   2025/04/15

Hello 里歐,

 

2248 這檔商品在 2025/03/13 才上市,而XS語法中只能夠取用上市櫃的資訊。

故扣掉所需的歷史資料後,需要到 2025/04/11 才能夠計算。

您可以將 date>=20250408 and date<=20250410 這個條件拿掉後就能夠印出。

發表回覆
Close