MACD交易系统,金叉平空开多,死叉平多开空,
开仓后,获利情况下,如果利润最高点大于15个点,从利润最高点利润回撤40%,止盈。如果后边收盘价格又回到这个止盈点之上,重新开仓,后边再回到回撤40%的点,再平仓,直到下一个信号出现。
开多仓后,如果比开仓价格亏损10个点,止损,在下一个信号 出现之前,如果有哪个周期末又回到止损点之上,重新开仓,回到止损点之下,继续平仓,如此重复,直到下一个信号出现。
开空仓同理,只是方向相反。
1.开平仓条件参考下这个帖子---
http://www.weistock.com/bbs/dispbbs.asp?boardid=11&Id=29664
2.止盈止损的,请参考此帖
http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&ID=2160&skin=0
谢谢老师的快速回复,但是为了避免在止盈止损后错失后边的大行情,我的策略还有回复持仓的部分,在那两个帖子中没有体现出来,还望老师指导。
--------------------------------------
如果后边收盘价格又回到这个止盈点之上,重新开仓,后边再回到回撤40%的点,再平仓,直到下一个信号出现。
在下一个信号 出现之前,如果有哪个周期末又回到止损点之上,重新开仓,回到止损点之下,继续平仓,如此重复,直到下一个信号出现。
能写出完整的策略来吗?
该模型仅仅用来示范如何编写在以上条件下做多
//用户需要根据自己交易经验,补充完整开仓条件,进行修改后再实际应用!!!
//不保证模型的盈利效果,也不对这些模型的交易结果负责。
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA), COLORSTICK;
COND1:=CROSS(MACD,0);
COND2:=CROSS(0,MACD);
VARIABLE:WIN=0,WIN2=0,MAXWIN=0;
//开多
IF COND1 AND HOLDING=0 THEN
BEGIN
开多:BUY(1,1,MARKET);
END
//平仓
平多:SELL(COND2,0);
//多单
IF HOLDING>0 AND ENTERBARS>1 THEN
BEGIN
VARIABLE:CC=0;
WIN:=CLOSE-ENTERPRICE;//记录最大盈利
IF WIN>MAXWIN THEN
MAXWIN:=WIN;
IF WIN>=15*MINDIFF THEN
WIN2:=(MAXWIN-WIN)/MAXWIN*100;//最大盈利后的回调幅度
END
IF WIN2>=40 AND EXITBARS>1 THEN
BEGIN
止盈:SELL(HOLDING>0,0);
MAXWIN:=0;
CC:=CLOSE;
END
IF HOLDING=0 AND CLOSE=CC THEN
BEGIN
开多2:BUY(1,1,MARKET);
END
IF ENTERPRICE-LOW>10*MINDIFF AND ENTERBARS>2 THEN
BEGIN
止损:SELL(HOLDING>0,0);
END
资金:ASSET,NOAXIS