以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  顾比倒数线策略里的888888是不是没啥用?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=167343)

--  作者:m1978xz
--  发布时间:2018/12/26 8:09:40
--  
追加个小问题:

variable:zs=c,maxhl=c;

//把以上顾比线的代码复制一下
DISTL:=NEWLBARS(L,1);
DISTH:=NEWHBARS(H,1);
HI20:=REF(HHV(H,20),1);
LO20:=REF(LLV(L,20),1);
GBD1:=REF(L,DISTL);
GBD2:=REF(GBD1,DISTL);
GBD:=IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20));

GBG1:=REF(H,DISTH);
GBG2:=REF(GBG1,DISTH);
GBG:=IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20));
nn:=barslast(date<>ref(date,1))+1;
entertime:=nn>=m and time<=144500;
exittime:=time>=150900;
if holding>0 then 止损1:zs;
if holding<0 then 止损2:zs;
ma5:=ma(c,5);
ma30:=ma(c,30);
long:=cross(ma5,ma30);//多单进场条件
short:=cross(ma30,ma5);//空单进场条件

 

//下破移动止损线后离场
if holding>0 and (c<zs or exittime) then sell(1,1,limitr,c);
if holding<0 and (c>zs or exittime) then sellshort(1,1,limitr,c);

 

//开仓语句

if holding=0 and entertime and long then begin
 buy(1,1,limitr,c);
 zs:=gbd;//调用顾比倒数线做为止损
 maxhl:=h;//记录当时的高点
end

 

if holding=0 and entertime and short then begin
 buyshort(1,1,limitr,c);
 zs:=gbg;//调用顾比倒数线做为止损
 maxhl:=L;
end

 

if holding<0 and l<maxhl then begin //创新低后,重新定位离场位,以实现浮动止损
 maxhl:=l;
 zs:=gbg;
end

 

if holding>0 and h>maxhl then begin //创新高后,重新定位离场位,以实现浮动止损
 zs:=gbd;
 maxhl:=h;
end


这是在那个帖子第8楼阿火版主的这个策略16行有个问题,编译时显示:未定义的变量M,这个m我改成了090500就没问题了。

是不是这个策略缺少一些参数的设定。所以在运行起来没啥显示啊?


--  作者:FireScript
--  发布时间:2018/12/26 9:04:04
--  
1.写成888888只是为了让它的返回值足够大,后面这个B还被用于参与比较了。反正只要足够大就行。这个代码的逻辑有那么多没办法缩减,而且能一行就一行吧。
另外IFELSE和IF没有任何区别的,现在用if得更多。&&和and等效。
2.m要自己定义下
根据代码含义nn>mm  这个应该是表达当日K线数量大于MM 所以你写成090500 也太大了。

--  作者:m1978xz
--  发布时间:2018/12/26 9:10:21
--  回复:(FireScript)1.写成888888只是为了让它的返回...
感谢版主答疑,经过您的指导。这个策略已经能正常显示啦。
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181226090925.jpg
图片点击可在新窗口打开查看