老师 程序化中 如果有仓位出现反向开仓信号,则平仓并且反向开仓,
如果没有仓位出现信号直接开仓,达到平仓标准后平仓。
问题是:我的程序化交易中,价格达到平仓标准并且平仓后,同时出现反向开仓信号,结果只有平仓动作,没有开仓动作。为什么?
目的是:出现开仓信号必须开仓,
平仓:止损平仓,反向信号平仓,盈利平仓
EXP2:=EMA(CLOSE,5);
EXP6:=EMA(CLOSE,30);
//DRAWICON( CROSSUP(EXP2,EXP6),LOW,'ICO1');
//DRAWICON(CROSSDOWN(EXP2,EXP6),HIGH,'ICO142');CROSSUP(EXP1,EXP6),BK;
CROSSUP(EXP2,EXP6),BK;
CROSSDOWN(EXP2,EXP6),SK;
CROSSUP(EXP2,EXP6)&&PANZHENG=0;
CROSSDOWN(EXP2,EXP6)&&PANZHENG=0;
//止损点差为SL,止赢点差为TP,追踪点差为DTP
A:=MINPRICE1;//取模组交易合约的最小变动价位
HH:=HHV(H,BARSBK+1);//买开仓位置到现在最高价
LL:=LLV(L,BARSSK+1);//卖开仓位置到现在最低价
A1:=BKPRICE+TP*A;
A2:=A1+DTP*A;
A3:=A1-2*A;
A4:=HH-DTP*A;//以上为根据止赢点差计算多单追踪止赢位置
B1:=SKPRICE-TP*A;
B2:=B1-DTP*A;
B3:=B1+2*A;
B4:=LL+DTP*A;//以上为根据止赢点差计算空单追踪止赢位置
((C<=BKPRICE-SL*A)||(HH>=A1&&HH<=A2&&C<=A3)||(HH>A2&&C<=A4))&&BKPRICE>0,SP;
//最新价跌至开仓价下5个价位,多单止损;
//买开仓后最高价达到止赢点差(20个价位)但未达到追踪点差(23个价位,20+3)就开始回撤,则最新价回撤到止赢点差下2个价位,多单止赢;
//买开仓后最高价超出追踪点差,则最新价从最高价回撤3个价位,多单止赢;
((C>=SKPRICE+SL*A)||(LL<=B1&&LL>=B2&&C>=B3)||(LL<B2&&C>=B4))&&SKPRICE>0,BP;
//空单止赢止损与多单原理相同
AUTOFILTER;
//(CROSSUP(EXP2,EXP6) || CROSSDOWN(EXP2,EXP6)),SOUND('A');
//SETXPIREDATE(�');
SL:1-100-15
TP:1-100-20
DTP:1-100-15
EXP6:=EMA(CLOSE,30);
CROSSUP(EXP2,EXP6),BK;
CROSSDOWN(EXP2,EXP6),SK;
CROSSUP(EXP2,EXP6)&&PANZHENG=0;
CROSSDOWN(EXP2,EXP6)&&PANZHENG=0;
A:=MINPRICE1;//取模组交易合约的最小变动价位
HH:=HHV(H,BARSBK+1);//买开仓位置到现在最高价
LL:=LLV(L,BARSSK+1);//卖开仓位置到现在最低价
A1:=BKPRICE+TP*A;
A2:=A1+DTP*A;
A3:=A1-2*A;
A4:=HH-DTP*A;//以上为根据止赢点差计算多单追踪止赢位置
B1:=SKPRICE-TP*A;
B2:=B1-DTP*A;
B3:=B1+2*A;
B4:=LL+DTP*A;//以上为根据止赢点差计算空单追踪止赢位置
((C<=BKPRICE-SL*A)||(HH>=A1&&HH<=A2&&C<=A3)||(HH>A2&&C<=A4))&&BKPRICE>0,SP;
((C>=SKPRICE+SL*A)||(LL<=B1&&LL>=B2&&C>=B3)||(LL<B2&&C>=B4))&&SKPRICE>0,BP;
AUTOFILTER;