經FB的XQ社團 江加宏前輩指點
調整程式順序
先計算MACD 之後才執行if邏輯 while迴圈
已經沒有錯誤

**以下保留原本問題**
如題 自己寫while迴圈找近期MACD黃金交叉的股票
結果選出明顯不符合的狀況
測試時間2023/09/14 01:00

(2354鴻準 輸出發生日為0即當天)
謝謝小幫手

程式碼如下************

setbarFreq("D");//定義程式抓取的K線頻率

SetTotalBar(200);

 

variable: vl_av5(0), ma20(0), ma60(0),//管制用變數

         _d(0), _m(0), _o(0),//計算結果變數

         i(0), fn(0);//程式流程用

input:lim_v5(2000,"五均量門檻"), tr(10, "回朔建議設定20以下");

 

fn=0;

i=0;

ret=0;

vl_av5=average(volume,5);

ma20=average(close,20);

ma60=average(close,60);

 

if vl_av5>lim_v5 and close>ma60 and ma20>ma60 then begin//五日均量篩選

      MACD(WeightedClose(), 12, 26, 9, _d, _m, _o);

      while i < tr and fn=0 begin//tr天之內

            condition1 = _d[i] crosses above _m[i];

            if condition1 then begin//MACD黃金交叉

                  ret=1;

                  fn=1;

            end;

            i=i+1;

      end;

end;

 

 outputField1(i-1,"日MACD金叉發生日");