“K线”转换成“固定轮询模式”或者“混合模式”的方法

2016-02-20 11:33:00来源:本站整理浏览:194

一,“K线走完模式”转换成“固定轮询模式”或者“混合模式”的方法
 以便把各个模型放在同一个框架内进行图表程序化交易
 举例:
 均线交叉模型(K线走完模型):
runmode:0;
 ma5:=ma(c,5);
 ma20:=ma(c,20);
 entertime:=time>100000 and time<144500;
 if holding>0 and ma5<ma20 then sell(1,1,market);
 if holding<0 and ma5>ma20 then sellshort(1,1,market);
 if holding=0 and ma5>ma20 and entertime then buy(1,1,market);
 if holding=0 and ma5<ma20 and entertime then buyshort(1,1,market);
 if time>=150000 then begin
 sell(1,1,market);
 sellshort(1,1,market);
 end

简单的改法,自然是把各个条件“过去化”,如:ma5 改为 ref(ma(c,5),1);但这种方法碰到大型的、复杂的模型时,容易出错
 可采用这种方法,把holding用全局变量cc替换,然后加入红色部分代码,红色部分代码要放在信号语句的前面:
runmode:0;
 variable:cc=0;
 ma5:=ma(c,5);
 ma20:=ma(c,20);
 entertime:=time>100000 and time<144500;
 if holding>0 and cc<=0 then sell(1,1,limitr,o);
 if holding<0 and cc>=0 then sellshort(1,1,limitr,o);
 if holding=0 and cc>0 then buy(1,1,limitr,o);
 if holding=0 and cc<0 then buyshort(1,1,limitr,o);
 if cc>0 and ma5<ma20 then cc:=0;
 if cc<0 and ma5>ma20 then cc:=0;
 if cc=0 and ma5>ma20 and entertime then cc:=1;
 if cc=0 and ma5<ma20 and entertime then cc:=-1;
 if time>=150000 then begin
 cc:=0;
 end

那么,如果是 K线走完模式和盘中模式并存,怎么做呢?也简单,就是在“开盘价下单语句”后面加入蓝色部分的“盘中下单语句”就行了
 如下:
runmode:0;
 variable:zs=0,cc=0;
 ma5:=ma(c,5);
 ma20:=ma(c,20);
 entertime:=time>100000 and time<144500;
 if holding>0 and cc<=0 then sell(1,1,limitr,o);
 if holding<0 and cc>=0 then sellshort(1,1,limitr,o);
 if holding=0 and cc>0 then buy(1,1,limitr,o);
 if holding=0 and cc<0 then buyshort(1,1,limitr,o);
 if cc>0 and l<zs then begin
 sell(1,1,limitr,min(o,zs-0.6));
 cc:=0;
 end
 if cc<0 and h>zs then begin
 sellshort(1,1,limitr,max(o,zs+0.6));
 cc:=0;
 end
 if cc>0 and ma5<ma20 then cc:=0;
 if cc<0 and ma5>ma20 then cc:=0;
 if cc=0 and ma5>ma20 and entertime then begin
 cc:=1;
 zs:=c-10;
 end
 if cc=0 and ma5<ma20 and entertime then begin
 cc:=-1;
 zs:=c+10;
 end
 if time>=150000 then begin
 cc:=0;
 end

 ps:好多朋友问这个是什么软件 我也忘了说啦。我用的金字塔

股票公式栏目导航

精品指标推荐

最新热门

本类随机推荐

相关公式