
等级: 专业版
- 注册:
- 2022-8-5
- 曾用名:
|

楼主 |
发表于 2023-2-23 09:28
|
显示全部楼层
VARIABLE:kc:=0;//表示开仓百分比。所有开仓手数 请用kc% 替换,来实现开仓量的控制
VARIABLE:mark:=0;
if kc=0 then kc:=cw;
平仓语句;
//这里不区分是平多的盈亏 还是平空的盈亏
//利用NUMPROFIT函数获取后台运行记录里的盈亏记录数据 来判断连亏或连赢的情况
lk:=NUMPROFIT(1)<0;
2lk:=NUMPROFIT(1)<0 and NUMPROFIT(2)<0;
3lk:=NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0;
2ly:=NUMPROFIT(1)>0 and NUMPROFIT(2)>0;
3ly:=NUMPROFIT(1)>0 and NUMPROFIT(2)>0 and NUMPROFIT(3)>0 ;
4lk:=NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0 and NUMPROFIT(4)<0;
6lk:=NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0 and NUMPROFIT(4)<0 and NUMPROFIT(5)<0 and NUMPROFIT(6)<0 ;
QCW:=ENTERVOL;//前1次开仓量
QCW2:=ref(ENTERVOL,ENTERBARS);//前2次开仓量
HF:=NUMPROFIT(1)/ENTERVOL>EXITPRICE*0.12;
HF1:=NUMPROFIT(1)/ENTERVOL>EXITPRICE*0.04;
HF2:=(NUMPROFIT(1)/QCW+NUMPROFIT(2)/QCW2)>EXITPRICE*0.12;
LEN11:=TYPEBAR(1,2);
LEN22:=TYPEBAR(1,4);
//1-2
if lk and holding=0 and kc=cw and mark=0 and LEN11*LEN22=0 then
begin
kc:=2*cw;
end
//2-3
if 2lk and holding=0 and kc=2*cw and mark=0 and LEN11*LEN22=0 then
begin
kc:=3*cw;
end
//3-2-1
if 2ly and holding=0 and kc=2*cw and mark=0 and LEN11*LEN22=0 then
begin
kc:=cw;
end
//3-2
if (NUMPROFIT(1)>0 and hf1) and holding=0 and kc=3*cw and mark=0 and LEN11*LEN22=0 then
begin
kc:=2*cw;
end
//3-1 or 2-1
IF (hf or hf2) and holding=0 and mark=0 and LEN11*LEN22=0 then
begin
kc:=cw;
end
//5连亏之后
if 6lk then mark:=1;//6连亏后标记下
//DRAWICON(mark and not(ref(mark,1)),h,1);
//3-2
if mark=1 and 2ly and kc=3*cw and LEN11*LEN22=0 then
begin
kc:=2*cw;
end
//3-2-1
if 3ly and kc=2*cw and mark and LEN11*LEN22=0 then
begin
kc:=1*cw;
mark:=0;
end
//3-2-3
if 2lk and kc=2*cw and mark and LEN11*LEN22=0 then
begin
kc:=3*cw;
mark:=0;
end
开仓语句;
图表语句我做了些许调整吗,麻烦老师帮忙改为后台可以吗?我改的后台语句运行时也有很多非递增递减的情况出现。 |
|