fTradeVol and fTotalVol are assigned but no luck (not showed in the window but iTradeVol and iTotalVol), there are not fBidSize and fAskSize! Any way to show fTradeVol and fTotalVol in Realtime Quote? And Is there any way to work around with AskSize and BidSize?
Beside that, when Post a WM_USER_STREAMING_UPDATE, Amibroker seem to call GetQuoteEx for all symbols in chart tabs? Is that normal?
PostMessage is asynchronous call (it returns immediately, but data that you pass will be used LATER). In your code are calling PostMessage with pointer that might be volatile ( si->GetSymbolPtr()->c_str(),) and may be invalid at the time it is processed. You need to make sure that the pointer you are passing is VALID for ALL the lifetime of application (it is NOT on stack and it is not freed or changed).
GetQuotesEx is sent for symbols that AmiBroker needs data for. It is NOT constant, it asks for data WHEN and only IF it really needs them (to update chart, perform Analysis) and only IF change notification for given symbol was sent or it needs data just because it doesn't have them (say you have old data in database or you just added symbol).
Bid/Ask size is integer just because it was meant for stocks, futures and options, not for cryptos.
Generally you don't try to "optimize" things, because they are optimum already.