想编写一个日内策略求指导
macd金叉做多,死叉做空,n个mindiff止损,2n个mindiff止盈,收盘清仓。
每天由1手开始下单,平仓后如果当天总收益为正,全天交易终止。
当天总收益为负时,下一单开1.5倍仓位(按四舍五入取值),当日总亏损到2000时,平仓,且全天交易终止
你这个思路的话有个地方,持仓如果隔日的话,你这个怎么处理。如果是昨天的仓位,我今天平仓,算今日的收益?
“当天总收益为负时,下一单开1.5倍仓位(按四舍五入取值)”这个如果是连续亏损 开仓手数在上次开仓手数基础上连续增加?
是的,但是日内总亏损触及到2000,就清仓,当天停止交易
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6),N(5,1,100,1);//参数设置
VARIABLE:ss:=1;//手数
DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P);
DEA := EMA(DIFF,M);
MACD1 := 2*(DIFF-DEA), COLORSTICK;
macdjc:=cross(diff,dea);//macd金叉
macdsc:=cross(dea,diff);
tdyk:asset-ref(asset,if(todaybar=BARPOS,BARPOS-1,todaybar));//当日盈亏,按照资产变化计算的
if macdsc then
begin
sell(holding>0,holding,MARKET);
ss:=if(tdyk<0,round(ss*1.5),ss);
buyshort(holding=0 and ((tdyk<=0 and tdyk>-2000)),ss,market);
end
if macdjc then
begin
sellshort(holding<0,holding,market);
ss:=if(tdyk<0,round(ss*1.5),ss);
buy(holding=0 and ((tdyk<=0 and tdyk>-2000)) ,ss,MARKET);
end
if tdyk<-2000 then //亏损到一定程度情况下全平
begin
sellshort(holding<0,holding,market);
sell(holding>0,holding,MARKET);
end
if time=CLOSETIME(0) then //收盘全平
begin
ss:=1;
sellshort(holding<0,holding,market);
sell(holding>0,holding,MARKET);
end
//止盈止损部分 以多头为例,空头自行参考这个补全即可.N是止盈止损的点数
//止盈
IF C-AvGENTERPRICE>N*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);
END
//止损
IF AvGENTERPRICE-C>N*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);
END
仅供参考。
[此贴子已经被作者于2019/7/31 16:21:51编辑过]