小幫手 您好!!
我把一堆股票的收盤價丟進陣列...
想用for迴圈 & XAverage函數 直接 計算EMA的值後 再丟給另一個陣列存放
卻發現 計算出來的結果 令人傻眼( ex. 台積電 股價500多 5分K EMA20= 80多 )
用 Average函數 卻無此問題??!!
想請教 我是哪一個部分 寫錯了嗎??!!
感謝!!
for x = 1 to 100
begin
EMA20_100[ x ] = XAverage( Price100[ x ], 20 );
end;
小幫手 您好!!
我把一堆股票的收盤價丟進陣列...
想用for迴圈 & XAverage函數 直接 計算EMA的值後 再丟給另一個陣列存放
卻發現 計算出來的結果 令人傻眼( ex. 台積電 股價500多 5分K EMA20= 80多 )
用 Average函數 卻無此問題??!!
想請教 我是哪一個部分 寫錯了嗎??!!
感謝!!
for x = 1 to 100
begin
EMA20_100[ x ] = XAverage( Price100[ x ], 20 );
end;
Hello Caique,
1.不論是XAverage還是Average,其使用的第一個input都是價格序列不是陣列,雖然可以運行但小幫手並不建議您這樣使用。
因為可能會發生當初撰寫函數時沒有想到的錯誤。
2.就小幫手所知,XS腳本底層在運算時,像XAverage這種會使用前期值的函數不能使用迴圈的方式來運算。
您可以測試以下兩種寫法:
array: Parray[1](0), Carray[1](0);
Parray[0] = close;
Parray[1] = getsymbolfield("1101.TW", "Close");
for value1 = 0 to 1 begin
Carray[value1] = Xaverage(Parray[value1], 10);
end;
value2 = Xaverage(close, 10);
value3 = Xaverage(getsymbolfield("1101.TW", "Close"), 10);
plot1(Carray[0]);
plot2(value2);
plot3(Carray[1]);
plot4(value3);
跟
array: Parray[1](0), Carray[1](0);
Parray[0] = close;
Parray[1] = getsymbolfield("1101.TW", "Close");
Carray[1] = Xaverage(Parray[0], 10);
Carray[2] = Xaverage(Parray[1], 10);
value2 = Xaverage(close, 10);
value3 = Xaverage(getsymbolfield("1101.TW", "Close"), 10);
plot1(Carray[0]);
plot2(value2);
plot3(Carray[1]);
plot4(value3);
第二種計算出來的 plot1 = plot2,plot3 = plot4,但第一種的就會出錯。
1 評論