开拓者期货期权程序化系统交易论坛

标题: 关于TIME的问题! [打印本页]

作者: xiaocai550    时间: 2010-7-22 14:15:43     标题: 关于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:12

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

请问CurrentTime是取服务器时间还是电脑终端时间?还有就是TIME()取的是服务器时间吗?
作者: lh948    时间: 2010-7-23 08:53:26

CurrentTime是计算机系统的时间
[attach]3694[/attach]
Time是每个bar上的时间
[attach]3695[/attach]
作者: 欲速不达    时间: 2010-7-23 12:14:44     标题: 回复 3# speed_fj 的帖子

TIME()为你自己电脑时间,CurrentTime是取服务器时间,电脑登录后本机时间与服务器也时间同步了,但运行一段时间后也有上秒的差异
作者: 文静的狮子    时间: 2010-7-24 18:30:21

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

如果你是使用buysell指令的话,这么用currenttime会信号消失的,建议使用time。
作者: 文静的狮子    时间: 2010-7-26 13:13:06

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

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

[ 本帖最后由 文静的狮子 于 2010-7-26 14:27 编辑 ]
作者: lh948    时间: 2010-7-26 14:41:04

非要在日线上做日内,就用A_SendOrder和currenttime来实现
混用会有不可预知的问题,建议不要混用!
作者: 文静的狮子    时间: 2010-7-26 21:40:06

明白了,多谢!
那么a_sendorder和SetPercentTrailing等8个平仓函数同时使用没有问题吧?我做的是60分钟和日线的波段
作者: Futures    时间: 2011-2-23 16:48:52

我的意图是在日线或小时线上实现收盘前三分钟开仓,貌似用time没有办法实现
这样的话,是不是只能用A_SendO ...
文静的狮子 发表于 2010-7-26 13:13



    我觉得可以用if(time>0.1457 Or currenttime>0.1457)来实现,如果用buy,历史信号还会显示
作者: bluefire999    时间: 2011-3-9 14:34:51

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

==>可以显示,历史没问题,但开仓的具体位置实盘就出偏差了!用buy类
作者: 蔡宛宏    时间: 2011-12-20 10:22:34

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




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2