EMA meminta bantuan

Penulis:Babi., Dibuat: 2021-01-08 00:08:49, Diperbarui: 2021-01-08 13:41:42

pine_ema ((src, panjang) => alpha = 2 / (panjang + 1) jumlah = 0,0 jumlah:= na(jumlah[1])? sma(src, panjang) : alfa * src + (1 - alfa) * nz(jumlah[1]) plot ((pine_ema ((close,15))

Rumus EMA TV sum:= na ((sum[1])? sma ((src, length)): alpha * src + (1 - alpha) * nz ((sum[1]) Saya tidak mengerti, apakah ada yang bisa membantu menerjemahkan ke python, terima kasih.

Catatan:

  1. df[close].ewm ((span=110, adjust = False).mean()
  2. talib.EMA ((np.array ((close), timeperiod=110) Hasil tes tidak konsisten dengan TV (kemungkinan kurang dari 50 sama) lebih dari 100 tidak sama. Jadi, cobalah untuk menguji.

Lebih banyak

MAIKEOIni adalah fungsi ema yang ditulis dengan baik dalam JavaScript, yang penting untuk dicatat adalah bahwa dalam array sumber, indeks dan parameter panjang dihitung dalam kondisi yang berbeda.

MAIKEOfungsi ema (src, panjang) { var arr = []; var sum = 0; var alpha = 2 / (panjang + 1) Aku tidak tahu. untuk ((vari i di src) { if( i< panjang-1) { arr[i] = nol; jumlah += src[i]; {\cH00FFFF} Aku tidak tahu. if(i==panjang-1) { arr[i] = (jumlah+src[i])/panjang; {\cH00FFFF} Aku tidak tahu. { lainnya arr[i] = alpha * src[i] + (1 - alpha) * arr[i-1] {\cH00FFFF} {\cH00FFFF} kembali arr; {\cH00FFFF}

RumputAlgoritma ewm dapat ditulis sendiri, yaitu ewm = alpha*close+(1-alpha) *ewm

Babi.── saat ini diperoleh dengan mengubah exp=0.1 menjadi nilai yang lebih dekat── terima kasih‖.

RumputAlgoritma tidak sama, ada perbedaan halus yang dapat Anda lakukan tanpa mempertimbangkan, seperti bagaimana nilai pertama harus diambil dengan metode iteratif, pilih sendiri salah satu dan lakukan.

Babi.Seperti hasilnya tidak sama dengan ewma. def EMA ((ps, period=5, exp=0.1): ewma=pd.Series ((0.0,index=ps.index) ewma[period-1]=ps[:period].mean ((() Untuk i in range (period, len (ps)): ewma[i] = exp*ps[i]+(1-exp) *ewma[i-1] return ewma