策略加载,15K线,分笔速率扫描,有信号立即成交。
日内开单最大手数:lot=10;
开仓条件:1,价格>日线的开盘价+30*最小变动价位
2,如果买入信号出现在收盘前5分钟内,那么开仓量为0.5*lot-原有的多单持仓,其他时间的开仓的量为lot-原有的多单持仓;
3,采用挂单的方式,价格为当时成交价-3*最小变动价位。
4,如果价格>委托价+10*最小变动价位或者计算机时间进入收盘前3分钟,那么立即撤未成交单,并追单,追单价位涨停价。追单的数量参照开仓条件2;
平仓条件:1,价格<日线的开盘价-10*最小变动价位,那么平所有仓;
2,如果计算机时间进入收盘前3分钟,平仓条件1不成立,那么留0.5*lot过夜,其余的平仓;
3,平仓的委托价为当时成交价+3*最小变动价位。
4,如果价格<委托价-10*最小变动价位或者计算机时间进入收盘前1分钟,那么立即撤未成交单,并追单,追单价位跌停价。
说明:1,如果由于某些些原因,不得不中途启动预警,如果当时开仓或平仓的条件成立,也必须立即挂单,进入交易状态。
2,策略是多账户交易,请用多账户交易的相关函数。
3,一天的开多次数最多2次;
<!--[if gte mso 9]>//时间用的商品做例子,如对中金所自己修改下时间那边即可。账户组用的TA这个用户自己做修改
//平仓条件中的2和4未写,不太明白你这不满足平仓条件然后平仓的意思。
//范例仅供参考,具体使用时客户还请先经一番测试
CloseDay:=callstock('',vtopen,6,0);
KD:=close-CLOSEDAY>30*MINDIFF;
PD:=CLOSEDAY-close>10*MINDIFF;
lot:=10;
GLOBALVARIABLE:KDNUM=0,KDTIMES=0;//num表示开多手数,times表示开多次数
if KD and DYNAINFO(207)<185500 and KDNUM<11 and KDTIMES<3 THEN
begin
tbuy(1,lot-TBUYHOLDING(1),lmt,DYNAINFO(7)-3*MINDIFF,0,'TA','');
KDTIMES:=KDTIMES+1;
KDNUM:=KDNUM+TENTERVOL;
end
if KD and DYNAINFO(207)>185500 and KDNUM<11 and KDTIMES<3 THEN
begin
tbuy(1,lot*0.5-TBUYHOLDING(1),lmt,DYNAINFO(7)-3*MINDIFF,0,'TA','');
KDTIMES:=KDTIMES+1;
KDNUM:=KDNUM+TENTERVOL;
end
if close>TENTERPRICE+10*MINDIFF or DYNAINFO(207)>185700 then
BEGIN
TCANCELex(1,1,'','');
tbuy(DYNAINFO(207)<185500,lot-TBUYHOLDING(1),mkt,0,0,'TA','');
tbuy(DYNAINFO(207)>185500,0.5*lot-TBUYHOLDING(1),mkt,0,0,'TA','');
end
if PD THEN
tsell(1,tbuyholding(1),lmt,DYNAINFO(7)+3*MINDIFF,0,'TA','');