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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → [原创]发一个用SAR编写的策略,仅供参考

   

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


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

主题:[原创]发一个用SAR编写的策略,仅供参考

帅哥哟,离线,有人找我吗?
戈壁Q
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2018/10/25 11:36:42
[原创]发一个用SAR编写的策略,仅供参考  发帖心情 Post By:2020/11/2 1:19:48 [只看该作者]

//仅供初学者参考或测试用。



input:PosNum(1,1,100,1);
input:zqcs(3,1,12,1);
input:ZYL(5,1,10,0.5);
input:sacs(5,1,10,1);
input:sa0cs(1,0.1,2,0.01);


{ 1 .全局变量 }

ThisBar := 0 ;

VARIABLE : CC=0;
VARIABLE : BB=0;

VARIABLE : kcj=0;
VARIABLE : pcj=0;

VARIABLE : kcs=0;


SA:=SAR(3,sacs, 15);
SA0:=SAR(3,sa0cs, 10);
SA1:=SAR(3,1,10); 
SA2:=SAR(3,0.5,10);

QG:=HHV(REF(HIGH,1),zqcs);
QD:=LLV(REF(LOW,1),zqcs);
QG1:=MAX(QG,SA0);
QD1:=MIN(QD,SA0);

HD:=if(islastbar,mindiff*3,mindiff);

FDYK1:OPENPROFITPER/POSNUM,LINETHICK0;
FDYK:=REF(FDYK1,1),LINETHICK0;
SAS:IF(FDYK<=-0.5,SA,if(FDYK>=ZYL,SA,SA2));

VARIABLE : SAS=SA2;
IF BB=0 AND CC<>0 AND FDYK<=-0.35  THEN BEGIN
SAS:=SA;
BB:=1;
END
IF BB=0 AND CC<>0 AND FDYK>=ZYL  THEN BEGIN
    SAS:=SA;
    BB:=1;
END
IF BB=1 AND CC=0 THEN BEGIN
SAS:=SA2;
BB:=0;
END

KD:=HIGH>=SA1 AND HIGH>=QG1 AND QG1>=SA2;          //开多条件
PD:=LOW<=SAS;                                      //平多条件
KK:=LOW<=SA1 AND LOW<=QD1 AND QD1<=SA2;            //开空条件
PK:=HIGH>=SAS;                                     //平空条件

IF CC=-1 AND PK THEN BEGIN
 平空:SELLSHORT(1,1,LIMITR,MAX(SAS,OPEN)+HD);
   CC:=0;
   THISBAR:=-1;
   END                  //平空信号

IF CC=1 AND PD THEN BEGIN
  平多:SELL(PD,1,LIMITR,MIN(SAS,OPEN)-HD);
    CC:=0;
    THISBAR:=1;
    END                       //平多信号

IF CC=0 AND KD AND THISBAR=0 THEN BEGIN
  开多:BUY(1,1,LIMITR,MAX(QG1,MAX(SA1,OPEN))+HD); 
    CC:=1;
    THISBAR:=1;
    END         //开多信号

IF CC=0 AND KK AND THISBAR=0 THEN BEGIN
  开空:BUYSHORT(1,1,LIMITR,MIN(QD1,MIN(SA1,OPEN))-HD); 
   CC:=-1;
   THISBAR:=-1;
   END //开空信号


////////////////////////////////////////////////////////////////////////


{12 . 显示账户状态 }

资产:asset,noaxis,colorgray,precision0;
持仓:holding,linethick0;
盈亏比:payoffrate,color0000ff,nodraw,precision2;
胜率:ceiling(percentwin*100),color0000ff,linethick0,precision0;
日交易数:totaldaytrade,linethick0;
日盈亏:asset-ref(asset,barslast(date<>ref(date,1))+1),linethick0,precision0;

版主评定:好评,获得50个金币奖励好评,获得50个金币奖励
(理由:好文章)
 回到顶部
帅哥哟,离线,有人找我吗?
戈壁Q
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2018/10/25 11:36:42
  发帖心情 Post By:2020/11/3 15:32:08 [只看该作者]

利用抛物转向指标SAR设计模型非常简洁,指标只有三个参数SAR(N,S,M),N为计算周期,S为步长,M为步长极限值。
另外,指标不含未来,可以直接用HIGH>=SAR或LOW<=SAR写开平仓条件,信号不闪不漂移。
这个模型中用了4个不同的SAR指标,用浮动盈亏幅度OPENPROFITPER来切换不同的SAR指标,根据盈亏情况来平仓。
理论上这个模型适用于所有品种、所有周期,针对不同品种选择适当的周期,很多品种都能获得正收益。
至少比金字塔自带的模型要好一点。



图片点击可在新窗口打开查看此主题相关图片如下:qq图片jid.png
图片点击可在新窗口打开查看
但是要实盘的话,还是要考虑更多的因素,如资金管理,仓位管理,交易滑点等,这种简单的模型是不可以实盘的。
要是初学者用于小周期测试的话,把HD:=if(islastbar,mindiff*3,mindiff);
改为HD:=if(islastbar,mindiff*3,mindiff*0);否则信号会失真;
另外,把
{
VARIABLE : SAS=SA2;
IF BB=0 AND CC<>0 AND FDYK<=-0.35  THEN BEGIN
SAS:=SA;
BB:=1;
END
IF BB=0 AND CC<>0 AND FDYK>=ZYL  THEN BEGIN
    SAS:=SA;
    BB:=1;
END
IF BB=1 AND CC=0 THEN BEGIN
SAS:=SA2;
BB:=0;
END}
这一段注释掉。这一段是SAS:IF(FDYK<=-0.5,SA,if(FDYK>=ZYL,SA,SA2));的另一种写法。

 回到顶部
帅哥哟,离线,有人找我吗?
437382180311
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:116 积分:0 威望:0 精华:0 注册:2020/4/3 15:03:05
  发帖心情 Post By:2020/11/19 20:56:26 [只看该作者]

我也用鸡蛋显示 了一下效果,曲线是向下的15分钟,与楼主的显示 差别很大。思路是挺好的。

 回到顶部
帅哥哟,离线,有人找我吗?
岩泉自在
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:45 积分:0 威望:0 精华:0 注册:2019/9/18 11:23:44
  发帖心情 Post By:2021/5/2 19:48:49 [只看该作者]

反向做,就是向上的了

 回到顶部