金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 149|回复: 5

请问为何同是SAR 算法 参数相同情况下,文华和金字塔显示出来的结果差距很大

[复制链接]

39

主题

172

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2021-10-19
曾用名:
发表于 2025-4-15 11:13 | 显示全部楼层 |阅读模式
请问为何同是SAR 算法 参数相同情况下,文华和金字塔显示出来的结果差距很大
回复

使用道具 举报

2

主题

4936

帖子

4936

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-4-15 11:17 | 显示全部楼层
本帖最后由 资深技术05 于 2025-4-15 11:21 编辑

软件底层算法如果差异,结果必然不一样,但是我们不了解他们的算法是怎样的。而且这个SAR原始思路中本身就有多个变种,我们这个也只是其中比较常用的一种。

下面这个PEL代码能体现我们的SAR算法, 你可以参考下 算法上差异在什么地方

[PEL] 复制代码
//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;
回复

使用道具 举报

39

主题

172

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2021-10-19
曾用名:
 楼主| 发表于 2025-4-15 11:22 | 显示全部楼层
金字塔的总是慢了一两根才发生转折 如何调教成同步结果?
1744687083188.jpg
1c8cd39cc4e3ddc43676323ecd6bcd7.png
回复

使用道具 举报

2

主题

4936

帖子

4936

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-4-15 13:13 | 显示全部楼层
采用的算法就是有差别,这个效果 没法调整的,他们的实现我们是不清楚的。
回复

使用道具 举报

4

主题

185

帖子

196

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2025-4-15 15:02 | 显示全部楼层
SAR_POBO 这个函数你看看能否满足你的需求?
回复

使用道具 举报

39

主题

172

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2021-10-19
曾用名:
 楼主| 发表于 2025-4-15 16:53 | 显示全部楼层
VIP客服01 发表于 2025-4-15 15:02
SAR_POBO 这个函数你看看能否满足你的需求?

试了下 效果不好,把默认参数减少一天反而会比较近似一些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-10 03:49 , Processed in 0.190820 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表