老师:您好!
帮忙看看,测试时不执行止盈止损,为什么。
感谢!
B2>SMA2&&C>=MID&&TT,BK;//多头信号出现,收盘价在布林线中轨上或等于,开多仓,图中标注1;
B2<SMA2&&C<=MID&&TT,SK;//空头信号出现,收盘价在布林线中轨下或等于,开空仓,图中标注2;
CONDD:=B2>SMA2&&C<MID;//多头信号出线,收盘价在布林线中轨下,不执行开平仓操作,图中标注3;
CONDK:=B2<SMA2&&C>MID;//空头信号出线,收盘价在布林线中轨上,不执行开平仓操作,图中标注4;
C<REF(L-2*MINPRICE,BARSBK)&&NOT(CONDD),SP;//止损设为开仓K线多仓为最低价+2个价位
C>REF(H+2*MINPRICE,BARSSK)&&NOT(CONDK),BP;//止损设为开仓K线空仓为最高价+2个价位;
C>=BKPRICE+2*MINPRICE&&BKPRICEAV1>=BKPRICE+5*MINPRICE&&BKHIGH<BKPRICE+10*MINPRICE,SP; //盈利有5个价位设置止盈价为开仓价+2个价位;
C>=BKPRICE+5*MINPRICE&&BKPRICEAV1>=BKPRICE+10*MINPRICE&&BKHIGH<BKPRICE+15*MINPRICE,SP; //盈利有10个价位设置止盈价为开仓价+5个价位;
C>=BKPRICE+7*MINPRICE&&BKPRICEAV1>=BKPRICE+15*MINPRICE&&BKHIGH<BKPRICE+20*MINPRICE,SP; //盈利有15个价位设置止盈价为开仓价+7个价位;
C>=BKPRICE+12*MINPRICE&&BKPRICEAV1>=BKPRICE+20*MINPRICE,SP; //盈利有20个价位设置止盈价为开仓价+12个价位;
C<=SKPRICE-2*MINPRICE&&SKPRICEAV<=SKPRICE-5*MINPRICE&&SKLOW<SKPRICE-10*MINPRICE,BP; //盈利有5个价位设置止盈价为开仓价+2个价位;
C<=SKPRICE-5*MINPRICE&&SKPRICEAV<=SKPRICE-10*MINPRICE&&SKLOW<SKPRICE-15*MINPRICE,BP; //盈利有10个价位设置止盈价为开仓价+5个价位;
C<=SKPRICE-7*MINPRICE&&SKPRICEAV<=SKPRICE-15*MINPRICE&&SKLOW<SKPRICE-20*MINPRICE,BP; //盈利有15个价位设置止盈价为开仓价+7个价位;
C<=SKPRICE-12*MINPRICE&&SKPRICEAV<=SKPRICE-20*MINPRICE,BP; //盈利有20个价位设置止盈价为开仓价+12个价位;
CHECKSIG(BP,'A',0,'C',0,0);
CHECKSIG(SP,'A',0,'C',0,0);
CLOSEMINUTE1<=1,CLOSEOUT;//收盘前1分钟清仓
AUTOFILTER;
MID:MA(CLOSE,12);
TMP2:=STD(CLOSE,10);
TOP:MID+3*TMP2;
BOTTOM:MID-3*TMP2;
TT:=TIME>2100||TIME<1455;//每个交易日21:05分-14:55分运行程序
B1:=MA(C,5); //一日收盘价
B2:=SMA(SMA(SMA(B1,2,1),2,1),2,1);
SMA2:=MA(B2,5);//5天平均
B2>SMA2&&C>=MID&&TT,BK;//多头信号出现,收盘价在布林线中轨上或等于,开多仓,图中标注1;
B2<SMA2&&C<=MID&&TT,SK;//空头信号出现,收盘价在布林线中轨下或等于,开空仓,图中标注2;
CONDD:=B2>SMA2&&C<MID;//多头信号出线,收盘价在布林线中轨下,不执行开平仓操作,图中标注3;
CONDK:=B2<SMA2&&C>MID;//空头信号出线,收盘价在布林线中轨上,不执行开平仓操作,图中标注4;
C<REF(L-2*MINPRICE,BARSBK)&&NOT(CONDD),SP;//止损设为开仓K线多仓为最低价+2个价位
C>REF(H+2*MINPRICE,BARSSK)&&NOT(CONDK),BP;//止损设为开仓K线空仓为最高价+2个价位;
C>=BKPRICE+2*MINPRICE&&BKPRICEAV1>=BKPRICE+5*MINPRICE&&BKHIGH<BKPRICE+10*MINPRICE,SP; //盈利有5个价位设置止盈价为开仓价+2个价位;
C>=BKPRICE+5*MINPRICE&&BKPRICEAV1>=BKPRICE+10*MINPRICE&&BKHIGH<BKPRICE+15*MINPRICE,SP; //盈利有10个价位设置止盈价为开仓价+5个价位;
C>=BKPRICE+7*MINPRICE&&BKPRICEAV1>=BKPRICE+15*MINPRICE&&BKHIGH<BKPRICE+20*MINPRICE,SP; //盈利有15个价位设置止盈价为开仓价+7个价位;
C>=BKPRICE+12*MINPRICE&&BKPRICEAV1>=BKPRICE+20*MINPRICE,SP; //盈利有20个价位设置止盈价为开仓价+12个价位;
C<=SKPRICE-2*MINPRICE&&SKPRICEAV<=SKPRICE-5*MINPRICE&&SKLOW<SKPRICE-10*MINPRICE,BP; //盈利有5个价位设置止盈价为开仓价+2个价位;
C<=SKPRICE-5*MINPRICE&&SKPRICEAV<=SKPRICE-10*MINPRICE&&SKLOW<SKPRICE-15*MINPRICE,BP; //盈利有10个价位设置止盈价为开仓价+5个价位;
C<=SKPRICE-7*MINPRICE&&SKPRICEAV<=SKPRICE-15*MINPRICE&&SKLOW<SKPRICE-20*MINPRICE,BP; //盈利有15个价位设置止盈价为开仓价+7个价位;
C<=SKPRICE-12*MINPRICE&&SKPRICEAV<=SKPRICE-20*MINPRICE,BP; //盈利有20个价位设置止盈价为开仓价+12个价位;
CHECKSIG(BP,'A',0,'C',0,0);
CHECKSIG(SP,'A',0,'C',0,0);
CLOSEMINUTE1<=1,CLOSEOUT;//收盘前1分钟清仓
AUTOFILTER;