//准备中间变量
INPUT:SS(1,1,10000,1),NMIN1(30,1,1000,1),NMIN2(10,1,100,1),N1(0,0,100,1);
N:=BARSLAST(DATE<>REF(DATE,1))+1;
开盘30分钟最高价:=VALUEWHEN(TIME<=090000+NMIN1*100,HHV(H,N));
开盘30分钟最低价:=VALUEWHEN(TIME<=090000+NMIN1*100,LLV(L,N));
手数:=SS;
上轨:开盘30分钟最高价+N1*MINDIFF;
下轨:开盘30分钟最低价-N1*MINDIFF;
//条件
开多条件:=C>上轨;
开空条件:=C<下轨;
//交易系统
IF TIME>090000+NMIN1*100 AND TIME<150000-10*100 THEN BEGIN
开多:BUY(开多条件 AND HOLDING=0,手数,MARKET);
END
//平仓
IF TIME>=150000-NMIN2*100 THEN BEGIN
收盘平多:SELL(1,手数,MARKET);
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
能否把这个策略改成股票可用策略?也就是t+1也可用的策略?日内交易在股票上不能用。
这是金字塔自带的策略,我想用在股票交易上,请老师有空改一下。
你思路上也要调整。最起码平仓条件要有思路。它这个代码平仓就是收盘前平仓。如果你改成股票,你平仓如何做。次日收盘前平仓?
这个代码。开仓无所谓不用改,反正就正常开。但是它的平仓是完全日内的,是收盘前平仓。你现在要改成股票上可以做的,你就必须自行提供一个平仓条件。你明白我意思了吧。
INPUT:SS(1,1,10000,1),N1(0,0,100,1);
N:=BARSLAST(DATE<>REF(DATE,1))+1;
开盘30分钟最高价:=VALUEWHEN(TIME<=100000,HHV(H,N));
开盘30分钟最低价:=VALUEWHEN(TIME<=100000,LLV(L,N));
手数:=SS;
上轨:开盘30分钟最高价+N1*MINDIFF;
下轨:开盘30分钟最低价-N1*MINDIFF;
//条件
开仓条件:=C>上轨;
平仓条件:=C<下轨;
//交易系统
IF TIME>100000 AND TIME<150000-10*100 THEN BEGIN
开仓:BUY(开仓条件 AND DAYHOLDING=0,手数,MARKET);//现在开仓条件是当日没有开仓,则运行有开仓。不是按照期货的没有仓位就开仓。
END
//平仓
IF 平仓条件 and HOLDING-DAYHOLDING>0 THEN BEGIN //HOLDING-DAYHOLDING 就是表示有可用的老仓
平仓:SELL(1,HOLDING-DAYHOLDING,MARKET);
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
你这样试下。
开平仓条件一致的。改成隔日交易的其实就多了一个是否有老仓的判断。