請問小幫手,我這個寫法哪裡出了問題?抓取價格似乎因為進緩漲緩跌讀不到正確的值,回測錯誤

  •   12 
  • 最後發表   Tofu  1 週前
Tofu 發文於   2026/04/20

有寫一個早盤振幅大於多少,1分K在第一根3分K上下區間盤整中,第4分鐘開始,每一分鐘的分K都沒有往上突破區間,直到破底的警示如下:

 

input: _DropRatio(2.5, "開盤急跌比例(%)");

variable: _H3(0), _L3(0), _ConditionMet(false), _IsInvalid(false);

if Date <> Date[1] then begin

    value1 = 0;  value2 = 0;

    _ConditionMet = false; 

    _IsInvalid = false; 

end;

if Time = 090300  then begin

    value1 = getfield("High", "3");

    value2 = getfield("Low", "3");

    

    if value1 >= value2*(1 + _DropRatio/100) then begin

      _ConditionMet = true; 

    end;

end;

 

if Time > 090300 and _ConditionMet = true and _IsInvalid = false then begin

 

    if Open < value1 and Close < value1  then begin

        

        if Close < value2 then begin

            Ret = 1;

            RetMsg = "弱勢盤整破底觸發";

            _ConditionMet = false;

        end;

        

    end else begin

        _IsInvalid = true;

    end;

end;

 

我是問AI幫忙寫的,但總覺得寫得有點冗長,不知道可以怎麼修正

另外回測抓第一根3分K的高低點會有錯誤,細看內容發現都是有進緩漲跌的會抓不到正確的值

想請問怎麼解決呢?謝謝

虎科大許教授 發文於   2026/04/20

若你要在第二根3分K(亦即Time=090300)抓第一根3分K的最高及最低價,寫法要改成:

value1 = getfield("High", "3")[1];

value2 = getfield("Low", "3")[1];

 

發表回覆
Close