请问我在图表程序化运行中,用type(1)<>3来过滤连续开空的信号,为什么还是出现连续开空的情况呢?请帮忙看下,谢谢!!!
代码:
VARIABLE:dzsATR=0,kzsATR=0;
ma20:ref(ma(c,20),1);
hh:=HHV(ref(h,1),200);
ll:llv(ref(l,1),200);
aa:=ref(c,1)<ma20;
TR1:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:= ref(MA(TR1,20),1);
//“ATR止损”赋值
if type(1)<>1 and type(1)<>3 then BEGIN
dzsATR:=0;
kzsATR:=0;
end
//开多
if type(1)<>1 and h>hh and o<=hh then BEGIN
buy(1 ,20%,MARKET);
dzsATR:=hh-ATR;
end
//平多
//ATR止损
if l<dzsATR then BEGIN
sell(1,ENTERVOL,market);
end
//原价止损
if l<ENTERPRICE and enterbars>4 then BEGIN
sell(1,entervol,market);
end
//m20止损
if aa and type(1)=1 then BEGIN
sell(1 ,entervol,market);
end
//开空
if type(1)<>3 and l<ll and o>=ll then BEGIN
BUYSHORT(1,20%,market);
kzsATR:=ll+ATR;
end
//平空
if h>kzsATR then BEGIN
SELLSHORT(1,entervol,market);
end
if h>ENTERPRICE and enterbars>4 then BEGIN
SELLSHORT(1,ENTERVOL,market);
end
if aa=0 and type(1)=3 then BEGIN
sellshort(1,entervol,market);
end
持仓:holding,linethick0;
资产:asset,noaxis,COLORBROWN;
可用现金:cash(0),linethick0;
过滤连续开多连续开空要再开多和开空条件里分别加上holding=0的限制
过滤连续开多连续开空要再开多和开空条件里分别加上holding=0的限制
我图表运行了多个品种,用holding函数会不会出现干扰?
你说的是这种情况?你这种情况开平在同一根k上。
并且//平空
下面这个语句在有开空的同时肯定平,h>0 kzsATR恒为0啊
if h>kzsATR then BEGIN
SELLSHORT(1,entervol,market);
end
你说的是这种情况?你这种情况开平在同一根k上。
并且//平空
下面这个语句在有开空的同时肯定平,h>0 kzsATR恒为0啊
if h>kzsATR then BEGIN
SELLSHORT(1,entervol,market);
end
谢谢你费心帮我运行代码,我刚接触金字塔,主观交易的老手,但是是程序化的菜鸟,请帮忙耐心解答。
kzsATR的设计思路是记录开仓那一刻突破价-ATR的值(以作空为例),开空以后kzsATR就已经被赋值的,所以不恒为0.
//开空
if type(1)<>3 and l<ll and o>=ll then BEGIN
BUYSHORT(1,20%,market);
kzsATR:=ll+ATR;
end
整个代码是会开平出现在同一根K线上,这种情况没有办法回测的,这个我很清楚,但我感觉下单应该不会出现问题,所以这个模型是单纯用来下单用的,回测我是改动之后另外进行的。但今天运行的结果是出现连续开空的情况,而且到了止损位没有平仓,所以我现在很乱了,不知道问题出在哪里?
其实我的思路很简单,以做空为例,运行在5分钟K线上,突破200根K线最低价市价追空,有三个平仓条件,
①反向突破(信号价+ATR)市价平仓;
②5根K线(包括入场K线)后最新价<开仓价市价平仓;
③收盘价站上m20市价平仓。
做多反过来就可以了,就这么简单,您觉得我应该怎么改?万分感谢!!!!!!!!!!!!!
上面写错了
②5根K线(包括入场K线)后最新价>开仓价市价平仓;
请帮忙解答下,谢谢谢谢!!
1,突破前200根k先最低价写法是:l<ref(llv(l,200),1)
2,过滤连续开多开空信号 在开仓条件里限制holding=0 才开仓。
3,不止损可以输出条件看下是不是没有满足止损条件
调试技巧:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=1246
1,突破前200根k先最低价写法是:l<ref(llv(l,200),1)
2,过滤连续开多开空信号 在开仓条件里限制holding=0 才开仓。
3,不止损可以输出条件看下是不是没有满足止损条件
调试技巧:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=1246
你没有回答我的问题,我图表运行了多个品种,用holding函数会不会出现干扰?