欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请问有什么函数可以替代文华的TRMA三角移动平均?或者最接近的是哪个?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有11266人关注过本帖树形打印复制链接

主题:[求助]请问有什么函数可以替代文华的TRMA三角移动平均?或者最接近的是哪个?

帅哥哟,离线,有人找我吗?
douba22
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:309 威望:0 精华:0 注册:2010/7/8 12:27:05
[求助]请问有什么函数可以替代文华的TRMA三角移动平均?或者最接近的是哪个?  发帖心情 Post By:2011/2/11 9:12:00    Post IP:119.39.85.219[只看该作者]

[求助]请问有什么函数可以替代文华的TRMA三角移动平均?或者最接近的是哪个?如果要自己编函数我就不会了。
[此贴子已经被作者于2011-2-11 9:12:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/2/11 9:50:06    Post IP:59.57.136.22[只看该作者]

详细解释一下TRMA的意思。

 回到顶部
帅哥哟,离线,有人找我吗?
douba22
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:309 威望:0 精华:0 注册:2010/7/8 12:27:05
  发帖心情 Post By:2011/2/11 10:55:21    Post IP:119.39.85.219[只看该作者]

TRMA(X,N) 求X在N周期内的三角移动平均。
三角移动平均计算方法:第1种可能先算(奇数+1)/2周期移动平均,得出值再算这个值的(奇数+1)/2周期的移动平均. 第2种可能先算偶数/2周期移动平均,得出值再算这个值的(偶数/2+1)周期的移动平均,也就是先判断一下N是奇数还是偶数,然后再选对应的计算式。


 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2011/2/12 17:16:03    Post IP:114.241.175.57[只看该作者]

图片点击可在新窗口打开查看

 

runmode:1;
input:n(5,1,100,1);
variable:t1=0,t2=0;
var1:=close;

if mod(n,2)=1 then begin
 p1:=(n+1)/2;
 p2:=(n+1)/2;
end

if mod(n,2)=0 then begin
 p1:=n/2;
 p2:=n/2+1;
end

for i=1 to datacount do begin
 t1:=t1+var1[i];
 if i>=p1 then begin
  if i>p1 then
   t1:=t1-var1[i-p1];
  ma1[i]:=t1/p1; 
 end
end

for i=1 to datacount do begin
 t2:=t2+ma1[i];
 if i>=p2 then begin
  if i>p2 then
   t2:=t2-ma1[i-p2];
  ma2[i]:=t2/p2; 
 end
end

trma:ma2,colorred,linethick2;

[此贴子已经被作者于2011-2-12 18:56:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
douba22
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:44 积分:309 威望:0 精华:0 注册:2010/7/8 12:27:05
  发帖心情 Post By:2011/2/13 10:03:21    Post IP:119.39.85.219[只看该作者]

非常感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2011/2/13 12:50:38    Post IP:114.243.121.21[只看该作者]

 

逐周期版本:

 

runmode:0;
input:n(5,1,100,1);
bound:=datacount;
variable:t1=0,t2=0,ma1[bound]=0;
var1:=close;

if mod(n,2)=1 then begin
 p1:=(n+1)/2;
 p2:=(n+1)/2;
end

if mod(n,2)=0 then begin
 p1:=n/2;
 p2:=n/2+1;
end

if barpos=1 then begin 
  for i=1 to datacount do begin
   t1:=t1+var1[i];
    if i>=p1 then begin
      if i>p1 then
      t1:=t1-var1[i-p1];
    ma1[i]:=t1/p1;     
  end
 end 
end

if barpos<=p2 then exit;

ma2:=ma1[barpos];
for i=1 to p2-1 do
 ma2:=ma2+ma1[barpos-i];
ma2:=ma2/p2;

trma:ma2,colorred,linethick2; 


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/2/13 12:53:16    Post IP:116.227.52.149[只看该作者]

n:=10;
if barpos < n then
  N:=barpos;
d:=c*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);


j:d/s;

 

这是另一个实现版本,可以同时在序列和逐周期运行


 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2011/2/13 13:05:38    Post IP:114.243.121.21[只看该作者]

以下是引用admin在2011-2-13 12:53:16的发言:

n:=10;
if barpos < n then
  N:=barpos;
d:=c*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);


j:d/s;

 

这是另一个实现版本,可以同时在序列和逐周期运行

不错,学习了。


 回到顶部