
等级: 标准版
- 注册:
- 2023-2-16
- 曾用名:
|

楼主 |
发表于 2023-3-20 15:27
|
显示全部楼层
我的原代码:
////////////////////////////////////////////止损模块//////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
VARIABLE:空止损1:=0; 空止损价2:=REF(卖1,ENTERBARS);空止损价1:=IF(HOLDING<0,空止损价2,DRAWNULL);
VARIABLE:空止损2:=0;
VARIABLE:多止损1:=0; 多止损价2:=REF(买1,ENTERBARS);多止损价1:=IF(HOLDING>0,多止损价2,DRAWNULL);
VARIABLE:多止损2:=0;
入场前高:=ref(hhv(h,3),ENTERBARS);
入场前低:=ref(LLv(L,3),ENTERBARS);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
if 多止损1=0 and holding>0 AND CC>0 then 多止损1:=if(ENTERPRICE-多止损价1<=(10日区间/2),多止损价1-(10日区间/2)*MINDIFF, IF(入场前低-空止损价1>10日区间,入场前低,多止损价1));
IF 多止损2=0 and holding>0 AND CC>0 then 多止损2:=多止损1;
if C>多止损1+20日区间 AND HOLDING>0 THEN 多止损1:=多止损1+10日区间;
if C>多止损2+20日区间*2 AND HOLDING>0 and 多止损1<>0 THEN 多止损2:=多止损2+20日区间;
if holding>0 AND C>MA55 AND C-ENTERPRICE>=3*20日区间 and 多止损2<>0 THEN 多止损1:=多止损2;
///////////////////////////////////////////////////////
多损:IF(holding>0 AND 多止损1<>0 ,多止损1,DRAWNULL);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
if 空止损1=0 and holding<0 AND CC<0 then 空止损1:=if(空止损价1-ENTERPRICE<=(10日区间/2),空止损价1+(10日区间/2)*MINDIFF, IF(空止损价1-入场前高>10日区间,入场前高,空止损价1));
IF 空止损2=0 and holding<0 AND CC<0 then 空止损2:=空止损1;
if C<空止损1-20日区间 AND HOLDING<0 THEN 空止损1:=空止损1-10日区间;
if C<空止损2-20日区间*2 AND HOLDING<0 and 空止损1<>0 THEN 空止损2:=空止损2-1*20日区间;
if holding<0 AND C<MA55 AND C<=ENTERPRICE-(3*20日区间)THEN 空止损1:=空止损2;
/////////////////////////////////////////////////////////////
空损:IF(空止损1<>0 AND holding<0,空止损1,DRAWNULL);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
{IF C>空损 AND HOLDING<0 AND CC<=-2 AND ENTERBARS>0 THEN BEGIN
空止盈损3:SELLSHORT(1,holding/2,MARKET);
CC:=-1;
// 空止损1:=空止损1+10日区间;
// 空止损2:=空止损2+1*20日区间;
END }
IF C>空损 AND HOLDING<0 AND CC=-1 AND ENTERBARS>0 THEN BEGIN
空止盈损4:SELLSHORT(1,holding/2,MARKET);
CC:=-1;
// 空止损1:=空止损1+10日区间;
//空止损2:=空止损2+1*20日区间;
END
55日下运行:BARSLAST(cross(ma55,c))>=20 and LONGCROSS(C,MA55,10);
if cc<=-1 and ENTERPRICE-c>20日区间*2 AND LONGCROSS(C,MA55,10) THEN BEGIN//or 55日下运行
上穿止盈:SELLSHORT(1,0,MARKET);
cc:=0;
空止损1:=0;
空止损2:=0;
END
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
{IF C<多损 AND HOLDING>0 AND CC>=2 AND ENTERBARS>0 THEN BEGIN//
多止盈损3:SELL(1,HOLDING/2,MARKET);
CC:=1;
// 多止损1:=多止损1-10日区间;
// 多止损2:=多止损1-20日区间;
END}
iF C<多损 AND HOLDING>0 AND CC=1 AND ENTERBARS>0 THEN BEGIN//
多止盈损4:SELL(1,holding/2,MARKET);
CC:=1;
// 多止损1:=多止损1-10日区间;
// 多止损2:=多止损1-20日区间;
END
55日上运行:=BARSLAST(cross(c,ma55))>=20 and LONGCROSS(MA55,c,10);
if cc>=1 and c-ENTERPRICE>20日区间*2 AND LONGCROSS(MA55,c,10) THEN BEGIN//or 55日上运行
下穿止盈:SELL(1,0,MARKET);
cc:=0;
多止损1:=0;
多止损2:=0;
END
//////////////////////////////////////////////////////////////////////////////////////
IF HOLDING>0 THEN BEGIN
CC:=1;
MAXPROFIT:=0;////有仓位时最大获利幅度
END
///////////////////////////////////////////////////////////////////////////////////////////
IF HOLDING<0 THEN BEGIN
CC:=-1;
MAXPROFIT:=0;////有仓位时最大获利幅度
END
IF HOLDING=0 THEN BEGIN
CC:=0;
END
|
|