以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  为什么还是没有提前下单了  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=175071)

--  作者:jayhaha580
--  发布时间:2020/3/20 11:14:01
--  为什么还是没有提前下单了
为什么我已经在策略写了early:=(time0-timetot0(dynainfo(207))<=1) or not(islastbar);

而且后面在交易sell和buy语句后面也加了early条件

但我在实盘交易时还是没有实现提前一秒下单



图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

信号是在09:03分出现的 和在10:54分出现的,但是报单就延迟了1秒和4秒,这个图表程序化应该就是显示信号出现然后报单的时间吧?所以应该是提前一秒猜对,但为什么不行呢?这个应该不是追单问题,你们系统追单会显示出来的吧


图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看



--  作者:wenarm
--  发布时间:2020/3/20 11:25:25
--  

提前1秒钟间隔太短了。在行情不活跃时容易漏单。

 

你看到的时间是本地计算机时间,代码中是按行情时间判断的。肯定多少有点偏差


--  作者:jayhaha580
--  发布时间:2020/3/20 12:15:28
--  
就是图表程序化出现的时间是本地计算机时间吗?那怎么把本地计算机时间调整为和交易所时间一样呢?那应该怎么操作,是要提前两秒吗?
--  作者:jayhaha580
--  发布时间:2020/3/20 12:21:31
--  
时间是差一秒,但现在不止差了一秒,是2秒和4秒了
--  作者:yukizzc
--  发布时间:2020/3/20 12:24:43
--  

你的电脑时间永远不可能做到和交易所一点不差的

实际你上你就是提前一秒了,只是那个显示记录那边让你觉得不是差一秒

 

这个不用去管,就好比你电脑一定不会准这个无法改变

 

另外行情时间是根据行情来的,提前一秒这个前提条件是59秒必须有行情,这种太苛刻了,如果该品种58秒然后直接跳到00那么你就漏单了

 

[此贴子已经被作者于2020/3/20 12:25:50编辑过]

--  作者:wenarm
--  发布时间:2020/3/20 12:24:43
--  

early:=(time0-timetot0(dynainfo(207))

这个是根据行情时间计算的逻辑。dynainfo(207)是行情时间。

提前下单的时间建议你在3秒以上。如果是不活跃品种还要大,否者某根k上如果没有最后几秒的数据,这个条件就不成立了。

 

 

计算机本地时间和交易所行情时间多少都会有点出入,即使你不停与时间服务器进行同步也只能缩小时间误差。你不用太在意记录的本地时间。

只要保证行情接收正常,公式计算没有卡顿就行。

 

 

 


--  作者:jayhaha580
--  发布时间:2020/3/20 14:02:44
--  
那怎么判断这个条件是真的实现了。一般我看见交易栏报单都是9:03:01成交的,是不是说,刚好59秒时没有行情,直接图表就没有反应了,然后9:03:00也没有反应,到9:03:01才有反应
--  作者:jayhaha580
--  发布时间:2020/3/20 14:04:20
--  
为什么记录交易时间不用交易所时间,而要用本地计算机时间呢,这样不就有了时间差不好对比了吗?建议改进一下啦
--  作者:FireScript
--  发布时间:2020/3/20 14:18:28
--  
肯定不能用行情时间。行情时间有限啊。没有行情得情况下,某些日志记录还是要进行的。

总之你这里的情况在设置时间太小的情况下,是很难保证准确无误的。
[此贴子已经被作者于2020/3/20 14:22:39编辑过]

--  作者:wenarm
--  发布时间:2020/3/20 15:05:43
--  

你自己如果想判断触发的时间是否在最后几秒内,完全可以用debugfile输出参与计算的行情时间dynainfo(207)

aa:dynainfo(207);

if time0-timetot0(dynainfo(207))<=1) or not(islastbar) then begin

debugfile(.....,aa);

 

end