用選股中心篩選出當日週轉率在過去一段時間內排名前20%的個股

  •   369 
  • 最後發表   kokubo52  2024 五月 31
kokubo52 發文於   2024/05/29

你好

我想用選股中心篩選出當日週轉率在過去一段時間內排名前20%的個股

自己的寫法如下,但是value1得出的值都是0,請問是哪邊需要修正呢,謝謝

 

input:Period(1200, "區間");

input:ratio(20, "百分位");

value1=nthhighest(period*ratio/100,turnoverrate(1),period);

if  turnoverrate(1) >= value1 then ret = 1;

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

你的腳本有兩個問題:

(1)選股預設的資料筆數是10筆,超過的部份,無法獲取函數計算的值。

(2)透過setTotalBar可設定讀取資料筆數,但這個例子,你最多只能抓過去500天的資料。提醒你,這個腳本選出的股票是該股票目前的週轉率大於等於過去500天週轉率最高的20%的那個週轉率。

input:Period(500, "區間");

settotalBar(period);

input:ratio(20, "百分位");

if islastBar then 

begin

value1=nthhighest(period*ratio/100,turnoverrate(1),period);

if  turnoverrate(1) >= value1 then ret = 1;

outputField1(value1);

end;

  • 按讚來自於
  • kokubo52
kokubo52 發文於   2024/05/31

謝謝你的回覆

是的,我是要篩選出目前週轉率是在過去一段時間週轉率前20%百分位數以內的股票

我用了你的寫法跑了一次但是得出來的value1還是0

 

虎科大許教授 發文於   2024/05/31

我測試是OK的,有選出696檔。

input:Period(500, "區間");

settotalBar(period);

input:ratio(20, "百分位");

if islastBar then 

begin

value1=nthhighest(period*ratio/100,turnoverrate(1),period);

if  turnoverrate(1) >= value1 then ret = 1;

outputField1(value1,"20%的週轉率");

outputField2(turnoverrate(1),"目前的週轉率");

end;

附加文件

  • 按讚來自於
  • kokubo52
kokubo52 發文於   2024/05/31

我犯蠢了 選股那邊忘記把區間設成500

非常謝謝大大的解惑!!! 感激不盡!!

發表回覆
Close