我的问题是,夜盘白银合约中,如果遇上换月,这个标志是什么时间换的?
我的应用是这样的,需要再开盘之前,通过寻找该标志为真的合约,然后使用RegReportNotify订阅VBA行情通知并且对其进行交易。但是我不知道这个标志在换月时是在几点钟更换的,所以担心如果金字塔软件开启的比较早,获取的是昨日的主力合约,而今日交易如果中途退出软件,在盘中进入他又切换到今日的主力合约了,导致日内的交易也存在换月的隐患。
请熟悉VBA的赐教,我应该在什么时候获取该标志比较合适。
主力合约都是在开盘那一时刻换的,每个交易所开盘的时间是不同的。
建议你按照这个逻辑来处理。
用定时器判断 Report.Date 如果上次日期根本次不同了,说明交易所以所已经重新第二日开盘 ,然后你再重新遍历合约
对了,我之前通过测试跟踪发现,在市场正式开盘前,会有一个疑似无效的行情信息,其Report.Date和前一个不同,但最新价则是前一日收盘价,但这时marketdata.GetMinuteData获得的MinuteData.Count等于0
我理解是这个行情信息,不是真实的成交信息,仅仅是通知新的交易日来了,但并非开盘了(如夜盘并非在20:59收到这个信息)。我想知道的是,这个时候是不是IsMainInstrument已经更新?
也就是说在未到20:59前,金字塔会收到一个Date是今天,价格则是最日收盘价,且未形成分笔成交记录(即当时MinuteData.Count为0)的行情通知。