乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      行情軟件里的平均函數(shù)以及Python的實現(xiàn)

       立志德美 2020-02-29

           在行情軟件里,有很多的平均公式,一直沒有深入的去了解,用得也是糊里糊涂的,現(xiàn)結合百度谷歌,對各種公式做個總結記錄。

      MA(x,n)–移動平均,是最簡單的n日內的平均值;

      計算公式:(X1+X2+X3+X4+…+Xn)/n

      Python代碼:

      1
      2
      3
      4
      5
      def getMA(df,n):
          for i in range(len(df)):
              if i >= n:
                  df.ix[i,'ma'] = df.close.values[i-n:i].mean()
          return df

      EMA(x,n)–指數(shù)移動平均,這個函數(shù)以相關周期為權重進行計算;

      計算公式:[2*X+(n-1)*Y]/(n+1) 其中'Y'表示上一周期的Y值

      例如:每天X值不同,由遠到近標示分別為X1、X2、X3、X4……Xn

      如果n=1,那么EMA(X,1) 則等于 [2*X1+(1-1)*Y]/(1+1)=X1

      如果n=2,那么EMA(X,2) 則等于 [2*X2+(2-1)*Y]/(2+1)=(2/3)*X2+(1/3)*X1

      如果n=3,那么EMA(X,3) 則等于 [2*X3+(3-1)*Y]/(3+1)

                                                        =[2*X3+2*((2/3)*X2+(1/3)*X1)]/4

                                                        =(1/2)*X3+(1/3)*X2+(1/6)*X1

      以此類推,往下循環(huán)……

      Python代碼:

      1
      2
      3
      4
      5
      6
      7
      def getEMA(df,n): 
          for i in range(len(df)): 
              if i==0
                  df.ix[i,'ema']=df.ix[i,'close'
              if i>0
                  df.ix[i,'ema']=(1-n)*df.ix[i-1,'close']+n*df.ix[i,'close'
          return df

      SMA(x,n,m)–簡單移動平均,m為當日的權重,是個0~1之間的值;

      計算公式:(X*M+Y'*(N-M))/N 其中Y表示上一周期值

      SMA 就是把EMA(X,N) 中的權重2,變成了一個可自己定義的變數(shù)。要求M<N,M/N, (N-M)/N 就是一個加起來等于1的小數(shù),于是定義動態(tài)平均值。

      Python代碼:

      1
      2
      3
      4
      5
      6
      7
      def getSMA(df,n,m):
          for i in range(len(df)):
              if i==0
                  df.ix[i,'sma'] = df.ix[i,'close']*m/n
              else:
                  df.ix[i,'sma'] = [df.ix[i,'close']*m + (n-m)*df.ix[i-1,'sma']]/n
          return df

      DMA(x,m)–動態(tài)移動平均,這個函數(shù)以動態(tài)設定的權重m進行計算;

      計算公式:m*X+(1-m)*Y  其中Y表示上一周期值,A必須小于1

      Python代碼:

      1
      2
      3
      4
      5
      6
      7
      def getDMA(df,m):
          for i in range(len(df)):
              if i == 0:
                  df.ix[i,'dma'] = df.ix[i,'close']/m
              else:
                  df.ix[i,'dma'] = df.ix[i,'close']/m + (1-m)*df.ix[i-1,'dma']
          return df

      TMA(x,n,m)–遞歸移動平均,這個函數(shù)可以完全控制當前周期的權重和上一次值的權重;

      計算公示:m*X+n*Y 其中Y表示上一周期值,初值為m*X。

      Python代碼:

      1
      2
      3
      4
      5
      6
      7
      def getTMA(df,n,m):
          for i in range(len(df)):
              if i==0
                  df.ix[i,'sma'] = df.ix[i,'close']*m
              else:
                  df.ix[i,'sma'] = df.ix[i,'close']*m + df.ix[i-1,'sma']*n
          return df

      WMA(x,n)–加權移動平均,這個函數(shù)對于近日的權重會比其它函數(shù)敏感。

      計算公式:n*X0+(n-1)*X1+(n- 2)*X2)+…+1*Xn)/(n+(n-1)+(n-2)+…+1)

      X0表示本周期值,X1表示上一周期值。

      Python代碼:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      def getWMA(df,n):
          weight = 0
          for i in range(n):
              weight += i
          for i in range(len(df)):
              if i >= n:
                  sum = 0
                  for j in range(n):
                       sum += (j+1)*df.ix[i-n+j,'close']
                  df.ix[i,'wma'] = sum/weight

      ps: 關于加權移動平均,有多個加權的計算方式,代碼里的僅僅只是其中一種,如果需求不同,也可以換做其他計算方式。

      1、末日加權移動平均線: 

      計算公式=(C1+C2+……+Cn×2)/(n+1)

      我們用C代表收盤價。末日指的是最后一日哦,可不是世界末日。我們看到只有最后一天的收盤價(Cn)乘了一個2。這樣,原來的n個價格就變成了(n+1)個,所以在求的平均的時候要除以(n+1)。

      2、線性加權移動平均線:

      計算公式=(C1×1+C2×2+……+Cn×n)/(1+2+…+n)

      這一種均線計算起來有一點點麻煩,就是計算時每個價格都乘以一個權值,這個權值剛好是它的編號。對于線性這個詞,如果大家不理解,那么請繼續(xù)關注慧濟,以后我會為大家詳細解釋。

      3、梯型加權移動平均線:計算方法如下(5日為例):

      計算公式=((C1+C2)×1+(C2+C3)×2+(C3+C4)×3+(C4+C5)×4)/(2×1+2×2+2×3+2×4)

      是不是有點像梯形的面積公式啊?梯形面積=(上底+下底)×高/2

      4、平方系數(shù)加權移動平均線:計算方法如下(5日為例):

      MA=((C1×1×1)+( C2×2×2)+(C3×3×3)+(C4×4×4)+( C5×5×5))/(1×1+2×2+3×3+4×4+5×5)     

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多