-- 作者:jinjianlin
-- 发布时间:2011/5/11 9:15:03
-- [原创]固定轮训模式下优化止损止赢的优化
INPUT:P1(2,0,50,1){初始止损幅度},P2(5,2,100,1){止盈幅度}; VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 090000;{用于隔夜高开或低开时间差} WIN1:=0; WIN2:=0;//止盈、止损、回撤控制 //信号模块:该模块主用于多空头及平仓信号的量化 {示例如下:开多:当MA10上穿MA20时,发出买入开仓交易指令; 平空:当MA10 上穿MA5时,发出卖出平仓交易指令;平多:当MA5上穿MA10时,发出买入平仓交 易指令;开空:当MA10下穿MA20时,发出开空交易指令;} MA5: MA(o,5); MA10:MA(o,10); MA20:MA(o,20); 开多:=CROSS(MA10,MA20); 平多:=CROSS(MA5,MA10); 开空:=CROSS(MA20,MA10); 平空:=CROSS(MA10,MA5); 交易时间:=TIME>VMIN AND TIME<151430; //图表日内交易模块:
IF HOLDING=0 THEN BEGIN //多头开仓 IF 交易时间 AND 开多 THEN BEGIN BUY(1,1,mkt); MAXPROFIT:=0; END //空头开仓 IF 交易时间 AND 开空 THEN BEGIN BUYSHORT(1,1,mkt); MAXPROFIT:=0; END END IF HOLDING>0 THEN BEGIN //多头平仓 IF 平多 THEN SELL(1,HOLDING,LIMITR,CLOSE); //多头收盘平仓
IF NOT(交易时间) THEN SELL(1,HOLDING,LIMITR,CLOSE); //盈亏计算 IF ENTERBARS>0 THEN begin WIN1:=(l-ENTERPRICE)/ENTERPRICE*100; win2:=(h-ENTERPRICE)/ENTERPRICE*100; end
//这样算出来测试的时候虽然是K线走完了的,但是只要知道最高最低到过那里就可以了 //多头初始浮亏 P1% 止损 IF WIN1<-P1 THEN SELL(1,HOLDING,LIMITR,(ENTERPRICE(1-p1))); //这样写价格可以吗 //多头利润大于 P2% 止盈 IF WIN2>P2 THEN SELL(1,HOLDING,LIMITR,(ENTERPRICE(1+p1))); END IF HOLDING<0 THEN BEGIN //空头平仓 IF 平空 THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE); //空头收盘平仓 IF NOT(交易时间) THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE); //盈亏计算 IF ENTERBARS>0 THEN BEGIN WIN1:=(ENTERPRICE-h)/ENTERPRICE*100; WIN2:=(ENTERPRICE-l)/ENTERPRICE*100; END //空头初始浮亏超过 P1% 止损 IF WIN1<-P1 THEN SELLSHORT(1,HOLDING,LIMITR,(ENTERPRICE(1+p1))); //空头利润大于 P2%止盈 IF WIN1>P2 THEN SELLSHORT(1,HOLDING,LIMITR,(ENTERPRICE(1-p1))); END
//在固定轮训模式下的测试优化,请仔细看看我的盈亏计算和止损止赢价格,如果不 对请高手指正
|