在副圖中顯示10日平均振幅

  •   163 
  • 最後發表   crswin  2024 六月 21
crswin 發文於   2024/03/02

// 定義一個空的陣列來存儲最近10日的振幅

var amplitudeArray = [];

 

// 從過去的10個交易日中獲取每日的最高價和最低價,並計算振幅

for (var i = 1; i <= 10; i++) {

    var highPrice = GetField("最高價", "D-" + i); // 獲取第i天的最高價

    var lowPrice = GetField("最低價", "D-" + i); // 獲取第i天的最低價

    

    if (highPrice != null && lowPrice != null) {

        var amplitude = (highPrice - lowPrice) / highPrice * 100; // 計算振幅,以百分比表示

        amplitudeArray.push(amplitude); // 將振幅添加到陣列中

    }

}

 

// 計算最近10日振幅的平均值

var sum = 0;

for (var j = 0; j < amplitudeArray.length; j++) {

    sum += amplitudeArray[j];

}

var averageAmplitude = sum / amplitudeArray.length;

 

// 輸出結果

Output("最近10日振幅的平均值為:" + averageAmplitude.toFixed(2) + "%");

想請問該如何修正?

排序方式: 標準 | 最新
XS小編 發文於   2024/03/06

Hello crswin,

 

小編建議您先閱覽網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

您上面的腳本並不是XS語法,小編也沒有提供代寫或是翻譯的服務。

 

由於振幅並沒有提供資料欄位,所以要在指標上畫出的話需要自行計算,像是:

100 * (getfield("High", "D") - getfield("Low", "D")) / getfield("參考價", "D")

這樣就會是當日的振幅。

要計算的平均的話搭配average函數即可。

value1 = average(100 * (getfield("High", "D") - getfield("Low", "D")) / getfield("參考價", "D"), 10);

plot1(value1);

crswin 發文於   2024/06/21

謝謝小編!

 

發表回覆
Close