-- 作者:guotx2010
-- 发布时间:2010/12/26 16:10:21
-- [讨论]对股指手工开仓进行管理的交易系统,大家看看有没有问题?
我的想法是:
1、如果开仓后浮动利润达到1.5万就平仓;
2、如果开仓马上到止损点位8点,就立即止损;
3、开仓后只要有3个点的利润,就要保住,当价格朝开仓价格逼近的时候,设置的止盈单可以至少保住0.4点的利润
4、开仓后利润不断扩大,则不断调整止盈位,通过折返点数来调整。
横线下方是代码,请大家指正,谢谢!
-------------------------------------------------------------------
止损点数:=8;
持仓量:=holding; //浮动利润超过1.5万,止盈退出 if openprofit>15000 then begin if 持仓量>0 then begin //平多仓止盈 sell(1=1,holding,NEXTHIGH); end if 持仓量<0 then begin //平空仓止盈 sellshort(1=1,holding,NEXTLOW); end end
上次开仓价:=ENTERPRICE; 上次开仓量:=ENTERVOL; 平仓历时:=EXITBARS; 上次平仓价:=EXITPRICE; 上次平仓量:=EXITVOL; 亏损次数:=NUMLOSSTRADE; 开仓历时:=OPENBAR; 今开:=DYNAINFO(4); 最高:=DYNAINFO(5); 最低:=DYNAINFO(6); 最新:=DYNAINFO(7); 买一价:=DYNAINFO(28); 卖一价:=DYNAINFO(34);
//开仓后立即到达止损位,马上止损 多损:SELL(L<=上次开仓价-止损点数 and holding>0,100%,MARKET); {以市价退出亏损头寸} 空损:SELLSHORT(H>=上次开仓价+止损点数 and holding<0,100%,MARKET); {以市价退出亏损头寸} ////////////////////////////////////
开仓以来最低价:=LLV(L,ENTERBARS); 开仓以来最高价:=LLV(H,ENTERBARS); //只要开仓后有利润,就要保住 if 开仓以来最高价-上次开仓价<=3 then begin //多单设置止盈位 追多盈:SELL(1=1 and holding>0,holding,Stopr,上次开仓价+0.4); //有0.4点赚的位置放一个止盈单 end if 上次开仓价-开仓以来最低价<=3 then begin //空单设置止盈位 追空盈:SELLSHORT(1=1 and holding<0,holding,Stopr,上次开仓价-0.4); end //////////////////////////////////
//开仓后利润不断扩大,到达一定数之后折返到一定幅度就止盈 //第一目标10点-15点,折返3点 if between(开仓以来最高价-上次开仓价,10,15) then begin 折返点数:=3; 追多盈1:SELL(1=1 and holding>0,holding,Stopr,开仓以来最高价-折返点数); end if between(上次开仓价-开仓以来最低价,10,15) then begin 折返点数:=3; 追空盈1:SELL(1=1 and holding<0,holding,Stopr,开仓以来最低价+折返点数); end //第二目标16点-25点,折返5点 if between(开仓以来最高价-上次开仓价,16,25) then begin 折返点数:=5; 追多盈2:SELL(1=1 and holding>0,holding,Stopr,开仓以来最高价-折返点数); end if between(上次开仓价-开仓以来最低价,16,25) then begin 折返点数:=5; 追空盈2:SELL(1=1 and holding<0,holding,Stopr,开仓以来最低价+折返点数); end //第三目标26点-35点,折返8点 if between(开仓以来最高价-上次开仓价,26,35) then begin 折返点数:=8; 追多盈3:SELL(1=1 and holding>0,holding,Stopr,开仓以来最高价-折返点数); end if between(上次开仓价-开仓以来最低价,26,35) then begin 折返点数:=8; 追空盈3:SELL(1=1 and holding<0,holding,Stopr,开仓以来最低价+折返点数); end //第四目标36点-150点,折返10点 if between(开仓以来最高价-上次开仓价,36,150) then begin 折返点数:=10; 追多盈4:SELL(1=1 and holding>0,holding,Stopr,开仓以来最高价-折返点数); end if between(上次开仓价-开仓以来最低价,36,150) then begin 折返点数:=10; 追空盈4:SELL(1=1 and holding<0,holding,Stopr,开仓以来最低价+折返点数); end
|