以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]这个新版的TBSAR指标,那个大侠可以帮我改成金字塔的  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=10322)

--  作者:人生如棋
--  发布时间:2012/2/27 15:51:48
--  [求助]这个新版的TBSAR指标,那个大侠可以帮我改成金字塔的

Params
 Numeric n(2);     //高低点通道的周期
 Numeric stepaf(0.02);   //加速因子的步长
 Numeric maxaf(0.2);    //加速因子的最大值
Vars
 NumericSeries hhn;    //高点通道
 NumericSeries lln;    //低点通道
 NumericSeries bysar;   //新版的SAR数值
 NumericSeries flag;    //涨跌趋势的标志。1为涨,-1为跌;
 NumericSeries byaf;    //新版的加速因子
Begin
 //计算高低点的通道
 hhn=Highest(High[1],n);
 lln=Lowest(Low[1],n);
 PlotNumeric("hhn",hhn);
 PlotNumeric("lln",lln);
 //因为TB运行机制之回溯,第一根BAR不画图。所以跳过不运行
 If(CurrentBar<1)
  Return;
 //从图表第二跟BAR开始作为SAR的起点。 
 If(CurrentBar==1)
  {
  If(Close>=Open)
   {
   flag=1;
   bysar=Low;
   byaf=0;
   }
  Else
   {
   flag=-1;
   bysar=High;
   byaf=0;
   }
  PlotNumeric("bysar",bysar);
  Commentary("flag"+Text(flag));
  return;
  }
 //涨势当中 
 If(flag==1 And CurrentBar>1)
  {
  //涨转跌
  If(Low[1]<bysar[1])
   {
   flag=-1;
   bysar=hhn;
   byaf=0;
   }
  //继续涨 
  Else
   {
   //高点通道创新高
   If(hhn>hhn[1] And byaf+stepaf<=maxaf)
    byaf=byaf+stepaf;
   //针对趋势开始的第一根BAR需要给出byaf初值 
   If(byaf<stepaf)
    byaf=stepaf;
   bysar=bysar[1]+byaf*(hhn-bysar[1]); 
   }
  PlotNumeric("bysar",bysar,0,Green);
  Commentary("flag"+Text(flag));
  return;
  }
 //跌势当中 
 If(flag==-1 And CurrentBar>1)
  {
  //跌转涨
  If(High[1]>bysar[1])
   {
   flag=1;
   bysar=lln;
   byaf=0;
   }
  //继续跌 
  Else
   {
   //低点通道创新低
   If(lln<lln[1] And byaf+stepaf<=maxaf)
    byaf=byaf+stepaf;
   //针对趋势开始的第一根BAR需要给出byaf初值 
   If(byaf<stepaf)
    byaf=stepaf;
   bysar=bysar[1]+byaf*(lln-bysar[1]); 
   }
  PlotNumeric("bysar",bysar,0,Red);
  Commentary("flag"+Text(flag));
  return;
  }
End

 


--  作者:just
--  发布时间:2012/2/27 16:17:59
--  
顶一个 求高手解答图片点击可在新窗口打开查看
--  作者:阿火
--  发布时间:2012/2/28 5:54:10
--  

这是新版?

 

在flag=1的时候,随时行情的上涨,突破通道,上移bysar,反而会触碰到当根K线的最低点

而比较的时候是采用 Low[1]<bysar[1]

所以,会出现行情在大幅上涨的过程中却出现多转空的情况

明显不合逻辑呀

 

 

谁有开拓者账户?借登录一下,我调试看看,是不是跟我理解的一样。

[此贴子已经被作者于2012-2-28 5:57:39编辑过]

--  作者:人生如棋
--  发布时间:2012/2/28 10:54:09
--  

火哥,已经发给你了,帐号密码


--  作者:阿火
--  发布时间:2012/2/29 9:39:52
--  

input:n(2),stepaf(0.02),maxaf(0.2);
variable:byaf=0,flag=0;
hhn:=hhv(h,n);
lln:=llv(l,n);
if barpos=2 then begin
 if c>=o then begin
  flag:=1;
  bysar:=low;
  byaf:=0;
 end
 else begin
  flag:=-1;
  bysar:=high;
  byaf:=0;
 end
end
if flag<>0 then sar0:bysar;
if flag=1 and l<bysar then begin
 flag:=-1;
 bysar:=hhn;
 byaf:=0;
end
else if flag=-1 and h>bysar then begin
 flag:=1;
 bysar:=lln;
 byaf:=0;
end
if (flag=1 and h>ref(hhn,1)) or (flag=-1 and l<ref(lln,1)) then byaf:=min(maxaf,byaf+stepaf);
byaf:=max(stepaf,byaf);
if flag=1 then bysar:=bysar+byaf*(hhn-bysar);
if flag=-1 then bysar:=bysar+byaf*(lln-bysar);


--  作者:just
--  发布时间:2012/3/2 14:06:14
--  
膜拜啊图片点击可在新窗口打开查看
--  作者:阿火
--  发布时间:2012/3/2 16:12:12
--  

快递个模特般的美女过来就成