| 
 | 
 
TRMA(X,N)求X在N周期内的三角移动平均   
三角移动平均计算方法根据N的奇偶性而不同:   
第1种当N为奇数时,先算(奇数+1)/2周期移动平均,得出值再算这个值的(奇数+1)/2周期的移动平均.   
   例1   
    TRMA5:TRMA(Close,5);//计算5个周期内收盘价的三角移动平均。(N不能被2整除)   
   实际算法//TRMA(Close,5)=MA(MA(Close,(5+1)/2)),(5+1)/2);   
第2种当N为偶数,先算偶数/2周期移动平均,得出值再算这个值的(偶数/2+1)周期的移动平均。   
    例2:   
   TRMA10:TRMA(Close,10);// 计算10个周期内收盘价的三角移动平均。(N能被2整除)   
   实际算法:TRMA(Close,10)=MA(MA(Close,10/2),(10/2)+1)); 
 
以下代码通过易得程序化自定义函数实现TRMA三角移动平均函数,为您揭秘系统函数的神秘面纱并展示易得自定义函数的强大功能。 
- function MyTRMA(X, N)
 
 - begin
 
 -     if barpos < N then
 
 -         N := barpos;
 
  
-     d := 0;
 
 -     r := intpart((N+1)/2);
 
 -     s := (n*n + n*2 + (mod(N,2)=1)) / 4;
 
 -     for i = 0 to n-1 do 
 
 -         d := d + ref(c,i) * if(i<r, i+1, N-i);
 
  
-     res := d / s;
 
 -     return res;
 
 - end
 
  
- // a和b的值相同
 
 - a:MyTRMA(c, 10);  // 调用自定义函数MyTRMA
 
 - b:TRMA(c, 10);    // 调用系统TRMA函数
 
 
  复制代码 
 
 |   
 
 
 
 |