debug

  •   32 
  • 最後發表   凡恩大叔  2024 二月 29
凡恩大叔 發文於   2024/02/27

請問這兩段為何出現不同結果

 

程式碼A

SumFund = Summation(GetField("投信買賣超"), 2);

sumVol = Summation(Volume, 2);

SumVolDayTrade = Summation(GetField("現股當沖張數"), 2);

SumFund / (SumVol - SumVolDayTrade) *100

 

程式碼B

for i=0 to (2)

   begin 

   SumVolDayTrade = SumVolDayTrade + getfield("現股當沖張數", "D")[i];

   SumFund = SumFund + getfield("投信買賣超", "D")[i];

   SumVol = SumVol + getfield("成交量", "D")[i];   

end;

SumFund / (SumVol - SumVolDayTrade) *100

XS小編 發文於   2024/02/29

Hello 凡恩大叔,

 

因為程式碼B的for迴圈前沒有將變數歸0,所以迴圈中的變數會一直累加上去,而非近N筆。

另外,Summation(GetField("投信買賣超"), 2) 會是加總近兩筆的投信買賣超 ([0]與[1]),而迴圈中加總的則是近3筆投信買賣超 ([0]、[1]、[2])。

建議您可以在指標上畫出、使用outputfield輸出 (選股) 或是print出相關數值觀察,會比較容易理解。

發表回覆
Close