等级: 免费版
- 注册:
- 2023-11-16
- 曾用名:
|
//声明参数
INPUT : LOTS(1,1,20,1) ;//手数
INPUT : N(10,1,300,1); //止损参数
////////////////////////
BUYORDERTHISBAR := 0 ;
VARIABLE : MYENTRYPRICE =0 ;
VARIABLE : MYEXITPRICE =0 ;
VARIABLE : _DEBUG = 1 ;
VARIABLE : _TDEBUG = 1 ;
VARIABLE : _DEBUGOUT = 0 ;
VARIABLE : TURTLEUNITS=0 ;
VARIABLE : POSITION=0 ;
//准备需要计算的变量
ZRC:callstock(stklabel,vtclose,6,-1);
JKP:callstock(stklabel,vtopen,6,0);
MA1:=MA(OPEN,5);
RMA1:STKINDIEX('','MA.MA1',0,6,0,100);
TJ1:=REF(C,1)=ZRC;
//如果当前是没有持仓的状态
IF POSITION=0 AND TJ1 AND TOTALDAYTRADE=0 THEN BEGIN
//多头进场
IF JKP>ZRC AND ZRC>RMA1 THEN BEGIN
BUY( ZRC>RMA1,LOTS,LIMITR,JKP);
POSITION := 1 ;
TURTLEUNITS := 1 ;
BUYORDERTHISBAR := 1;
END //IF
//////
//空头进场
IF JKP<ZRC AND ZRC<RMA1 THEN BEGIN
BUYSHORT( ZRC<RMA1,LOTS,LIMITR,JKP),IGNORECHECKPRICE;
POSITION := -1 ;
TURTLEUNITS := 1 ;
BUYORDERTHISBAR := 1;
END
END //IF
//如果当前持有多头仓位的状态
IF POSITION=1 THEN BEGIN
WHILE (HIGH>JKP+30*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
BUY( _DEBUG, LOTS, LIMITR, JKP+30*MINDIFF);
TURTLEUNITS := TURTLEUNITS+1 ;
BUYORDERTHISBAR := 1;
END
////
IF LOW<=JKP+MINDIFF AND BUYORDERTHISBAR=0 AND HOLDING>LOTS THEN BEGIN
MYEXITPRICE := IF(OPEN<JKP+MINDIFF ,OPEN ,JKP+MINDIFF ) ;
SELL( _DEBUG ,0,LIMITR,MYEXITPRICE);//相反
POSITION := 0 ;
TURTLEUNITS := 0 ;
END
//多头止损
IF LOW<JKP-N*MINDIFF AND POSITION=1 AND BUYORDERTHISBAR=0 AND HOLDING=LOTS THEN BEGIN
MYEXITPRICE := IF(OPEN<JKP-N*MINDIFF ,OPEN ,JKP-N*MINDIFF ) ;
//MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELL(LOW<JKP-N*MINDIFF ,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;
TURTLEUNITS := 0 ;
END
END //IF
//持有空头
IF POSITION = -1 THEN BEGIN
WHILE (LOW<JKP-30*MINDIFF) AND TURTLEUNITS<2 DO BEGIN
BUYSHORT( _DEBUG,LOTS, LIMITR,JKP-30*MINDIFF);
TURTLEUNITS := TURTLEUNITS+1 ;
BUYORDERTHISBAR := 1;
END
IF H>=JKP-MINDIFF AND BUYORDERTHISBAR=0 AND TURTLEUNITS=2 THEN BEGIN
MYEXITPRICE := IF(OPEN>JKP-MINDIFF ,OPEN ,JKP-MINDIFF ) ;
SELLSHORT( _DEBUG,0,LIMITR,MYEXITPRICE);//不一样
POSITION := 0 ;
TURTLEUNITS := 0 ;
END
//空头止损
IF H>=JKP+N*MINDIFF AND POSITION = -1 AND BUYORDERTHISBAR=0 AND TURTLEUNITS=1 THEN BEGIN
MYEXITPRICE := IF(OPEN>JKP+N*MINDIFF ,OPEN ,JKP+N*MINDIFF) ;
// MYEXITPRICE := CEILING(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELLSHORT( H>=JKP+N*MINDIFF,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;
TURTLEUNITS := 0 ;
END
END //IF
T2:=TIME=165900;
收盘平多:SELL(T2 AND HOLDING>0,0,MARKETR) ;
收盘平空:SELLSHORT(T2 AND HOLDING<0,0,MARKETR) ;
|
|