[英]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.