Hellos!
I’m new into trading and the market, and I have a question I hope experienced traders can help me with.
In the market history window, there’s the past daily volumes for an item, and the low/average/high prices. I want to check how much of the traded volume was executed on sell orders, and how much was on buy orders.
There’s no way to see that in game or through the api, at least I can’t find it. Is it made available somewhere?
If not, how would you advise on deriving it from the available data? Is it even possible?
Usually, you can have an idea by looking at the position of the daily average inside the donchian channel. The closer it is to the top, the higher percentage of sell orders.
It doesn’t work for high volatile prices: a buy order in the end of the day can be higher than sell orders in the beginning of the same day. Or if the donkian channel shrinks to a single price, meaning either only sell orders were fulfilled or only buy orders were fulfilled (or there wasn’t much difference between their prices).
So the first step is to assume that your historical market data will look something like this:
Low: 1 isk, Avg: 5 isk. High: 12 isk
And just use ratios to derive the data you want.
Unfortunately, often you’ll have data that looks like this:
Low: 5 isk, Avg: 5 isk, High: 5 isk
A good answer to this problem is to look at the previous and following days and try to figure out whether that’s a high price or a low price. One strategy to do so is to check whether the previous or following days have a normal spread, and try to assume that the problem day had very similar pricing. Another strategy, complementary not supplementary, is to look over a big window of time (~300 days) and try to determine whether the item you’re looking at tends to sell entirely to buy orders or tends to be bought entirely from sell orders.
Unfortunately, sometimes you’ll have data that looks like this:
Low: 0.01isk, Avg: 4 isk, High: 6 isk.
Again, you have to interpolate from other data points for the same item, but you can do a pretty decent job of it.
Unfortunately, all this calculation is slightly useless, because market history has an OVERZEALOUS TRIMMING ALGORITHM that tends to completely ruin the data and lie about the actual history. @rhivre@CCP_Quant
Thank you both for your responses. So I understand,
There’s no exact way we can deduce the separate volumes from available data, we can only approximate. This is probably a design choice by CCP.
Market history is obfuscated by an algorithm, so any attempts at approximating will be prone to errors. Not sure if this is a bug or a feature.
I guess that doesn’t leave much room for data based analysis of market history?
I assume, then, I should just keep an eye on items and buy/sell orders in game, to get a sense of how they are traded?
In addition to the before mentioned you can look at the (non-)change of the buy and sell order volume to draw conclusions from that. For example if trade history shows over-normal trade volume and the buy volume dropped while sell volume was rather stable, you can assume that most went into buys.
As another indicator you could use the market tracker data from the Adam4EVE website. For major market hubs it compares the order book snapshots and records the differences. Thus if the order with ID of XYZ had 145 items for sale 10 minute ago and in the current snapshot has 143, then it records that 2 items have been bought via this sell order. Of course this is very inaccurate for items where orders are filled very fast, but can give an indication.
But your conclusion isn’t correct though. Despite these difficulties, you can do data-based analysis, and I do for example. I have a script I made back in 2013 that does exactly what you asked for in the OP: it splits up historical market volume across buy/sell orders. It’s not accurate for minerals, but it’s accurate for the things I calibrated it on (T2 rigs and all T3 stuff).
Honestly, now that I’ve grown up a little from 2013, I can probably make a way better script. So the possibility is definitely there.