策略腳本沒有篩選出符合條件的股票

  •   119 
  • 最後發表   vfan  2024 四月 09
vfan 發文於   2024/03/22

您好 我有一個策略腳本 見附檔 
這個腳本 有3個主要條件 
1是要目前的本益比小於10倍
2是要 股價淨值比 小於5倍
3是要符合 2010-2014中間任何1年只要殖利率有一次超過9%就符合條件。
我有幾支股票在觀察的 目前是符合這3個條件的,可是都沒有被篩選出來,我用 2636 台驊投控做例子



易點靈的資料 目前本益比小於 10,股價淨值比 小於 5

台驊投控 2021 年 2022 年的殖利率都超過9%。

台驊投控完全符合腳本的條件,可是執行的結果卻沒有這檔股票,本來這檔股票一直在這個策略裡面有出來,大約一周前就沒有出現了。

請告知是我腳本出問題?還是資料出問題?還是 XQ選股出問題?謝謝。

附加文件

排序方式: 標準 | 最新
XS小編 發文於   2024/03/26

Hello vfan,

 

您的腳本撰寫有誤,condition2會是執行那一天的殖利率是否有超過9%。

 

小編會將 過濾殖利率 2010以後任何一年殖利率>9% 這一段改寫為:

SetFirstBarDate(20100101);  //設定腳本從20100101開始執行

 

if date <= 20141231 and getfield("殖利率", "D")>=9 then condition2 = True;    //如果20100101~20141231有任一天殖利率大於9的話,condition2就保持在True

 

這樣台驊投控就會符合condition2的條件。

 

如果運算的過久的話,可以考慮在腳本最前面加上:

if date > 20141231 and date < dateAdd(currentDate, "D", -10) then return;  //讓腳本運算在20100101~20141231,接著就要到今日前10天才會繼續運算。

vfan 發文於   2024/03/26

感謝您的協助,我照您給的語法 更新腳本後,執行這個腳本,結果沒有股票出來,您有試過 用您給的語法,是可以選出股票的嗎?再次麻煩。謝謝。

vfan 發文於   2024/03/26

對不起 我找到 bug了,沒有問題了。再次感謝!!!

vfan 發文於   2024/04/05

您好 謝謝您上次的指導,目前這個腳本是可以運行,沒有錯誤的。
其中這段語法 if date <= 20240331 and getfield("殖利率", "D")>=10 then condition2 = True; 
這是判斷日頻率,我嘗試把頻率改成 年 Y,這個腳本就跑不出來結果,沒有股票被篩選出來。
請教 要如何把判斷 殖利率的頻率·從日改為年,腳本仍然可以正常執行?

謝謝您的再次協助

下面是我把殖利率日頻率D 改為年頻率 Y,這樣改變雖然腳本可以編譯,可是卻跑不出來股票

 

//如果20100101~20240331有任一天殖利率大於10的話,condition2就保持在True

if date <= 20240331 and getfield("殖利率", "Y")>=10 then condition2 = True;

 

if condition1 and condition2 and condition3 and condition4 then ret=1;

 

outputfield1(getfield("殖利率", "Y"),"殖利率");

outputfield2(getfield("本益比", "D"),"本益比");

outputfield3(getfield("股價淨值比", "D"),"股價淨值比");



 

附加文件

XS小編 發文於   2024/04/09

Hello vfan,

 

殖利率 欄位只有提供日頻率,故改為年頻率的話策略就無法執行。

您可以在 XSHelp 上查詢欄位可使用的頻率。

發表回覆
Close