以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 交易策略发布专区 (http://weistock.com/bbs/list.asp?boardid=10) ---- [原创]发一个用SAR编写的策略,仅供参考 (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=182804) |
-- 作者:戈壁Q -- 发布时间:2020/11/2 1:19:48 -- [原创]发一个用SAR编写的策略,仅供参考 //仅供初学者参考或测试用。 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;
|
-- 作者:戈壁Q -- 发布时间:2020/11/3 15:32:08 -- 利用抛物转向指标SAR设计模型非常简洁,指标只有三个参数SAR(N,S,M),N为计算周期,S为步长,M为步长极限值。 另外,指标不含未来,可以直接用HIGH>=SAR或LOW<=SAR写开平仓条件,信号不闪不漂移。 这个模型中用了4个不同的SAR指标,用浮动盈亏幅度OPENPROFITPER来切换不同的SAR指标,根据盈亏情况来平仓。 理论上这个模型适用于所有品种、所有周期,针对不同品种选择适当的周期,很多品种都能获得正收益。 至少比金字塔自带的模型要好一点。 但是要实盘的话,还是要考虑更多的因素,如资金管理,仓位管理,交易滑点等,这种简单的模型是不可以实盘的。 要是初学者用于小周期测试的话,把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 -- 发布时间:2020/11/19 20:56:26 -- 我也用鸡蛋显示 了一下效果,曲线是向下的15分钟,与楼主的显示 差别很大。思路是挺好的。 |
-- 作者:岩泉自在 -- 发布时间:2021/5/2 19:48:49 -- 反向做,就是向上的了 |