谢谢回答,可是:
1,程序化交易运行模式,我就是使用的固定时间间隔,设置的1秒
2,我觉得很有可能是顺序问题,因为我下一根才执行平仓,触发的是另外一个平空语句(开盘价大于止损线时以开盘价平仓)(这语句也写在位置1,先是CROSS止损,之后防止万一开盘价超过止损,这两句前后挨着)。
同时我的开多和平多止损就不会出现这个问题,当根K线就会平仓,两种写法的开平仓只是方向不一样其他都一样,因为我觉得是开多和平多顺序顺序正确,而开空要在下一遍执行才能触发
3,假设我把位置1的平空原封不动复制一遍放在位置4后面,能解决这问题吗?会不会带来其他不好的结果?
请看,螺纹钢连续,15分钟K线图
2016年12月28号01:15这根是多单止损,没问题
2016年12月29号02:45这根是空单止损,只能第二根平
求解决方法
VARIABLE:空单止损=0,空单入场标记=0,多单止损=0,多单入场标记=0;
向上均线:=REF(MA(CLOSE,30),5)<REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)<REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)<REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)<REF(MA(CLOSE,30),1),NOAXIS;
向上成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;
向下均线:=REF(MA(CLOSE,30),5)>REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)>REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)>REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)>REF(MA(CLOSE,30),1),NOAXIS;
向下成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;
//位置1——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,' 止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END
//平空2
IF OPEN>空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,OPEN);
DRAWTEXT(1,LOW*0.995,' 开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END
//位置2——开多
//开多:
IF REF(向上均线,1) AND CROSS(MA(CLOSE,10),MA(CLOSE,60)) AND HOLDING=0 THEN
BEGIN
BUY(1,1,LIMITR,OPEN);
多单止损:=ENTERPRICE-20;
多单入场标记:=1;
END
//位置3——平多
//平多1
IF CROSS(多单止损,LOW) AND OPEN>=多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,多单止损);
DRAWTEXT(1,HIGH*1.005,' 止损'+NUMTOSTR(多单止损,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END
//平多2
IF OPEN<多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,OPEN);
DRAWTEXT(1,HIGH*1.005,' 开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END
//位置4——开空
//开空:
IF REF(向下均线,1) AND CROSS(MA(CLOSE,60),MA(CLOSE,10)) AND REF(向下成交量,1) AND HOLDING=0 THEN
BEGIN
BUYSHORT(1,1,LIMITR,OPEN);
空单止损:=ENTERPRICE+20;
空单入场标记:=1;
END
版主,这个问题我早上又测试了一下,我修改了代码(注释掉了ENTERPRICE,改为OPEN),也测试了在位置4后面多复制一个位置1的平仓,但是我看历史数据图形还是一样的第二根开
我想确认一下,
这样上实盘,OPEN价入场后到收线这段时间是不是一定会当根止损,我担心下一次出现这情况不知道什么时候亏笔大的。
螺纹钢连续,15分钟K线图
2016年12月28号01:15这根是多单止损,没问题
2016年12月29号02:45这根是空单止损,只能第二根平
VARIABLE:空单止损=0,空单入场标记=0,多单止损=0,多单入场标记=0;
向上均线:=REF(MA(CLOSE,30),5)<REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)<REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)<REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)<REF(MA(CLOSE,30),1),NOAXIS;
向上成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;
向下均线:=REF(MA(CLOSE,30),5)>REF(MA(CLOSE,30),4) AND REF(MA(CLOSE,30),4)>REF(MA(CLOSE,30),3) AND REF(MA(CLOSE,30),3)>REF(MA(CLOSE,30),2) AND REF(MA(CLOSE,30),2)>REF(MA(CLOSE,30),1),NOAXIS;
向下成交量:=REF(VOL,5)>REF(VOL,4) AND REF(VOL,4)>REF(VOL,3) AND REF(VOL,3)>REF(VOL,2) AND REF(VOL,2)>REF(VOL,1),NOAXIS;
//位置1——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,' 止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END
//平空2
IF OPEN>空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,OPEN);
DRAWTEXT(1,LOW*0.995,' 开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END
//位置2——开多
//开多:
IF REF(向上均线,1) AND CROSS(MA(CLOSE,10),MA(CLOSE,60)) AND HOLDING=0 THEN
BEGIN
BUY(1,1,LIMITR,OPEN);
//多单止损:=ENTERPRICE-20;
多单止损:=OPEN-20;
多单入场标记:=1;
END
//位置3——平多
//平多1
IF CROSS(多单止损,LOW) AND OPEN>=多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,多单止损);
DRAWTEXT(1,HIGH*1.005,' 止损'+NUMTOSTR(多单止损,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END
//平多2
IF OPEN<多单止损 AND HOLDING>0 AND 多单入场标记=1 THEN
BEGIN
SELL(1,1,LIMITR,OPEN);
DRAWTEXT(1,HIGH*1.005,' 开盘平'+NUMTOSTR(OPEN,0)),COLORWHITE;
多单止损:=0;
多单入场标记:=0;
END
//位置4——开空
//开空:
IF REF(向下均线,1) AND CROSS(MA(CLOSE,60),MA(CLOSE,10)) AND REF(向下成交量,1) AND HOLDING=0 THEN
BEGIN
BUYSHORT(1,1,LIMITR,OPEN);
//空单止损:=ENTERPRICE+20;
空单止损:=OPEN+20;
空单入场标记:=1;
END
{
//位置5——平空
//平空1
IF CROSS(HIGH,空单止损) AND OPEN<=空单止损 AND HOLDING<0 AND 空单入场标记=1 THEN
BEGIN
SELLSHORT(1,1,LIMITR,空单止损);
DRAWTEXT(1,LOW*0.995,' 止损'+NUMTOSTR(空单止损,0)),COLORWHITE;
空单止损:=99999;
空单入场标记:=0;
END
}
[此贴子已经被作者于2016-12-30 16:11:03编辑过]