你好
我想用選股中心篩選出當日週轉率在過去一段時間內排名前20%的個股
自己的寫法如下,但是value1得出的值都是0,請問是哪邊需要修正呢,謝謝
input:Period(1200, "區間");
input:ratio(20, "百分位");
value1=nthhighest(period*ratio/100,turnoverrate(1),period);
if turnoverrate(1) >= value1 then ret = 1;
 
        
        你好
我想用選股中心篩選出當日週轉率在過去一段時間內排名前20%的個股
自己的寫法如下,但是value1得出的值都是0,請問是哪邊需要修正呢,謝謝
input:Period(1200, "區間");
input:ratio(20, "百分位");
value1=nthhighest(period*ratio/100,turnoverrate(1),period);
if turnoverrate(1) >= value1 then ret = 1;
你的腳本有兩個問題:
(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;
謝謝你的回覆
是的,我是要篩選出目前週轉率是在過去一段時間週轉率前20%百分位數以內的股票
我用了你的寫法跑了一次但是得出來的value1還是0
我測試是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;
我犯蠢了 選股那邊忘記把區間設成500
非常謝謝大大的解惑!!! 感激不盡!!
4 評論