一段時間內的最低點高最高點的漲幅篩選

  •   21 
  • 最後發表   小萌新  10 小時前
小萌新 發文於   2026/03/29

教授好,想請問如果想要篩選出指定時間內(時間基數至少5年起跳,比如20000101-20260101這一段時間)
這一段時間股票的最低點最高點漲幅超過100%的篩選出來(最低點跟最高點的定義是盤中的最低跟最高不是指收盤價)也就是股價漲了兩倍以上的意思,這個要怎麼寫呢

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

(1)設定代表開始日期與結束日期的參數,並確認是否有準備足夠的資料筆數。

(2)判斷最低點(使用Lowest及LowestBar函數)與最高點(使用Highest及HighestBar函數)的相對位置,最高點要出現在最低點之後。

(3)接著判斷100*(最高價/最低價-1)是否大於100。

小萌新 發文於   2026/03/29

 

setTotalBar(2000); var: myH(0), Lowest(0), Highest(0) ; value1=getbarOffset(20210102); value2=getbarOffset(20260327); value2-value1   請問到這邊對嗎,不知道怎麼取日期間的價格

虎科大許教授 發文於   2026/03/29

(1)Lowest, Highest是系統函數,不可當作變數名稱。

(2)myH=simplehighest(h[value2], value2-value1+1);

小萌新 發文於   2026/03/30

setTotalBar(2000); var: myH(0), myL(0), LowestBar(0), HighestBar(0) ;

value1=getbarOffset(20210102);

value2=getbarOffset(20260327); 

myH=simplehighest(h[value2], value2-value1+1);

myL=simplelowest(l[value2], value2-value1+1);

if 100*(myH/myL-1)>100 then ret=1;

你好,我到這邊卡住了

虎科大許教授 發文於   2026/03/30

請刪除LowestBar(0), HighestBar(0) ;這是內建的函數,不能當作變數。

小萌新 發文於   2026/03/30

你好,可以編譯沒問題了,但是篩不出任何股票

截圖圖片

虎科大許教授 發文於   2026/03/30

setTotalBar(2000); 
var: myH(0), myL(0);
if isLastBar then
    begin
        value1=getbarOffset(20210102);
        value2=getbarOffset(20260327); 
        myH=simplehighest(h[value2], value1-value2+1);
        myL=simplelowest(l[value2], value1-value2+1);
        if 100*(myH/myL-1)>100 then ret=1;
        outputField1(myH,"myH");
        outputField2(myL,"myL");
        outputField3(100*(myH/myL-1),"漲跌幅");
    end;

上述程式還需要加上判斷低點先出現才出現高點。

小萌新 發文於   2026/03/30

感謝教授 !

發表回覆
Close