近期高點往前尋找低點

  •   78 
  • 最後發表   Eddie Chuang  4 週前
Eddie Chuang 發文於   2025/12/18

請問版上高手們

input: Len(60, "近N日");

input: DN_Pct(30, "%盤整跌幅限制");

input: UP_Pct(20, "%波段高點漲幅");

var:_hbar(0);    //不含今日近期最高點相對位置

var:_hvol(0);    //高點大量

 

setbackBar(Len+40,"D");

 

_hbar=highestbar(H[1],Len)+1;

_hvol=maxList(V[_hbar-1],V[_hbar],V[_hbar+1]);

 

if H[_hbar]>=lowest(L[_hbar+1],Len)*(1+(UP_Pct*0.01))     //區間內最高點往前起算漲幅達N%以上

 and Lowest(C[1],_hbar-1)>=H[_hbar]*(1-(DN_Pct*0.01))     //量縮位置不回跌超過N%

 then ret=1;

 OutputField(1,Lowest(L[1],_hbar-1),2,"拉回最低價");

 OutputField(2,H[_hbar],2,"波段最高價");

 OutputField(3,Lowest(L[_hbar+1],Len),2,"前波段最低價");

 OutputField(4,(H[_hbar]-lowest(L[_hbar+1],Len))/lowest(L[_hbar+1],Len),2,"前波段漲幅");

 OutputField(5,H[_hbar]*(1-DN_Pct*0.01),2,"回測門檻");

想請問若使用2025/10/16號當日的選股回測出現1522堤維西,其中Lowest(L[_hbar+1],Len)的數值顯示為40.7為什麼不是38.35呢?  若用最新日期2025/12/18號則正常顯示為38.35,請順什麼原因導致呢?  

另外請教Lowest(L[_hbar+1],20) 是在高點前一根K棒往前開始算20天內取最低值的低點沒錯吧?

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

highestbar(H[1],Len)+1

Lowest(L[_hbar+1],Len)

改成

simplehighestbar(H[1],Len)+1;

simpleLowest(L[_hbar+1],Len)

 

Eddie Chuang 發文於   2025/12/19

謝謝回覆,請問是所有取極值得地方都修改嗎? Lowest(C[1],_hbar-1)這個地方是否也要修改呢?

或是您說的這兩個地方修改就好呢?

虎科大許教授 發文於   2025/12/19

所有求極值的指令都修改。

XS小編 發文於   2025/12/30

Hello Eddie Chuang,

 

小編補充,highest / lowest 是用節省效能的方式撰寫,因此無法處理較特殊的狀況,例如跨頻率或 Low[_hbar+1] / Len 這種起始點/計算長度會變動的資料。

需改用simplehighest / simplelowest才能夠計算出正確的數值。

發表回覆
Close