Rank是一個選股腳本內才能使用的語法,主要是用來宣告腳本執行排行的作業。 通常用於選股中心內的排行語法。
Rank支援的屬性:
pos:排行名次,整數,從 1 開始,1 是第一名。
range:排行 %,等於 pos / <參與排行商品數> * 100。這是一個實數(有小數點),數值範圍介於 0 ~ 100 之間,越小排名越前面。
pr:Percentile Rank %。PR = (N - pos) / (N - 1) * 100。這是一個實數,數值範圍介於 100 ~ 0 之間,第一名是 100,PR95 表示是 95% 之前。
count:參與排行的商品個數。這個數值對任何一檔商品而言都是固定的。
value:rank object 的回傳數值,也就是 retval 的回傳數值。
avgvalue:所有商品 rank.value 的平均值。可以使用這個數值來決定目前商品是否是在平均值以上或是平均值以下。這個數值對任何一檔商品而言都是固定的。
medvalue:所有商品 rank.value 的中位數 (median value)。可以使用這個數值來決定目前商品是否是在中位數以上或是中位數以下。這個數值對任何一檔商品而言都是固定的。
minvalue:所有商品內 rank.value 的最小值。
maxvalue:所有商品內 rank.value 的最大值。
Q1:把所有商品的 rank.value,依照由小到大排序後前 25% 位置所對應的數值。
Q3:把所有商品的 rank.value,依照由小到大排序後前 75% 位置所對應的數值。
isvalid:數值,回傳 0 或 1,0 的話代表這檔商品沒有加入排行。可能的情形是沒有指定 retval 或是執行時發生錯誤。
以下範例:依據收盤價與均線的乖離程度進行排序,並透過pos屬性篩選出前期排行與當期排行不同的商品。
Rank _bias10 begin
retval = close - average(close, 10);
end;
if _bias10.pos[1] <> _bias10.pos then ret = 1;