簡體   English   中英

移動平均線 - 如何計算?

[英]Moving everage - how to calculate?

請解釋如何計算交易蠟燭的 EMA 指標? 我在這里找到了公式: https://www.investopedia.com/ask/answers/122314/what-exponential-moving-average-ema-formula-and-how-ema-calculated.asp

但是有一些奇怪的,無法理解的解釋,甚至可以說是愚蠢的。

它在那里說:

計算 EMA 的公式是使用乘數並從 SMA 開始的問題:

計算 SMA 計算 EMA 加權乘數 計算當前 EMA

SMA 的計算與計算平均值或均值相同。 也就是說,任何給定數量的時間段的 SMA 只是該數量的時間段的收盤價總和除以相同的數字

好的,到目前為止一切都很清楚。

下面是接下來寫的:

因此,在計算股票的 EMA 時:

EMA=價格(t)×k+EMA(y)×(1−k)

其中:t=今天 y=昨天 N=EMA k=2÷(N+1) 中的天數

從那一刻開始,某種垃圾。

EMA 公式中的哪個位置 - SMA 指標?

他們為什么要寫 SMA 的計算 - 如果 ETA 公式中沒有以任何方式使用它?

我如何計算 EMA 指標 - 如果公式中有昨天的 ETA 指標?

最后我完全迷路了。

我假設 EMA 是指數移動平均線。 這就是 OP 顯示的公式的計算結果。 這根本不是真正的平均數,因為它沒有對所有值賦予相同的權重。 相反,它給過去的價值指數衰減的權重。 最近的值的權重為k ,第n個過去的值的權重為 (1- k ) 的n次方。

EMA 的起始值總是有一些影響:它的權重再次是 (1- k ) 的n次方,其中 n 現在比處理的值總數少 1,因此它的影響隨時間呈指數衰減。

如果你想要最后m個值的移動平均值,你必須保留它們的數組,只需對數組求和並除以m 每次獲得新值時,您都會從數組中刪除最舊的值,移動所有內容,插入新值,然后對數組求和並再次除m 有一個稍微快一點的算法可以避免每次都對數組求和。

#define N 100 /* the number of items to average over */
double array[N]; /* the last N items, each divided by N */
double average;

double step(double x /* new item */) /* insert new item and recompute */ {
    int i; /* indexing */
    average -= array[0]; /* subtract oldest item from average */
    for (i = 0; i < N - 1; ++i) {
        array[i] = array[i+1]; /* shift old items down array */
    }
    x = x/N; /* apply weight 1/N to new item */
    array[N-1] = x; /* add new item to array */
    average += x; /* add new item to average */
    return average;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM