有關xf_getvalue 在迴圈裡的行為問題 .

  •   116 
  • 最後發表   ccy  2019 七月 29
ccy 發文於   2019/07/20

Hi ,

我在日K下執行指標 , 檢查了 xf_getvalue 的值發現很不一樣 , code分別是實驗一和實驗二 .

實驗一.

for i=0 to 9

begin

ArrayA[i+1]=0;

for j=1 to 2

begin

ArrayA[i+1]=ArrayA[i+1]+xf_getvalue("W",close,j)[i];

end;

end;

 

實驗二.

for i=0 to 9

begin

ArrayB[i+1]=0;

ArrayB[i+1]=xf_getvalue("W",close,1)[i]+xf_getvalue("W",close,2)[i];

end;

 

問題:

1.為什麼實驗一會造成不對的結果?

2. xf_getvalue函數會不會在不同的腳本(指標,選股,警示,函數)運算時 , 處理K棒序列的方式是不一樣的?

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/07/24

Hi ccy,

您好,謝謝您的回饋,

1.為什麼實驗一會造成不對的結果?

關於問題一:待小幫手詢問相關人員後,再向您說明,謝謝。


 

2. xf_getvalue函數會不會在不同的腳本(指標,選股,警示,函數)運算時 , 處理K棒序列的方式是不一樣的?

關於問題二:不會,xf_getvalue函數在不同類型的腳本,處理K棒序列的方式都是一樣的。

XQ小幫手 發文於   2019/07/29

Hi ccy,

您好,建議您使用實驗二的寫法會比較妥當,

 

兩層迴圈在當下這根bar跑i = 0的時候,

因為會是這根bar的最新的值,所以會實際去運算j=1, j=2這兩個值,

而到i = 1~9的時候因為先前已經有跑過xf_getvalue,所以不會去運算,而是改取之前運算的結果,

但是之前運算的結果已經都被覆蓋成j=2的值,

所以就會看到都只有拿前一週而拿不到前兩週,

 

以上說明,謝謝。

發表回覆
Close