Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:一开仓,它就自动平仓了,写错了吗

1楼
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编辑过]
2楼
yukizzc 发表于:2015/12/27 18:49:36

HH := HHV(HIGH,ENTERBARS+1);  //开仓以前来最高价。
LL := LLV(L,ENTERBARS+1);     //开仓以前来最低价。

当跟k线的enterbars是0

3楼
viponedream 发表于:2015/12/28 4:19:08
谢谢
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04688 s, 2 queries.