系统交易论坛 - 开拓者期货自动交易平台's Archiver

xiaocai550 发表于 2010-7-22 14:15

关于TIME的问题!

很多朋友在用TIME这个函数的时候发现了很多局限性,比如最常见的就是:
在15分钟图表里,是没办法用TIME==0.1455,这样来实现收盘前平仓的,因为15分钟的当前BAR只有TIME==0.1445,函数才可以判断出来;

那么,我发现一个问题,既然TIME 不能用,为什么大家不用CURRENTTIME这个函数呢?
按照这个函数的解释,
CurrentTime
说明 获取交易开拓者平台(操作系统)的当前时间。
语法 Numeric CurrentTime()
参数 无
备注 获取交易开拓者平台(操作系统)的当前时间。格式为0.HHMMSS的浮点数。
示例 如果当前时间为11:34:21,CurrentTime返回值为0.113421。

---------
那么,如果你的操作系统的时间和交易所的时间是一致的话,那么用CURRENTTIME的问题应该不大吧,这个要请开拓者的老大们来确认一下!
还有,我实际测试CURRENTTIME这个函数功能的时候发现了些问题,希望大大们帮忙解决一下:

eg:
if (CurrentTime==0.1405)
            {Buy;}
这种写法在图表上是没有信号出现的,也就是说实际发出了开仓指令,但是图表上没有信号,而且估计这时候MarketPosition是为0的,这个到底是什么原因要请教下!

再来,为什么我会说这样写的话MarketPosition会为0 ,
因为如果你接下来用
if (CurrentTime==0.1409)
            {sell;}
来平仓的话,是无法实现的!

但是如果把BUY,SELL换成A_函数的话,则不会出现上述问题,这个需要管理员大哥来解答一下!

欲速不达 发表于 2010-7-22 22:23

开拓者定义Time为当前Bar的时间,而CurrentTime只是系统提取了开拓者的时间,并无法确定在哪个bar上,因为系统没有这样的定义,所以Time开平仓可以在bar上显示,而CurrentTime不能

speed_fj 发表于 2010-7-22 23:19

请问CurrentTime是取服务器时间还是电脑终端时间?还有就是TIME()取的是服务器时间吗?

lh948 发表于 2010-7-23 08:53

CurrentTime是计算机系统的时间
[attach]3694[/attach]
Time是每个bar上的时间
[attach]3695[/attach]

欲速不达 发表于 2010-7-23 12:14

回复 3# speed_fj 的帖子

TIME()为你自己电脑时间,CurrentTime是取服务器时间,电脑登录后本机时间与服务器也时间同步了,但运行一段时间后也有上秒的差异

文静的狮子 发表于 2010-7-24 18:30

如果我想限定在收盘前开平仓,如下方法没问题吧:(没办法测试,实盘太慢,等不及了,嘿嘿):
               
if(con1 && (tradtime1==CurrentTime>0.145600 && currenttime<0.150000)
  {
  ``````
  }

lh948 发表于 2010-7-26 09:24

如果你是使用buysell指令的话,这么用currenttime会信号消失的,建议使用time。

文静的狮子 发表于 2010-7-26 13:13

我的意图是在日线或小时线上实现收盘前三分钟开仓,貌似用time没有办法实现
这样的话,是不是只能用A_SendOrder?

另问:buy和a_sendorder混用没问题吧?
比如我开仓使用a_sendorder,这样可以精确限定只在收盘前开仓,平仓使用buy和sell,以及SetPercentTrailing,一旦达到某价位随时平仓,可以吗?

[[i] 本帖最后由 文静的狮子 于 2010-7-26 14:27 编辑 [/i]]

lh948 发表于 2010-7-26 14:41

非要在日线上做日内,就用A_SendOrder和currenttime来实现
混用会有不可预知的问题,建议不要混用!

文静的狮子 发表于 2010-7-26 21:40

明白了,多谢!
那么a_sendorder和SetPercentTrailing等8个平仓函数同时使用没有问题吧?我做的是60分钟和日线的波段

Futures 发表于 2011-2-23 16:48

[quote]我的意图是在日线或小时线上实现收盘前三分钟开仓,貌似用time没有办法实现
这样的话,是不是只能用A_SendO ...
[size=2][color=#999999]文静的狮子 发表于 2010-7-26 13:13[/color] [url=http://tradeblazer.net/forum/redirect.php?goto=findpost&pid=52419&ptid=8958][img]http://tradeblazer.net/forum/images/common/back.gif[/img][/url][/size][/quote]


    我觉得可以用if(time>0.1457 Or currenttime>0.1457)来实现,如果用buy,历史信号还会显示

bluefire999 发表于 2011-3-9 14:34

我觉得可以用if(time>0.1457 Or currenttime>0.1457)来实现,如果用buy,历史信号还会显示

==>可以显示,历史没问题,但开仓的具体位置实盘就出偏差了!用buy类

蔡宛宏 发表于 2011-12-20 10:22

希望TB能解决一下时间刻度的问题  这个很麻烦  很多模型放到多周期上都要改代码  太麻烦了

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.