图表程序化,运行在5分钟K线上,下面有交易日志和模型代码,请版主帮忙检查下问题,谢谢!!!
//交易日志
2017-08-07 08:59:58.405 【图表】CF01 运行完毕
2017-08-07 08:59:58.405 【图表】L01 运行完毕
2017-08-07 08:59:58.405 【图表】I01 运行完毕
2017-08-07 08:59:58.405 【图表】RU01 运行完毕
2017-08-07 08:59:58.420 【图表】CF01 运行完毕
2017-08-07 08:59:58.420 【图表】L01 运行完毕
2017-08-07 08:59:58.420 【图表】I01 运行完毕
2017-08-07 08:59:58.498 【图表】RU01 运行完毕
2017-08-07 08:59:58.498 【图表】CF01 运行完毕
2017-08-07 08:59:58.498 【图表】L01 运行完毕
2017-08-07 08:59:58.498 【图表】I01 运行完毕
2017-08-07 08:59:58.732 2017.08.07 08:59:58【图表】框架:dpz 触发下单 BUY 品种 RU01 下单K线 2017.08.07 09:05:00 公式:均线趋势+原价ATR止损(下单) 窗格ID:0 代码行:31
2017-08-07 08:59:58.732 【图表】模型下单 12
2017-08-07 08:59:58.732 【图表】下单系数调整后 手数:12
2017-08-07 08:59:58.748 【图表】直接下单
2017-08-07 08:59:58.795 【图表】RU01 运行完毕
2017-08-07 08:59:58.795 【图表】CF01 运行完毕
2017-08-07 08:59:58.795 【图表】L01 运行完毕
2017-08-07 08:59:58.795 【图表】I01 运行完毕
2017-08-07 08:59:58.795 【下单】RU01 价15890.000000 量12 买卖0 类型0 开平0 账户618719 Formula 1
2017-08-07 08:59:58.795 【下单】已提交,订单ID :169767861
2017-08-07 08:59:58.810 【指令】收到回报指令 ID = 169767861
2017-08-07 08:59:58.857 【回报】618719 : RU01 - 已报单 12 价格:15890 开 买
2017-08-07 08:59:58.888 【回报】618719 : RU01 橡胶1801 - 已撤单 量:12
2017-08-07 08:59:58.888 【指令】收到回报指令 ID = 169767861
2017-08-07 08:59:59.013 【图表】RU01 运行完毕
2017-08-07 08:59:59.013 【图表】CF01 运行完毕
2017-08-07 08:59:59.013 【图表】L01 运行完毕
2017-08-07 08:59:59.013 【图表】I01 运行完毕
2017-08-07 08:59:59.122 【图表】RU01 运行完毕
2017-08-07 08:59:59.122 【图表】CF01 运行完毕
2017-08-07 08:59:59.122 【图表】L01 运行完毕
2017-08-07 08:59:59.122 【图表】I01 运行完毕
2017-08-07 08:59:59.278 【图表】RU01 运行完毕
2017-08-07 08:59:59.294 【图表】CF01 运行完毕
2017-08-07 08:59:59.310 【图表】L01 运行完毕
2017-08-07 08:59:59.310 【图表】I01 运行完毕
2017-08-07 08:59:59.310 【图表】RU01 运行完毕
2017-08-07 08:59:59.310 【图表】CF01 运行完毕
2017-08-07 08:59:59.310 【图表】L01 运行完毕
//模型代码
VARIABLE:dzsATR=0,kzsATR=0,IsRepeatD=0,IsrepeatK=0;
ma20:ma(c,20);
hh:=HHV(ref(h,1),200);
ll:=llv(ref(l,1),200);
aa:=ref(c,1)<ref(ma20,1);
ATR:= ref(MA(tr,20),1);
kcdw2:=0;
kcdw1:=0;
////////////////////////////////////平多做多//////////////////////////////////////////
//平多
//原价止损
if l<ENTERPRICE and enterbars>4 then BEGIN
sell(holding>0,entervol,marketr);
dzsATR:=0;
IsRepeatD:=0;
end
//m20止损
if aa then BEGIN
sell(holding>0 ,entervol,marketr);
dzsATR:=0;
IsRepeatD:=0;
end
//开多
if ref(IsRepeatD,1)=0 and holding=0 and cross(h,hh) then BEGIN
buy(1,20%,limitr,hh+mindiff*4);
dzsATR:=hh-ATR;
IsRepeatD:=1;
end
//ATR止损
bb:=if(enterbars=0,c,l);
if bb<dzsATR then BEGIN
sell(holding>0,ENTERVOL,marketr);
dzsATR:=0;
IsRepeatD:=0;
end
//////////////////////////////////////////平空做空///////////////////////////////////
//平空
//原价止损
if h>ENTERPRICE and enterbars>4 then BEGIN
SELLSHORT(holding<0,ENTERVOL,marketr);
IsRepeatK:=0;
kzsATR:=0;
end
//M20止损
if aa=0 then BEGIN
sellshort(holding<0,entervol,marketr);
IsRepeatK:=0;
kzsATR:=0;
end
//开空
if ref(IsRepeatK,1)=0 and holding=0 and cross(ll,l) then BEGIN
BUYSHORT(1,20%,limitr,ll-mindiff*4);
kzsATR:=ll+ATR;
IsRepeatK:=1;
kcdw2:=1;
end
//ATR止损
cc:=if(kcdw2=1,c,h);
if cc>kzsATR then BEGIn
SELLSHORT(holding<0,entervol,marketr);
IsRepeatK:=0;
kzsATR:=0;
end
//kcdw:kcdw1;
//dzs:dzsatr,COLORGREEN;
//kzs:kzsatr,colorred;
持仓:=holding,linethick0;
资产:asset,noaxis,COLORBROWN;
可用现金:=cash(0),linethick0;
您的意思是实盘的话还是按交易时间出信号对吗?
那为什么日志的时间不用行情时间呢?
请问下单后立即撤单这又是怎么回事呢?
2017-08-07 08:59:58.888 【回报】618719 : RU01 橡胶1801 - 已撤单 量:12
2017-08-07 08:59:58.888 【指令】收到回报指令 ID = 169767861
模拟柜台没开盘导致你报单直接被撤了
交易-下单设置-程式化交易
交易时段勾上,只在交易时段进行程序化
软件中的行情是交易所行情时间。而下单是交易柜台中的时间。
日志中的时间是你本地时间。柜台时间和行情时间也存在一定的误差。所以行情过来时,触发下单,到柜台那里,柜台时间还没到交易时间端,自然会撤单,(模拟柜台情况容易出现。)
明白了,谢谢两位版主