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

标题: 请教TB自动交易的扫描顺序 [打印本页]

作者: jesseattb    时间: 2009-4-9 16:10:22     标题: 请教TB自动交易的扫描顺序

TB自动交易时,先按图表上BAR的顺序走一遍,然后在当前BAR上每个TICK都扫描一遍
也就是BAR0->BAR1->...->BAR1->BAR2->BAR2->...
在当前BAR的时间周期里,比如60分钟里BAR0只走一遍,对吗?

我在程序调试中发现,在当前BAR的时间周期里,有时会重新从头扫描,也就是BAR0不止走一遍
请问这是什么原因?
作者: nopain    时间: 2009-4-9 17:40:14

1、最原始的处理方式应该是:每个Tick来了,从Bar0-BarN全部算一遍。
2、但这样效率太低,所以我们做了优化,一般情况下从头算过一次之后,以后更新Tick,只算最后的1个或2个Bar。
3、有的时候也会从头算起,比如,您修改了参数,网络短线重连等。。
作者: jesseattb    时间: 2009-4-9 18:09:59

我需要用全局变量来记录A_SendOrder已经执行的次数,在BAR=0时对全局变量进行初始化.我原来以为BAR0只走一次的.
现在有什么办法

If (BarStatus == 0)
{
    SetGlobalVar(1,0);
}
// 开仓
If (GetGlobalVar(1) == 0 && High[1] < High[2] && Low[1] > Low[2])
{
  If (Close >= High[1])
  {
    SetGlobalVar(1,1);
    A_SendOrder(Enum_Buy,Enum_Entry,1,Close);  
  }Else If (Close <= Low[1])
  {
    SetGlobalVar(1,-1);
    A_SendOrder(Enum_Sell,Enum_Entry,1,Close);   
  }
}
作者: nopain    时间: 2009-4-10 08:49:03

当全局变量!=InvalidNumeric才做初始化。




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