小弟最近使用到陣列功能加上迴圈功能時碰到一些問題
正常程式碼如下
資料讀取比數:10
//=======參數區
array: numArray1[5](0);
var:i(0),j(5),SB(0),LB(0),sum(0),sum2(0),averageS(0),averageS2(0);
//====運算區
for i = 0 to 4
begin
numArray1[i] = close[i];
sum = sum + numArray1[i];
end;
averageS = sum / 5;
ret = 1;
//====測試區
print("==========up====");
print(averageS);
print(numArray1[0]);
print(numArray1[1]);
print("==========down=====");
當迴圈寫從0到4時是正常的,print也可以正常print出數據來
但將程式碼改成i = 5 to 19 時就會出問題,甚麼都print不出來
(有將陣列大小改成15)
改過程式碼:
array: numArray1[15](0);
var:i(0),j(5),SB(0),LB(0),sum(0),sum2(0),averageS(0),averageS2(0);
//====運算區
for i = 5 to 19
begin
numArray1[i] = close[i];
sum = sum + numArray1[i];
end;
averageS = sum / 5;
ret = 1;
//====測試區
print("==========up====");
print(averageS);
print(numArray1[0]);
print(numArray1[1]);
print("==========down=====");
更神奇的是,如果將程式碼的陣列大小改更大,且抓多一點資料時又可以正常運作,並可以print出數據
array: numArray1[20](0);
var:i(0),j(5),SB(0),LB(0),sum(0),sum2(0),averageS(0),averageS2(0);
//====運算區
for i = 5 to 19
begin
numArray1[i] = close[i];
sum = sum + numArray1[i];
end;
averageS = sum / 5;
ret = 1;
//====測試區
print("==========up====");
print(averageS);
print(numArray1[0]);
print(numArray1[1]);
print(numArray1[2]);
print(numArray1[3]);
print(numArray1[4]);
print(numArray1[5]);
print(numArray1[6]);
print(numArray1[7]);
print("==========down=====");

有附上程式檔案
請問為甚麼會發生這種現象,請求小幫手或大神開示
2 評論