closed的替代用法解惑

各位老师好,社区搜索colsed的用法,得到一位贴主phoenix129写的代码

https://bbs.tbquant.net/thread/forum13043

略微做了下修改,确实在3分钟上可以获取每日的收盘价,但发现理解不了,onopen那儿明明插入的是开盘价,为什么最终可以显示每天的收盘的,希望各位老师可以解惑一下,非常感谢


Params
	Integer Days(20);
	
Vars
	Global Array<Numeric> arrClose20;

Events
	/*OnInit(){
		String tSymbol = \"rb888.SHFE\";
		TimeStamp startDate= PreTradingDay(tSymbol, CurrentDate, Days);
		SubscribeBar(tSymbol, \"1m\", startDate, 0);
	}*/
	
	OnBarOpen(ArrayRef<Integer> indexs)
    {
		If(CurrentBar == 0 || TrueDate(0) != TrueDate(1)) ArrayInsert(arrClose20, 0, Open);
		If(GetArraySize(arrClose20) > Days) ArrayErase(arrClose20, GetArraySize(arrClose20) - 1, 1);
        
        
	}
	
	OnBar(ArrayRef<Integer> indexs)
    {
		Integer i;
		Numeric TodayClose = CloseD(0);
		If(Time == 0.145700) arrClose20[0] = TodayClose;
		If(BarStatus != 2) Return;
		//PrintClear;
		For i = 0 To Days - 1
        {
			If(i == 0)
				If(Time == 0.145700) 
                    Print("今天 Close = " + Text(arrClose20[i]));
				Else 
                    Print("今天 Open = " + Text(arrClose20[i]));
            Else 
                Print("前" + Text(i) + "天 Close = " + Text(arrClose20[i]));
		}
		Print(TextArray(arrClose20));
	}



CloseD用法请教
关天CLOSED()的用法
closed
closed
barsinceentry的A函数替代公式
OpenD,CloseD
CloseD回溯
closed数值问题
替代文华的COUNT(X,N)函数
关于NthCon和CLOSED的问题

这段逻辑是用open维护数组里面的数据,然后用这段代码If(Time == 0.145700) arrClose20[0] = TodayClose;在收盘前把open替换成close。这里的open可以理解为“占位”的作用