龙听期货论坛's Archiver

龙听 发表于 2020-5-5 08:08

逐步盈利交易系统模型源码[金字塔模型]

{参数:
开始日期:缺省:100416  最小:100416 最大:121231 步长:1
结束日期:缺省:121231  最小:100416 最大:121231 步长:1
隔夜持仓:缺省:0 最小:0 最大:1 步长:1
}

模型策略源码:
[code]
runmode:0; //逐K线模式

清仓数量:=1;

开仓数量:=1;

平仓数量:=1;

开仓滑点:=0.4; //2*mindiff

平仓滑点:=0.6; //3*mindiff

开仓时间:=TIME<145500 AND TIME>091500;

平仓时间:=TIME<150800 AND TIME>091500;

清仓时间:=time > 150800;

开始时间:=1000000 开始日期;

结束时间:=1000000 结束日期;

MA19:MA(C,19),PRECISION2,LINETHICK0;

MA2:MA(C,2),PRECISION2,LINETHICK0;

开多: CROSS(MA2,MA19),PRECISION0,LINETHICK0;

开空: CROSS(MA19,MA2),PRECISION0,LINETHICK0;

平空: CROSS(MA2,MA19),PRECISION0,LINETHICK0;

平多: CROSS(MA19,MA2),PRECISION0,LINETHICK0;

if date>结束时间 or date<开始时间 then exit;

myholding:=HOLDING;

if  平仓时间 then begin

IF (myholding>0 and 平多)  THEN begin

SELL(1,平仓数量,LIMIT,close-平仓滑点),orderqueue,IGNORECHECKPRICE;

  IF (开仓时间 and 开空)  THEN BUYSHORT(1,开仓数量,LIMIT,close-开仓滑点),orderqueue,IGNORECHECKPRICE;

end

IF (myholding<0 and 平空)  THEN begin

  SELLSHORT(1,平仓数量,LIMIT,close 平仓滑点),orderqueue,IGNORECHECKPRICE;

  IF (开仓时间 and 开多)  THEN BUY(1,开仓数量,LIMIT,close 开仓滑点),orderqueue,IGNORECHECKPRICE;
end
end

IF (开仓时间 and holding=0) THEN  BEGIN

IF (开多)  THEN BUY(1,开仓数量,LIMIT,close 开仓滑点),IGNORECHECKPRICE;

IF (开空)  THEN BUYSHORT(1,开仓数量,LIMIT,close-开仓滑点),IGNORECHECKPRICE;

END

if 清仓时间 and NOT(隔夜持仓) and holding<>0 then

begin

sell(holding > 0, 清仓数量, LIMIT,close-平仓滑点),orderqueue,IGNORECHECKPRICE;

sellshort(holding < 0, 清仓数量, LIMIT,close 平仓滑点),orderqueue,IGNORECHECKPRICE;

end


资产:ASSET,PRECISION0,NOAXIS,colorcyan;

持仓:HOLDING,PRECISION0,LINETHICK0;

交易数:totaltrade,PRECISION0,LINETHICK0;

日盈利:ASSET-REF(ASSET,barslast(date<>ref(date,1))),PRECISION0,LINETHICK0;

日交易数:totaltrade-REF(totaltrade,barslast(date<>ref(date,1))),PRECISION0,LINETHICK0;
[/code]

页: [1]