Вроде нашел )))
Я сделал так - я открыл пример по Sterling (там уже есть Log-manager) и запустил на премаркете, пока рынок не очень активный и наблюдал за логами и стаканом, вот небольшой кусочек:
2015/10/30 14:26:23.203|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:23.223,T(S)=2015.10.30 08:11:25.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,99],[BestBidPrice, 120,99],[BestAskVolume, 1800],[BestBidVolume, 100]
2015/10/30 14:26:24.439|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:24.441,T(S)=2015.10.30 08:11:26.000,Sec=S#:AAPL@, Native:,Type:,Changes=[LastTradePrice, 120,97],[LastTradeVolume, 45],[Volume, 105922],[VWAP, 6,75800200902551]
2015/10/30 14:26:24.441|Debug |SterlingTrader|BP:Execution,T(L)=2015.10.30 14:26:24.441,T(S)=2015.10.30 08:11:26.000,(Tick),Sec=S#:AAPL@, Native:,Type:,Ord=/0/0,Fail=,TId=,Pf=,TPrice=120,97,UId=
2015/10/30 14:26:24.626|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:24.634,T(S)=2015.10.30 08:11:26.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,97],[BestBidPrice, 120,97],[BestAskVolume, 500],[BestBidVolume, 100]
2015/10/30 14:26:25.221|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:25.238,T(S)=2015.10.30 08:11:27.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,99],[BestBidPrice, 120,99],[BestAskVolume, 1800],[BestBidVolume, 100]
2015/10/30 14:26:26.484|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:26.504,T(S)=2015.10.30 08:11:28.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,99],[BestBidPrice, 120,99],[BestAskVolume, 1800],[BestBidVolume, 500]
2015/10/30 14:26:26.506|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:26.514,T(S)=2015.10.30 08:11:28.000,Sec=S#:AAPL@, Native:,Type:,Changes=[LastTradePrice, 120,95],[LastTradeVolume, 10],[Volume, 105932],[VWAP, 6,75736405241098]
2015/10/30 14:26:26.514|Debug |SterlingTrader|BP:Execution,T(L)=2015.10.30 14:26:26.514,T(S)=2015.10.30 08:11:28.000,(Tick),Sec=S#:AAPL@, Native:,Type:,Ord=/0/0,Fail=,TId=,Pf=,TPrice=120,95,UId=
2015/10/30 14:26:27.990|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:27.990,T(S)=2015.10.30 08:11:30.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,98],[BestBidPrice, 120,98],[BestAskVolume, 300],[BestBidVolume, 500]
2015/10/30 14:26:30.209|Debug |SterlingTrader|BP:Level1Change,T(L)=2015.10.30 14:26:30.228,T(S)=2015.10.30 08:11:32.000,Sec=S#:AAPL@, Native:,Type:,Changes=[BestAskPrice, 120,97],[BestBidPrice, 120,97],[BestAskVolume, 100],[BestBidVolume, 500]
В чем суть: BestAskPrice, BestAskVolume, BestBidVolume выдает правильно, а вот BestBidPrice всегда неправильно и всегда равен BestAskPrice
Я залез на GitHub в исходники и нашел в StockSharp / Connectors / Sterling / SterlingMessageAdapter_MarketData.cs
message.TryAdd(Level1Fields.BestAskPrice, (decimal)structQuoteUpdate.fAskPrice);
message.TryAdd(Level1Fields.BestBidPrice, (decimal)structQuoteUpdate.fAskPrice); //должен быть bid
l1CngMsg.TryAdd(Level1Fields.BestAskPrice, (decimal)structQuoteSnap.fAskPrice);
l1CngMsg.TryAdd(Level1Fields.BestBidPrice, (decimal)structQuoteSnap.fAskPrice); // должен быть bid
Я так понимаю в этом ошибка?