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

标题: 请教,怎么每BAR都要买进啊!! [打印本页]

作者: 风险玩家    时间: 2008-1-28 09:45:31     标题: 请教,怎么每BAR都要买进啊!!

代码如下:
Begin
   if(Open>Close[1]);
  {
    Buy(1,Close);
  }
End
结果每跟BAR都买进。或者把OPEN改为CLOSE,也是这样。
作者: x3yc    时间: 2008-1-28 10:15:14

是日线吗?如果是分时图设置一下将开仓价在零的情况下才能开仓。加入entryprice<=0
作者: 孤舟骑浪    时间: 2008-1-28 10:19:24

代码有问题吧,if(Open>Close[1]);
这里不用分号。
作者: 小米    时间: 2008-1-28 10:19:54

符合open>close[1]这样情况的行情很易见,出现的次数多,如果没有其它的条件限制的话,当然是每个出现此行情的BAR就开一次仓了.
作者: 风险玩家    时间: 2008-1-28 10:24:30

谢谢你的回答,我主要是想看看信号发出的对不对,结果没满足条件的也在买进,如下图。他不管什么条件按都在买。
作者: x3yc    时间: 2008-1-28 10:27:05

建议把所有代码都贴出来,这样才能发现问题
作者: 风险玩家    时间: 2008-1-28 10:29:21

原帖由 x3yc 于 2008-1-28 10:27 发表
建议把所有代码都贴出来,这样才能发现问题

这就是所有代码了:
Begin
   if(Open>Close[1]);
  {
    Buy(1,close,true);
  }
  End
我是想看看TB是怎么执行代码的。
作者: 孤舟骑浪    时间: 2008-1-28 10:31:03

就是分号的问题,为什么不删分号呢?
作者: nopain    时间: 2008-1-28 10:36:02

If语句后面不能加分号。
作者: 风险玩家    时间: 2008-1-28 10:36:23

原帖由 孤舟骑浪 于 2008-1-28 10:31 发表
就是分号的问题,为什么不删分号呢?

谢谢你,是这个问题。我重试了。原来一句完整的话才可以加分号。严重感谢。但是还有个问题:这句代码是说,如果当天开盘大于前天收盘,则以当天收盘价格买进(不知道理解得正确不。结果我看现在执行的结果不是在收盘价格买的啊???如下图
作者: 孤舟骑浪    时间: 2008-1-28 10:42:17

你已经用true了,就是延时发送到下一根BAR,是开盘价;不用true,是回测时就是close开仓,实盘时是按实时价开仓,不过图上讯号会一直变化,直到真正的收盘发生才定格在收盘价处。
作者: 风险玩家    时间: 2008-1-28 10:46:28

原帖由 孤舟骑浪 于 2008-1-28 10:42 发表
你已经用true了,就是延时发送到下一根BAR,是开盘价;不用true,是回测时就是close开仓,实盘时是按实时价开仓,不过图上讯号会一直变化,直到真正的收盘发生才定格在收盘价处。 ...

谢谢,我也刚刚想到了延时这个问题,去了后就正常了。
作者: 哈哈    时间: 2008-1-29 09:45:23

原帖由 孤舟骑浪 于 2008-1-28 10:42 发表
你已经用true了,就是延时发送到下一根BAR,是开盘价;不用true,是回测时就是close开仓,实盘时是按实时价开仓,不过图上讯号会一直变化,直到真正的收盘发生才定格在收盘价处。 ...

很感谢"孤"兄对一个问题的系统,全面的回答,有个疑问,延时发送到下一根BAR,价格应该是前一个BAR的收盘价吧?
作者: 孤舟骑浪    时间: 2008-1-29 09:54:13

这个没留意,只是楼主这样说,也就顺着他的说法展开话题了.不过应该是你说的是对的,用上一根BAR的CLOSE发送,然后交易助手会追价,还是会在开盘价附近成交的.




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