借鉴论坛中经验,调整交易,请教老师下面两个问题
问题1、开空:符合开空条件开空单,符合空单止盈条件,同时如果空单盈利30%止盈,亏损2%平空
//开空单
ORDVOL:=1;
variable:maxprofit=0;//有仓位时最大获利幅度
win:=0;
win2:=0;
IF holding=0 then BEGIN
buyshort(CD_BUY_SHORT,ORDVOL,MARKET);
maxprofit=0;
END
IF HOLDING>0 and enterbars > 0 then BEGIN
win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
END
IF HOLDING>0 then begin
SELLshort(CD_SELL_SHORT,0,MARKET);
IF WIN < -2 THEN
SELLSHORT(1,0,MARKET);
IF WIN2 >= 30 and OPENPROFIT > 0 then
SELLSHORT(1,0,MARKET);
END
问题2:多单2%止损
保证金:=AvGENTERPRICE*MULTIPLIER*TACCOUNT(41);
kspc:holding*(AvGENTERPRICE-c)*MULTIPLIER>=0.02*保证金;
请教老师问题1中这个交易逻辑是否写对,问题1中的止损条件是否优于问题2中的止损指标,问题2中空单止损怎么写?
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度这里不用乘以100了,你的maxprofit和win都已经计算过百分比了吧
50% - 10% /50%
不用再*100
空单的holding是小于0的
IF HOLDING<0 then begin
SELLshort(CD_SELL_SHORT,0,MARKET);
IF WIN < -2 THEN
SELLSHORT(1,0,MARKET);
IF WIN2 >= 30 and OPENPROFIT > 0 then
SELLSHORT(1,0,MARKET);
END
ORDVOL:=1; {开仓手数}
variable:maxprofit_long=0;//有仓位时最大获利幅度
variable:maxprofit_short=0;
win_long1:=0;
win_long2:=0;
win_short1:=0;
win_short:=0;
IF CD_BUY_LONG then
BEGIN
sellshort(holding<0,holding,market); //周期均线多头排列,则平空开多
开多:buy(holding=0,ORDVOL,MARKET);
maxprofit_long=0;
END
IF HOLDING>0 and enterbars > 0 then
BEGIN
win_long1:=(c-enterprice)/enterprice*100; //记录最大盈利
IF win_long1 > maxprofit_long then
maxprofit:=win_long1;
win_long2:=(maxprofit_long-win_long1)/maxprofit_long; //最大盈利后的回调幅度
END
IF CD_SELL_LONG and holding>0 then
BEGIN
平多:SELL(1,holding,market); //多头止盈
END
IF HOLDING>0 then //2%止损
BEGIN
IF win_long1 < -2 THEN
2多止损:SELLSHORT(1,holding,MARKET);
END
老师,为什么系统不执行止损??