跨頻率ATR(平均真實區間)

  •   888 
  • 最後發表   Brahms5566  2024 四月 25
Brahms5566 發文於   2022/06/01

請問大大, 我想寫一個日線級別的ATR, 可ˊ以用在更小的時間單位(比方說30分線)裡面當濾網..但找不到相關的函數

如果只寫ATR的話, 只要改變頻率週期相應的變數也會改變, 希望ATR計算能固定在日線頻率

煩請指導~謝謝~

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/06/07

Hello Brahms5566,

 

內建的ATR函數計算的是執行的頻率。

如果您需要跨頻率的話,可以自行計算。

您可以計算出日頻率的 True Range,接著使用 xf_GetValue 來取得前幾日的資訊並平均即可。

舉例來說:

if getfield("Close", "D")[1] > getfield("High", "D") then value1 = getfield("Close", "D")[1] else value1 = getfield("High", "D");

if getfield("Close", "D")[1] < getfield("Low", "D") then value2 = getfield("Close", "D")[1] else value2 = getfield("Low", "D");

value3 = value1 - value2;

value4 = value3;

for value5 = 1 to 4 begin

    value4 += xf_GetValue("D", value3, value5);

    end;

value4 就會是5日的 True Range 加總,只要除以5就會是5日ATR。

 

 

Brahms5566 發文於   2022/06/07

了解~ 謝謝小幫手!!

阿慶 發文於   2024/04/24

Dear 小幫手

我想在台指期夜盤1分K 計算 日頻率ATR,寫法如下,但是好像算不出正確的20日ATR,可否幫我看看哪邊寫法不對呢?

//計算跨頻率ATR

if currentTime = 150500 then begin //只計算1次避免效能低落

   value24 = xf_GetValue("D", TrueRange, 0);

   for value25 = 1 to 19 begin

      value24 += xf_GetValue("D", TrueRange, value25);

   end;

   value26 = value24/20; //20日ATR

end else value26 = value26[1];

XS小編 發文於   2024/04/25

 Hello 阿慶,

 

因為TrueRange函數計算的是與"上一根Bar"的真實區間,而非日頻率的真實區間。

故使用在1分鐘頻率的話取得的會是與上一分鐘收盤價比較的真實區間。

這也是為何小幫手前面的範例中會另外計算日頻率的真實區間。

  • 按讚來自於
  • YEAH301000
發表回覆
Close