我這邊對 XS 執行流程感覺有點問題,麻煩小編在幫忙說明
首先我想抓出這 3 周的總持股人數,我的程式這樣寫,以聯發科做例子
setbarFreq("W"); settotalBar(3); var: i(0); Print(CurrentBar); value1 = GetField("總持股人數", "W"); for i = 0 to 2 begin Print("總持股人數 ", i, " = ", value1[i]); end; ret=1;
輸出結果如下
1.000000 總持股人數 0.000000 = 196515.000000 總持股人數 1.000000 = 0.000000 總持股人數 2.000000 = 0.000000 2.000000 總持股人數 0.000000 = 196515.000000 總持股人數 1.000000 = 196515.000000 總持股人數 2.000000 = 0.000000 3.000000 總持股人數 0.000000 = 182240.000000 總持股人數 1.000000 = 196515.000000 總持股人數 2.000000 = 196515.000000
根據輸出結果
第 1 個問題是,當我設定 settotalBar = 3 ,是否就表示同一檔股票會跑 3 次? (因為要抓 3 次 Bar )?
如果第 1 個答案是"是"
那我想要優化程式,改成跑第 3 次的時候才 Print,所以我的程式修改如下
setbarFreq("W"); settotalBar(3); var: i(0); Print(CurrentBar); if CurrentBar = 3 then // 第 3 次才顯示 begin value1 = GetField("總持股人數", "W"); for i = 0 to 2 begin Print("總持股人數 ", i, " = ", value1[i]); end; end;
但為什麼這樣寫總持股人數反而有錯誤,輸出如下
1.000000 2.000000 3.000000 總持股人數 0.000000 = 182240.000000 總持股人數 1.000000 = 0.000000 總持股人數 2.000000 = 0.000000
這和一般程式邏輯怎麼不一樣?
麻煩小編幫忙解釋一下
5 評論