陣列參照不正確

  •   153 
  • 最後發表   奔雷  2020 七月 31
奔雷 發文於   2020/07/30

請問為什麼以下的第二行程式編譯會跳出「陣列參照不正確」的錯誤?

Array: avg[](0);
avg = Average(Close, 8);

我想取得 8 日的移動平均線,Average(Close, 8) 回傳的陣列長度在回測時才有辦法知道,所以我一開始才沒宣告 avg 的長度。

排序方式: 標準 | 最新
奔雷 發文於   2020/07/30

我發現 avg 必須宣告成 Var: avg(0); 才行

可是 Average(Close, 8); 回傳的是陣列,對吧?

為什麼 avg 一開始宣告為陣列反而會出錯?

XQ小幫手 發文於   2020/07/31

奔雷大 您好

 Average(Close, 8)只是一個數值非陣列喔!

謝謝您

奔雷 發文於   2020/07/31

那為什麼

print(avg[1]);

print(avg[2]);

都可以編譯成功?

 

數值後面加上 [1] 是什麼意思?

奔雷 發文於   2020/07/31

有沒有函數可以回傳參數的型態?

這樣我會比較好 debug。

XQ小幫手 發文於   2020/07/31

奔雷大 您好

1. 您如果單純寫 

print(avg[1]);

正常來說是不可能編譯過的喔!

您必須進行宣告

Var: avg(0);

2. 數值後面加上 [1] 是什麼意思?

A: [1] 是指前一期的意思,如果你今天是7/31 那前一期就是7/30

3. 有沒有函數可以回傳參數的型態?

A: 您可以使用XS查詢功能 來了解您不清楚的函數

謝謝您的提問

 

 

 

發表回覆
Close