以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 一开仓,它就自动平仓了,写错了吗 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=88872) |
-- 作者:viponedream -- 发布时间:2015/12/26 20:47:40 -- 一开仓,它就自动平仓了,写错了吗 写出来的,一开仓,就平仓。 很简单的策略啊 意思是 开仓后设置一个固定止损值 赢利1.5倍ATR时,把止损移上去。 回调3倍ATR时,平仓出来。 但是我写出来的,一开它,它就平了。 INPUT:LOTS(1,1,100,1); //手数 VARIABLE:DUOSTOPRICE=0,KONGSTOPRICE=0; //多头止损价,空头止损价。 VARIABLE:DUOKAIPRICE=0,KONGKAIPRICE=0; //多开价格,空开价格。 VARIABLE:HH=0,LL=0; {保存开仓后的最高价、最低价} RUNMODE:0; MYATR:=MA(TR,36); //真实波幅的26周期值;为止损止盈用。。 IF MYATR<=0 THEN MYATR=1; HIGHN := REF(HHV(HIGH,10),1); //做多要大于前3。 LOWN := REF(LLV(LOW,10),1); //做空要小于前3。 DUOPEN := C > HIGHN; //开单条件 KONGOPEN := c < LOWN; DUOPEN := C > HIGHN; //开多单 if HOLDING=0 AND DUOPEN then begin
BUY(1,LOTS,THISCLOSE); DUOSTOPRICE:= MIN( ENTERPRICE-1.5*MYATR, ENTERPRICE-3*MINDIFF ); DUOKAIPRICE:=ENTERPRICE; //开了多单就把价格传给多开价格 ENd HH := REF(HHV(HIGH,ENTERBARS),1); //开仓以前来最高价。 LL := REF(LLV(L,ENTERBARS),1); //开仓以前来最低价。 ////多单管理 IF HOLDING>0 THEN BEGIN
IF (H-ENTERPRICE)>1.5*MYATR THEN //盈利1.5*ATR时上移止损
BEGIN
DUOSTOPRICE = ENTERPRICE-0.3*MYATR;
END
IF (HH-CLOSE)> 3*MYATR THEN //从高位下跌3*ATR时平仓
BEGIN
SELL(1,0,MARKET),ORDERQUEUE;
END
IF C<DUOSTOPRICE THEN //止损
BEGIN
SELL(1,0,MARKET),ORDERQUEUE;
END END [此贴子已经被作者于2015/12/26 20:48:07编辑过]
|
-- 作者:yukizzc -- 发布时间:2015/12/27 18:49:36 -- HH := HHV(HIGH,ENTERBARS+1); //开仓以前来最高价。 当跟k线的enterbars是0 |
-- 作者:viponedream -- 发布时间:2015/12/28 4:19:08 -- 谢谢 |