OnBarOpen(ArrayRef<Integer> indexs) 的应用

OnBarOpen(ArrayRef indexs)
这是个驱动域。 如何设定 只在当日开盘时驱动一次?

不要加载图层  用这个函数 GetSessionStartTime(0) 。     If(BarStatus == 2 And TradingBeginDatetime == GetSessionStartTime(0))  这样判断行吗?

用GetSessionStartTime当然OK

//=================--------------供您参考--------------================


//如果数据源是日线

If(ArrayFind(indexs,0))//想要控制的图层号,如果只有data0且是日线就不需要

{

   If(Data0.BarStatus == 2 && Data0.QuoteStatus == Enum_QuoteStatus_RealTime /*&& Data0.Q_Status == Enum_QStatus_Trade*/)//最后bar,且实时交易状态驱动;

//如果每个日线都驱动一次,就不需要这个判断

   {

           //业务逻辑处理

   }

}

//如果数据源data0不是日线,限定只驱动一次

最方便的方法:

加载一个日线数据源 比如Data1

If(Data1.TradingBeginDatetime == Data0.TradingBeginDatetime)

{

   //业务逻辑处理 仅驱动一次

}

或者采用

If(ArrayFind(indexs,1))//Data1为日线

{//业务逻辑处理}

判断 行情状态==实时行情 && bar状态 ==2 行不行?

你是指开盘那条还是 你要进集合竞价的

默认应该是行情动的时候会驱动一次

我开盘时间再确认下