请教版主:我在MT4上请人编了一个无限循环交易的小程序:
开多仓条件:CLOSE>=开空以来的最低价+X;
平多仓条件:CLOSE<=开多以来的最高价-X;
开空仓条件:CLOSE<=开多以来的最高价-X;
平空仓条件:CLOSE>=开空以来的最低价+X;这个程序虽然不盈利,但很智能,比如,我可以人工买入第一单,然后由系统循环交易,也可以连第一单也由系统自动寻找条件点位而交易,我想把这个系统转到金字塔上加以运用,除了上述主要的开平仓指令外,还应该加进怎样的语句才能达到象MT4的效果一样,既能第一笔用人工买入,也可以完全由系统自动寻找点位买入。我曾听编的人讲过,大概是往前取一定数量的K线,比如取100根,以前100根K线的收盘价作为一个买多或买空点,然后一直审查过来,以决定当前的买卖点,但这个语句该如何写,能否帮忙具体列式,并加以说明。
我先看一下,回头写出来代码我给你贴上来,稍等哈
//假设之前手工开多仓或者使用ma交叉开仓
INPUT:X(10,1,100);
BUY(CROSS(MA(CLOSE,5),MA(CLOSE,15)),1 ,MARKET);//设置ma交叉开仓
VARIABLE:DQ=0;
平多仓条件:=CLOSE<=HHV(HIGH,ENTERBARS)-X; //开多以来的最高价-X;
IF 平多仓条件 AND DQ=0 THEN BEGIN
SELL(HOLDING>0,1 ,MARKET);
DQ:=1;
END
开空仓条件:=CLOSE<=LLV(LOW,ENTERBARS)+X; //开多以来的最高价-X;
IF 开空仓条件 AND DQ=1 THEN BEGIN
BUYSHORT(HOLDING=0 ,1 , MARKET );
DQ:=2;
END
平空仓条件:=CLOSE>=LLV(LOW,ENTERBARS)+X;//开空以来的最低价+X;
IF 平空仓条件 AND DQ=2 THEN BEGIN
SELLSHORT(HOLDING<0 ,1 , MARKET);
DQ:=3;
END
开多仓条件:=CLOSE>=LLV(LOW,ENTERBARS)+X; //开空以来的最低价+X;
IF 开多仓条件 AND DQ=3 THEN BEGIN
BUY(HOLDING=0 ,1 ,MARKET);
DQ:=0;
END
我做了个例子,不知道是否符合你的要求,你且测试看看!
第一次自动开仓,x缺省5,最小1,最大10,步长1