If I understand correctly, you have two main operations: given a new (p,v), where p=price and v=volume, you want to insert this into the sorted dict. If there is already (p,v’) in the sorted dict (same p), then instead you wish to update (p,v’) to (p,v+v’)…
The other operation is, given a volume V, you want to find and delete pairs (p,v) starting from lowest to highest p, until the sequence of v’s removed adds up to V.
Both of these are possible with SortedDict. For the first operation, you
find p; if found under semitoken s, then you update sd[s], and if not found, the you
insert! the new item. For the second operation, you use a while-loop with the
startof function and
Your username ‘femtotrader’ suggests that you are interested in high-performance software for use in high-speed financial trades. In this case, you should know that
SortedDict in Julia is not as fast as
map in C++, primarily because the latter has no safeguards or error-checks, at least when used in the default way.