用金字塔PEL语言实现的SAR算法

使用金字塔PEL语言实现的SAR算法,可以加工用户特定的移动止损功能

//sar是个很有用的处理止损功能的函数,由于算法特殊,普通的软件的公式系统是无法进行描述的,这里我们将向大家展示金字塔PEL语言强大的算法描述功能,可以简单实现SAR算法功能。此外,用户可以通过该公式算法,加入自己的代码,进行特定的实盘操作。
 
INPUT:CYC(10,1,100,2);
 RUNMODE:0; //使用逐周期运行模式
 
//保证variable声明的变量都尽量在公式的最前面,防止带有IF语句的分支执行影响变量的初始化
variable:Step = 2 / 100; //步长
variable:fMax = 20 / 100; //最大值
 
variable:sarx=0;
 variable:Trend=0;
 variable:EP=0;
 variable:AF=0;
 
//计算高点低点的值放到IF前面,防止前面语句直接退出导致最前CYC个周期的数据无法统计到
highprice:=ref(hhv(high,cyc),1);
 lowPrice:=ref(llv(low,cyc),1);
 
原始SAR:SAR(10,2,20);
 
if barpos <= Cyc then
 exit;//不到CYC的统计周期,直接退出等待下个周期再做判断
if barpos = cyc+1 then
 begin
 af:=Step;
 ep:=-1;
 if (high[barpos]-high[barpos-1])+(low[barpos]-low[barpos-1]) > 0 then
 begin
 //看跌
Trend:= -1;
 sarx:=highprice;
 end
 else
 begin
 //看涨
Trend:= 1;
 sarx:=lowPrice;
 end
 GOTO ENDANDSHOW;//跳转到末尾直接显示
End
 //判断出这些日子数据的上涨,或者下跌
if Trend > 0 then
 begin
 //是否为跳转标志
if ep > 0 then
 begin
 sarx:=lowPrice;
 EP:=-1;
 GOTO ENDANDSHOW;//跳转到末尾直接显示
end
 
//如果今日最高价大于前N的最高价,加速因子需要增加
if high > highprice then
 begin
 af := af+step;
 if af > fmax then
 af := fmax;
 end
 
fsar := sarx + af * (highprice - sarx);
 //是否跳转
if fsar > low then
 begin
 trend:=-1;
 ep:=1;
 af:=step;
 end
 sarx:=fsar;
 end
 else
 begin
 if ep > 0 then
 begin
 sarx:=highprice;
 ep:=-1;
 GOTO ENDANDSHOW; //跳转到末尾直接显示
end
 
//看跌
if low < lowPrice then
 begin
 af := af + step;
 if af > fmax then
 af := fmax;
 end
 
fsar := sarx + af * (lowprice-sarx);
 
//是否跳转
if fSar < High then
 begin
 Trend := 1;
 EP := 1;
 AF := Step;
 end
 sarx := fSar;
 end
 //显示变量
ENDANDSHOW@; //此为语句标号,GOGO语句可以用这个标号直接跳转到这里
ShowSar:sarx;



来函数检测结果如下:
该公式没有未来函数

解密、编写股票、期货策略请联系QQ或微信同号:88652583
相关股票指标公式

联系我们  |  指标公式网  |  指标网   |  指标公式  |   加入收藏   |  设为主页

@2005-2023 浙ICP备2024071487号-2 指标公式网别名指标网仅为互联网文章,所有指标公式及文章仅供学习研究,并不构成投资建议,请勿以此为依据进行股票交易,由此引起的投资亏损与本站无关。指标公式网均来源互联网收集整理,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理
QQ:88652583 微信 88652583
sitemap站点地图