以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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
--
快递个模特般的美女过来就成
|