settotalbar(100);
input:days(60,"均線天數");
value1=GetSymbolField("TSE.TW","收盤價","D");
if value1>average(value1,days) then ret=1;
outputfield1(value1,"大盤");
outputfield2(average(value1,days),"大盤均線");
請問60MA 顯示出來的數值不是60均線, 有哪個部分是錯誤的嗎?thx
settotalbar(100);
input:days(60,"均線天數");
value1=GetSymbolField("TSE.TW","收盤價","D");
if value1>average(value1,days) then ret=1;
outputfield1(value1,"大盤");
outputfield2(average(value1,days),"大盤均線");
請問60MA 顯示出來的數值不是60均線, 有哪個部分是錯誤的嗎?thx
Hello gto,
如果交易商品在過去的60天 (均線天數) 內有發生暫停交易,或是上市櫃時間不夠長的話,計算出來的數字就會有差。
因為 value1 在該天不會執行,故取得的值會是0。
小幫手會建議您將腳本改為
input:days(60,"均線天數");
if value1>average(GetSymbolField("TSE.TW","收盤價","D"),days) then ret=1;
outputfield1(value1,"大盤");
outputfield2(average(GetSymbolField("TSE.TW","收盤價","D"),days),"大盤均線");
這樣就不需要設定那麼長的資料讀取筆數就可以正常運算,也不會受到商品本身是否有暫停交易的影響。
hi XQ小幫手,
謝謝您, 完整語法應該如下
input:days(60,"均線天數");
value1=GetSymbolField("TSE.TW","收盤價","D");
if value1<average(GetSymbolField("TSE.TW","收盤價","D"),days) then ret=1;
outputfield1(value1,"大盤");
outputfield2(average(GetSymbolField("TSE.TW","收盤價","D"),days),"大盤均線");
2 評論