MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);
MA3:=MA(CLOSE,30);
RED:=CROSS(C,MA3);
GREEN:=CROSS(MA3,C);
FLAG:=IF(BARSTATUS=1,0,IF(RED,1,IF(GREEN,-1,NULL)));
DRAWICON(FLAG>0 AND CROSS(MA1,MA2),LOW,1),COLOR0000FF;
DRAWICON(FLAG<0 AND CROSS(MA2,MA1),HIGH,2),VALIGN2;
FLAG<0 AND CROSS(MA2,MA1),BK(1);
FLAG>0 AND CROSS(MA1,MA2),SP(1);
C>BKPRICE+93*MINPRICE,SP(1);
STOP(2,+122);
TRADE_AGAIN(3);
这是文华的模型,请修改成金字塔模型,谢谢!
其中部分代码无法等效修改,鉴于软件处理机制差异,转换效果是可能存在差异的。
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);
MA3:=MA(CLOSE,30);
RED:=CROSS(C,MA3);
GREEN:=CROSS(MA3,C);
FLAG:=IF(BARPOS=1,0,IF(RED,1,IF(GREEN,-1,NULL)));
DRAWICON(FLAG>0 AND CROSS(MA1,MA2),LOW,1),COLOR0000FF;
DRAWICON(FLAG<0 AND CROSS(MA2,MA1),HIGH,2),VALIGN2;
buycond:FLAG<0 AND CROSS(MA2,MA1);
sellcond:FLAG>0 AND CROSS(MA1,MA2);
if buycond then buy(holding=0,1,market);
if sellcond then sell(holding>0,holding,market);
zycond:C>ENTERPRICE+93*MINDIFF;
if zycond then sell(holding>0,holding,market);
//下面这部分无法转换
//STOP(2,+122);
//TRADE_AGAIN(3);
/下面这部分无法转换//STOP(2,+122);是指连续几次开仓后平均盈利122个点位立即平仓//TRADE_AGAIN(3);这是加仓模型,是指出现信号开仓3次
可以写吗?
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);
MA3:=MA(CLOSE,30);
RED:=CROSS(C,MA3);
GREEN:=CROSS(MA3,C);
FLAG:=IF(BARPOS=1,0,IF(RED,1,IF(GREEN,-1,NULL)));
DRAWICON(FLAG>0 AND CROSS(MA1,MA2),LOW,1),COLOR0000FF;
DRAWICON(FLAG<0 AND CROSS(MA2,MA1),HIGH,2),VALIGN2;
buycond:FLAG<0 AND CROSS(MA2,MA1);
sellcond:FLAG>0 AND CROSS(MA1,MA2);
if buycond then buy(1,1,market);
if sellcond then sell(holding>0,holding,market);
zycond1:C>ENTERPRICE+93*MINDIFF;
if zycond1 then sell(holding>0,holding,market);
zycond2:holding>=2 and c-AVGENTERPRICE>=122*MINDIFF;//加仓2次以及次以上且平均盈利达到122个点 则止盈平仓,这里盈利点数和加仓次数限制可以自行调整
if zycond2 then sell(holding>0,holding,market);
下面这个目前无法处理。
//TRADE_AGAIN(3);这是加仓模型,是指出现信号开仓3次
zycond2:holding>=2 and c-***GENTERPRICE>=122*MINDIFF;这个测试不通过
zycond2:holding>=2 and c-AVGENTERPRICE>=122*MINDIFF;
改下即可。