//请老师帮助修改
做多力度:=SMA((CLOSE - LLV(LOW,15)) / (HHV(HIGH,15) - LLV(LOW,15)) * 100,15,1)-8 ;
做空力度:=SMA((HHV(HIGH,30) - CLOSE) / (HHV(HIGH,30) - LLV(LOW,30)) * 100,30,1);
多空差:做多力度-做空力度,NODRAW;
多空差2:=REF(多空差,1);
标红:=多空差>=REF(多空差,1);
标绿:=多空差<=REF(多空差,1);
cc:=cross (多空差,0);
dd:=cross(0,多空差);
阳:=c>o;
阴:=c<o;
缩头:=多空差<多空差2;
缩脚:=多空差>多空差2;
yy:=多空差>0;
tt:=多空差<0;
扣底空15:=c<=ref(CLOSE,15);
扣底空30:=c<=ref(CLOSE,30);
扣底多15:=c>=ref(CLOSE,15);
扣底多30:=c>=ref(CLOSE,30);
haha:=阴 and 缩脚 and 标红 and 扣底多15 and 扣底多30;//开仓条件A 开仓以这个条件为准开仓
wawa:=阳 and 缩头 and 标绿 and 扣底空15 and 扣底空30;//开仓条件B 开仓以这个条件开仓
//haha1:=阴 and 缩脚 and 标红 and 扣底多15;//平仓条件A 以这个条件平仓,再满足条件时,只开与上面开仓条件方向的单。
//wawa1:=阳 and 缩头 and 标绿 and 扣底空15;//平用条件B 以这个条件平仓,再满足条件时,只开与上面开仓条件方向的单。
//止损条件:开仓完成后,以平仓条件前一个信号所对应的时间对应的K线价格设置止损条件。
//例如:卖出开仓后,止损为平仓条件的上一个买入条件对应的K线价格最高点作为止损条件。买入条件相反即可。
cond1:=haha;
cond2:=wawa;
if cond1 and ref(BARSLAST(cond1),1)>ref(BARSLAST(cond2),1) then //平空开多
begin
sellshort(holding<0,1,market);
buy(holding=0 and (time>=090000 and time<=145800)or (time>210000 or time<=023000),1,market);
end
if cond2 and ref(BARSLAST(cond2),1)>ref(BARSLAST(cond1),1) then //平多开空
begin
sell(holding>0,1,market);
buyshort(holding=0 and (time>=090000 and time<=145800)or (time>210000 or time<=023000),1,market);
end
//if holding>0 and hhv(h,ENTERBARS+1)-ENTERPRICE>20*MINDIFF and c-ENTERPRICE<=15*MINDIFF then sell(holding>0,holding,market);//多头保本
//if holding<0 and ENTERPRICE-llv(l,ENTERBARS+1)>20*MINDIFF and ENTERPRICE-c<=15*MINDIFF then sellshort(holding<0,holding,market);//空头保本
if time=145900 then //老师,不知道哪里写的不对,当日尾盘14.59分强制全平的指令,没有执行,请老师帮助修改下。
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
你什么周期下运行的程序呢?那个判断和周期以及你用的时区都有关联的。你是否使用的是金字塔时区?
几分钟呢?1分钟和5分钟 关于time的判断是有区别的。
比如五分钟周期情况下,上面那个判断肯定失效的。
[此贴子已经被作者于2018/8/31 10:26:05编辑过]
如果是2分钟,倒数第二个K就是145800了,你改成这个试下。
好的,还有其它文字标明的,开仓和平仓条件,老师帮我改一下,弄了半天,搞不定
“还有其它文字标明的,开仓和平仓条件” 这个需求是要做什么。没太明白。