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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
z7c9
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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; 


 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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;

 

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

不错,学习了。


 回到顶部